diff options
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r-- | archaeological_warehouse/models.py | 7 | ||||
-rw-r--r-- | archaeological_warehouse/tests.py | 12 |
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] |