diff options
Diffstat (limited to 'ishtar_common/model_merging.py')
| -rw-r--r-- | ishtar_common/model_merging.py | 9 | 
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)  | 
