diff options
Diffstat (limited to 'archaeological_warehouse/models.py')
| -rw-r--r-- | archaeological_warehouse/models.py | 16 | 
1 files changed, 12 insertions, 4 deletions
| diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index c4b26e3d1..c9e0ad4aa 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -724,10 +724,12 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,      DISABLE_POLYGONS = False      class Meta: -        verbose_name = _(u"Container") -        verbose_name_plural = _(u"Containers") +        verbose_name = _("Container") +        verbose_name_plural = _("Containers")          ordering = ('cached_label',) -        unique_together = ('index', 'responsible') +        unique_together = [('index', 'responsible'), +                           ('location', 'container_type', 'parent', +                            'reference')]          permissions = (              ("view_container", u"Can view all Containers"),              ("view_own_container", u"Can view own Container"), @@ -746,6 +748,12 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,      def short_label(self):          return "{} {}".format(self.container_type.label, self.reference) +    @property +    def parent_external_id(self): +        if not self.parent: +            return self.location.external_id +        return self.parent.external_id +      def natural_key(self):          return (self.uuid, ) @@ -843,7 +851,7 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,      def get_localisation(self, place):          locas = self.get_localisations() -        if len(locas) < (place + 1): +        if len(list(locas)) < (place + 1):              return ""          return locas[place] | 
