summaryrefslogtreecommitdiff
path: root/archaeological_warehouse
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-08-31 18:11:40 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:20 +0100
commit735be2a425636b7dc49f71c650e1765a527a3e97 (patch)
tree26d1d9321680b94b0d2cb66209f4eb5cc2c56227 /archaeological_warehouse
parentdcd1225cef0fc3e573a11cec651e16f2b35b83cf (diff)
downloadIshtar-735be2a425636b7dc49f71c650e1765a527a3e97.tar.bz2
Ishtar-735be2a425636b7dc49f71c650e1765a527a3e97.zip
Containers: append warehouse to merge key (refs #4964)
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r--archaeological_warehouse/models.py7
-rw-r--r--archaeological_warehouse/tests.py12
2 files changed, 16 insertions, 3 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 17719539b..d24985645 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -447,7 +447,6 @@ class WarehouseDivisionLink(models.Model):
return self.warehouse.uuid, self.container_type.txt_idx
-
class ContainerTree(models.Model):
CREATE_SQL = """
CREATE VIEW containers_tree AS
@@ -765,7 +764,7 @@ class Container(DocumentItem, Merge, LightHistorizedItem, QRCodeItem, GeoItem,
verbose_name=_("Main image"), blank=True, null=True)
DISABLE_POLYGONS = False
- MERGE_ATTRIBUTE = "get_cached_division"
+ MERGE_ATTRIBUTE = "get_merge_key"
MERGE_STRING_FIELDS = ["old_reference"]
class Meta:
@@ -818,6 +817,10 @@ class Container(DocumentItem, Merge, LightHistorizedItem, QRCodeItem, GeoItem,
def get_cached_division(self):
return self._generate_cached_division()
+ @property
+ def get_merge_key(self):
+ return str(self.location.uuid) + "|" + self._generate_cached_division()
+
def _generate_cached_division(self):
parents = []
parent = self.parent
diff --git a/archaeological_warehouse/tests.py b/archaeological_warehouse/tests.py
index 126cc0420..c1d2e032f 100644
--- a/archaeological_warehouse/tests.py
+++ b/archaeological_warehouse/tests.py
@@ -707,7 +707,7 @@ class ContainerTest(FindInit, TestCase):
location=self.main_warehouse,
container_type=ct)
init_mc = container_1.merge_candidate.count()
- models.Container.objects.create(
+ container_2 = models.Container.objects.create(
reference="TEST", responsible=self.main_warehouse,
location=self.main_warehouse,
container_type=ct)
@@ -716,6 +716,16 @@ class ContainerTest(FindInit, TestCase):
container_1.archive()
self.assertEqual(container_1.merge_candidate.count(),
init_mc)
+ container_1 = models.Container.objects.get(pk=container_1.pk)
+ container_1.archived = False
+ container_1.save()
+ container_2 = models.Container.objects.get(pk=container_2.pk)
+ self.assertEqual(container_1.merge_candidate.count(),
+ init_mc + 1)
+ container_2.location = self.alt_warehouse
+ container_2.save()
+ self.assertEqual(container_1.merge_candidate.count(),
+ init_mc)
def test_merge_container(self):
ct = models.ContainerType.objects.all()[0]