summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-05-18 17:27:32 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:20 +0100
commit9ec07a773741f7bb5da85aba04ca159b429f7b81 (patch)
treee0435fcaff5fdfb3b5cb53ee4b3754b60864bea9
parent3b8c2e3bff7c1ba8931f0c6b4c5ec94b95f7a2fe (diff)
downloadIshtar-9ec07a773741f7bb5da85aba04ca159b429f7b81.tar.bz2
Ishtar-9ec07a773741f7bb5da85aba04ca159b429f7b81.zip
Migrate to new container management: fix existing duplicates - fix on delete view
-rw-r--r--archaeological_warehouse/management/commands/migrate_to_new_container_management.py13
-rw-r--r--archaeological_warehouse/models.py6
2 files changed, 14 insertions, 5 deletions
diff --git a/archaeological_warehouse/management/commands/migrate_to_new_container_management.py b/archaeological_warehouse/management/commands/migrate_to_new_container_management.py
index d8f701793..44895ce69 100644
--- a/archaeological_warehouse/management/commands/migrate_to_new_container_management.py
+++ b/archaeological_warehouse/management/commands/migrate_to_new_container_management.py
@@ -87,8 +87,17 @@ class Command(BaseCommand):
ref].append(division.reference.strip())
parent = new_container
if parent:
- container.parent = parent
- container.save()
+ q = models.Container.objects.filter(
+ location=container.location,
+ container_type=container.container_type,
+ parent=parent,
+ reference=container.reference).exclude(pk=container.pk)
+ if q.count():
+ other = q.all()[0]
+ other.merge(container)
+ else:
+ container.parent = parent
+ container.save()
data.append((container.id, str(container.responsible),
container.reference, cached_division,
container._generate_cached_division()))
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 41ec901a4..951830d95 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -452,10 +452,10 @@ class ContainerTree(models.Model):
ORDER BY y.container_id, y.container_parent_id;
-- deactivate deletion
- CREATE RULE container_tree_del AS
- ON DELETE TO container_tree
- DO INSTEAD DELETE FROM archaeological_warehouse_container where id=NULL;
CREATE RULE containers_tree_del AS
+ ON DELETE TO containers_tree
+ DO INSTEAD DELETE FROM archaeological_warehouse_container where id=NULL;
+ CREATE RULE container_tree_del AS
ON DELETE TO container_tree
DO INSTEAD DELETE FROM archaeological_warehouse_container where id=NULL;
"""