summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-08-28 13:45:13 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-08-28 13:45:13 +0200
commitdb76313a941d9d859e023e300b672628d761b4a1 (patch)
tree01734c6be3dae8b459ac9addb163c0fd988915fc
parent55533e91d4c004a2e11b42019156f3f1edf8c3e0 (diff)
downloadIshtar-db76313a941d9d859e023e300b672628d761b4a1.tar.bz2
Ishtar-db76313a941d9d859e023e300b672628d761b4a1.zip
Container: fix index on warehouse change
-rw-r--r--archaeological_warehouse/forms.py8
-rw-r--r--archaeological_warehouse/models.py5
2 files changed, 6 insertions, 7 deletions
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py
index 58d856844..94d37d092 100644
--- a/archaeological_warehouse/forms.py
+++ b/archaeological_warehouse/forms.py
@@ -318,14 +318,14 @@ class ContainerModifyForm(ContainerForm):
# manage unique ID
cleaned_data = super(ContainerModifyForm, self).clean()
index = cleaned_data.get("index", None)
- warehouse = cleaned_data.get("location")
+ warehouse = cleaned_data.get("responsible")
if not index:
- q = models.Container.objects.filter(location__pk=warehouse)
+ q = models.Container.objects.filter(responsible__pk=warehouse)
if not q.count():
cleaned_data["index"] = 1
else:
- cleaned_data["index"] = q.all().aggregate(
- Max("index"))["index__max"] + 1
+ cleaned_data["index"] = int(q.aggregate(
+ Max("index"))["index__max"]) + 1
else:
q = models.Container.objects.filter(
index=index, location__pk=warehouse)
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index c9405fa37..31588cde2 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -819,10 +819,9 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,
def pre_save(self):
if not self.index and self.responsible_id:
- q = Container.objects.filter(responsible=self.responsible).order_by(
- '-index')
+ q = Container.objects.filter(responsible=self.responsible)
if q.count():
- self.index = q.all()[0].index + 1
+ self.index = int(q.aggregate(Max("index"))["index__max"]) + 1
else:
self.index = 1