summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-04-05 15:45:26 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-04-05 15:45:26 +0200
commitd9f08efb2e5cd65e50bcb10c2863a4e445f17e2c (patch)
tree3ef5273826560c4082dc2e40fddc14810137b5f8 /ishtar_common
parentd38203a78cf15f4cee9c674fe9c73b1aee6f8ece (diff)
downloadIshtar-d9f08efb2e5cd65e50bcb10c2863a4e445f17e2c.tar.bz2
Ishtar-d9f08efb2e5cd65e50bcb10c2863a4e445f17e2c.zip
Merge: generic function for main items - adpat for containers
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/model_merging.py3
-rw-r--r--ishtar_common/models.py3
2 files changed, 5 insertions, 1 deletions
diff --git a/ishtar_common/model_merging.py b/ishtar_common/model_merging.py
index c8e2bc6bf..188ec42dd 100644
--- a/ishtar_common/model_merging.py
+++ b/ishtar_common/model_merging.py
@@ -20,7 +20,7 @@ def get_models():
@transaction.atomic
-def merge_model_objects(primary_object, alias_objects=[], keep_old=False):
+def merge_model_objects(primary_object, alias_objects, keep_old=False):
"""
Use this function to merge model objects (i.e. Users, Organizations,
etc.) and migrate all of the related fields from the alias objects to the
@@ -154,5 +154,6 @@ def merge_model_objects(primary_object, alias_objects=[], keep_old=False):
if not keep_old:
alias_object.delete()
+ primary_object.skip_history_when_saving = True
primary_object.save()
return primary_object
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index f49bd9560..6a4a0930e 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1636,6 +1636,9 @@ class BaseHistorizedItem(DocumentItem, FullSearch, Imported, JsonData,
def get_verbose_name(cls):
return cls._meta.verbose_name
+ def merge(self, item, keep_old=False):
+ merge_model_objects(self, item, keep_old=keep_old)
+
def update_external_id(self, save=False):
if not self.EXTERNAL_ID_KEY or (
self.external_id and