diff options
Diffstat (limited to 'ishtar_common/utils.py')
| -rw-r--r-- | ishtar_common/utils.py | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index e6283ae5e..e27b26e70 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -2029,6 +2029,7 @@ PRIVATE_FIELDS = ("id", "history_modifier", "order", "uuid")  def duplicate_item(item, user=None, data=None):      model = item.__class__      new = model.objects.get(pk=item.pk) +    data = data or {}      for field in model._meta.fields:          # pk is in PRIVATE_FIELDS so: new.pk = None and a new @@ -2039,9 +2040,11 @@ def duplicate_item(item, user=None, data=None):              setattr(new, field.name, None)      if user:          new.history_user = user -    if data: -        for k in data: -            setattr(new, k, data[k]) +    for k in data: +        setattr(new, k, data[k]) +    exclude_fields = getattr(model, "DUPLICATE_EXCLUDE", []) +    for k in exclude_fields: +        setattr(new, k, None)      new.save()      if hasattr(user, "user_ptr"):          if hasattr(new, "history_creator"): | 
