summaryrefslogtreecommitdiff
path: root/ishtar_common/model_merging.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-09-08 11:43:36 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-09-10 15:40:21 +0200
commit9c677ef564ecb3f5990c129975978eccd49c2b20 (patch)
treef5548229426658c16c51723b077fdb08f2b74d4e /ishtar_common/model_merging.py
parent1937a837f3df723aaed6466872e8536c49aef108 (diff)
downloadIshtar-9c677ef564ecb3f5990c129975978eccd49c2b20.tar.bz2
Ishtar-9c677ef564ecb3f5990c129975978eccd49c2b20.zip
🐛 merge: do not merge import association
Otherwise, this may result in unwanted deletion when deleting an import
Diffstat (limited to 'ishtar_common/model_merging.py')
-rw-r--r--ishtar_common/model_merging.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/ishtar_common/model_merging.py b/ishtar_common/model_merging.py
index 0e1d34c58..409161375 100644
--- a/ishtar_common/model_merging.py
+++ b/ishtar_common/model_merging.py
@@ -22,6 +22,9 @@ def get_models():
return models
+EXCLUDED_FIELDS = ["imports"]
+
+
@transaction.atomic
def merge_model_objects(
primary_object, alias_objects=None, keep_old=False, exclude_fields=None
@@ -42,6 +45,8 @@ def merge_model_objects(
if not exclude_fields:
exclude_fields = []
+ exclude_fields += EXCLUDED_FIELDS
+
MERGE_FIELDS = ("merge_candidate", "merge_exclusion")
MERGE_STRING_FIELDS = []
@@ -141,6 +146,7 @@ def merge_model_objects(
if (
alias_varname in related_many_object_names
or alias_varname in MERGE_FIELDS
+ or alias_varname in exclude_fields
):
continue