diff options
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 |
commit | 9fa2dfce8cdebc07043ab3450ab4fc27ef9e9a02 (patch) | |
tree | 071833e79d6801dcff65daf09b27af961bb92020 | |
parent | 7f4872b286a25a1cd9e1a859b900a475438c8f61 (diff) | |
download | Ishtar-9fa2dfce8cdebc07043ab3450ab4fc27ef9e9a02.tar.bz2 Ishtar-9fa2dfce8cdebc07043ab3450ab4fc27ef9e9a02.zip |
Fix get and set localisation
-rw-r--r-- | archaeological_finds/models_finds.py | 2 | ||||
-rw-r--r-- | archaeological_warehouse/models.py | 11 |
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 |