summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_finds/models_finds.py2
-rw-r--r--archaeological_warehouse/models.py11
2 files changed, 9 insertions, 4 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index f16efcbcc..c39dfd0b5 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -1054,7 +1054,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, ImageModel,
if not self.container:
return ""
locas = self.container.get_localisations()
- if len(locas) < place:
+ if len(locas) < (place + 1):
return ""
return locas[place]
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 31701dbf9..1804d70d6 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -355,9 +355,14 @@ class Container(LightHistorizedItem, ImageModel):
break
else:
return
- obj, created = ContainerLocalisation.objects.update_or_create(
- container=self, division=division_link,
- defaults={'reference': value})
+ dct = {'container': self, 'division': division_link}
+ if not value:
+ if ContainerLocalisation.objects.filter(**dct).count():
+ c = ContainerLocalisation.objects.filter(**dct).all()[0]
+ c.delete()
+ return
+ dct['defaults'] = {'reference': value}
+ obj, created = ContainerLocalisation.objects.update_or_create(**dct)
return obj
@property