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] |