summaryrefslogtreecommitdiff
path: root/ishtar_common/model_merging.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-02-27 20:44:52 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-06-17 13:21:27 +0200
commit86c03a98d11e93880b4568776e0939113a92a707 (patch)
treee07ad2e91e2544f7b2d61e8f3f653fdda26bfd52 /ishtar_common/model_merging.py
parent52f442699a72ff5d0341a7d15d5b966a3cc2bd60 (diff)
downloadIshtar-86c03a98d11e93880b4568776e0939113a92a707.tar.bz2
Ishtar-86c03a98d11e93880b4568776e0939113a92a707.zip
Migrate to python 3 - Clean old migrations and some old scripts
Diffstat (limited to 'ishtar_common/model_merging.py')
-rw-r--r--ishtar_common/model_merging.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/ishtar_common/model_merging.py b/ishtar_common/model_merging.py
index 188ec42dd..06f65378d 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=None, 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
@@ -32,6 +32,9 @@ def merge_model_objects(primary_object, alias_objects, keep_old=False):
duplicate_user = User.objects.get(email='good_email+duplicate@example.com')
merge_model_objects(primary_user, duplicate_user)
"""
+ if not alias_objects:
+ alias_objects = []
+
MERGE_FIELDS = ('merge_candidate', 'merge_exclusion')
if not isinstance(alias_objects, list):
@@ -55,14 +58,14 @@ def merge_model_objects(primary_object, alias_objects, keep_old=False):
generic_fields = []
for model in get_models():
for field_name, field in filter(lambda x: isinstance(
- x[1], GenericForeignKey), model.__dict__.iteritems()):
+ x[1], GenericForeignKey), model.__dict__.items()):
generic_fields.append(field)
blank_local_fields = set()
for field in primary_object._meta.local_fields:
value = getattr(primary_object, field.attname)
# string fields with only spaces are empty fields
- if isinstance(value, unicode) or isinstance(value, str):
+ if isinstance(value, str):
value = value.strip()
if value in [None, '']:
blank_local_fields.add(field.attname)