diff options
-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; """ |