summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-11 19:53:16 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-11 19:53:16 +0200
commit0f25bca1f9e82c20525527dcfcb613fdfb660432 (patch)
tree071833e79d6801dcff65daf09b27af961bb92020
parent3e3a264055718a97e1eca263f2cdedae3bcb99f0 (diff)
downloadIshtar-0f25bca1f9e82c20525527dcfcb613fdfb660432.tar.bz2
Ishtar-0f25bca1f9e82c20525527dcfcb613fdfb660432.zip
Fix get and set localisation
-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