diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-04-20 01:08:15 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-04-20 01:08:15 +0200 |
| commit | 7a7de57f4536586c67431bfb4705248532ca5487 (patch) | |
| tree | 5432ce87aff2f029d8f2394c4374dda0fde8f3a6 /chimere/models.py | |
| parent | c35ae925003cf8c2935c82227ade8cde543fb402 (diff) | |
| download | Chimère-7a7de57f4536586c67431bfb4705248532ca5487.tar.bz2 Chimère-7a7de57f4536586c67431bfb4705248532ca5487.zip | |
Automatic increment of order of picture and multimedia files (closes #348)
Diffstat (limited to 'chimere/models.py')
| -rw-r--r-- | chimere/models.py | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/chimere/models.py b/chimere/models.py index b9e9fb4..29d1fb6 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -488,6 +488,20 @@ class MultimediaFile(models.Model): self.url = lnk % key super(MultimediaFile, self).save(*args, **kwargs) +def multimediafile_post_save(sender, **kwargs): + if not kwargs['instance'] or not kwargs['created']: + return + multimediafile = kwargs['instance'] + mfs = MultimediaFile.objects.filter(marker=multimediafile.marker).exclude( + pk=multimediafile.pk).order_by('order') + for idx, mf in enumerate(mfs.all()): + mf.order = idx + 1 + mf.save() + multimediafile.order = idx + 2 + multimediafile.save() +post_save.connect(multimediafile_post_save, sender=MultimediaFile) + + class PictureFile(models.Model): name = models.CharField(_(u"Name"), max_length=150) picture = models.ImageField(_(u"Image"), upload_to='pictures', @@ -502,6 +516,20 @@ class PictureFile(models.Model): def __unicode__(self): return self.name or u"" +def picturefile_post_save(sender, **kwargs): + if not kwargs['instance'] or not kwargs['created']: + return + picturefile = kwargs['instance'] + pfs = PictureFile.objects.filter(marker=picturefile.marker).exclude( + pk=picturefile.pk).order_by('order') + for idx, pf in enumerate(pfs.all()): + pf.order = idx + 1 + pf.save() + picturefile.order = idx + 2 + picturefile.save() +post_save.connect(picturefile_post_save, sender=PictureFile) + + class RouteFile(models.Model): name = models.CharField(_(u"Name"), max_length=150) raw_file = models.FileField(_(u"Raw file (gpx or kml)"), upload_to='route_files') @@ -777,7 +805,7 @@ def area_post_save(sender, **kwargs): return area = kwargs['instance'] if area.default: - defaults = Area.filter(default=True).exclude(pk=area.pk) + defaults = Area.objects.filter(default=True).exclude(pk=area.pk) for default in defaults: default.default = False default.save() |
