diff options
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 |
commit | 5d3e07ac963e2e4631d47ddd6f098921b63e3631 (patch) | |
tree | e0435fcaff5fdfb3b5cb53ee4b3754b60864bea9 | |
parent | b7caa3bfa75c645ffb6acd4e44cc1c5a8d073baa (diff) | |
download | Ishtar-5d3e07ac963e2e4631d47ddd6f098921b63e3631.tar.bz2 Ishtar-5d3e07ac963e2e4631d47ddd6f098921b63e3631.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.py | 13 | ||||
-rw-r--r-- | archaeological_warehouse/models.py | 6 |
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; """ |