diff options
Diffstat (limited to 'archaeological_warehouse/models.py')
| -rw-r--r-- | archaeological_warehouse/models.py | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index e4b24e2e7..d272a833a 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -157,12 +157,13 @@ class Container(LightHistorizedItem):                                      null=True, blank=True)      cached_location = models.CharField(_(u"Cached location"), max_length=500,                                         null=True, blank=True) -    index = models.IntegerField(u"Index", default=1) +    index = models.IntegerField(u"Index", default=0)      class Meta:          verbose_name = _(u"Container")          verbose_name_plural = _(u"Containers")          ordering = ('cached_label',) +        unique_together = ('index', 'location')      def __unicode__(self):          lbl = u" - ".join((self.reference, unicode(self.container_type), @@ -196,6 +197,20 @@ class Container(LightHistorizedItem):          ]          return location + u" | " + u", ".join(locas) +    def save(self, *args, **kwargs): +        super(Container, self).save(*args, **kwargs) + +        if not self.index: +            self.skip_history_when_saving = True +            q = Container.objects.filter(location=self.location).order_by( +                '-index') +            if q.count(): +                self.index = q.all()[0].index + 1 +            else: +                self.index = 1 +            self._cached_label_checked = False +            self.save() +  post_save.connect(cached_label_changed, sender=Container) | 
