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