diff options
Diffstat (limited to 'archaeological_finds/models_finds.py')
| -rw-r--r-- | archaeological_finds/models_finds.py | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index a3aaae50d..9baced4e0 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -1376,12 +1376,20 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,          for field in m2m:              if field == 'datings' and copy_datings:                  for dating in self.datings.all(): +                    is_present = False +                    for current_dating in new.datings.all(): +                        if Dating.is_identical(current_dating, dating): +                            is_present = True +                            break +                    if is_present: +                        continue                      dating.pk = None                      dating.save()                      new.datings.add(dating)              else:                  for val in getattr(self, field).all(): -                    getattr(new, field).add(val) +                    if val not in getattr(new, field).all(): +                        getattr(new, field).add(val)          return new      @classmethod | 
