summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse/models.py')
-rw-r--r--archaeological_warehouse/models.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 77ae3c6d1..d80559acc 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -870,7 +870,7 @@ class Container(DocumentItem, Merge, LightHistorizedItem,
parent = models.ForeignKey("Container", verbose_name=_("Parent container"),
on_delete=models.SET_NULL,
related_name="children", blank=True, null=True)
- index = models.IntegerField(_("Container ID"), default=0)
+ index = models.IntegerField(_("Container ID"), blank=True, null=True)
old_reference = models.TextField(_("Old reference"), blank=True, default="")
external_id = models.TextField(_("External ID"), blank=True, default="")
auto_external_id = models.BooleanField(
@@ -891,8 +891,7 @@ class Container(DocumentItem, Merge, LightHistorizedItem,
verbose_name = _("Container")
verbose_name_plural = _("Containers")
ordering = ('cached_label',)
- unique_together = [('index', 'location'),
- ('location', 'container_type', 'parent',
+ unique_together = [('location', 'container_type', 'parent',
'reference')]
permissions = (
("view_container", "Can view all Containers"),
@@ -972,6 +971,8 @@ class Container(DocumentItem, Merge, LightHistorizedItem,
return self.precise_location
def _generate_cached_location(self):
+ if not self.index:
+ return self.location.name
items = [self.location.name, str(self.index)]
cached_label = " - ".join(items)
return cached_label
@@ -1365,6 +1366,8 @@ class Container(DocumentItem, Merge, LightHistorizedItem,
self.collection_id = self.location_id
else:
self.collection = self.location
+ if self.container_type.stationary:
+ return
q = Container.objects.filter(index=self.index, location=self.location)
if self.id:
q = q.exclude(id=self.id)
@@ -1405,7 +1408,7 @@ class Container(DocumentItem, Merge, LightHistorizedItem,
self._update_warehouse_max_division()
updated = False
- if not self.index:
+ if not self.index and not self.container_type.stationary:
self.skip_history_when_saving = True
q = Container.objects.filter(responsible=self.responsible).exclude(
pk=self.pk).order_by('-index')