summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_treatments.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-11-28 18:51:28 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-11-28 18:53:28 +0100
commit13531adff386cc09c7f41c02ba7c116575cb6ee1 (patch)
tree51067bbe4ac2bb44a139c2bc813d1442d2db4582 /archaeological_finds/models_treatments.py
parent1d26a7a62d150d19e659e66515fcda5a40c6c68a (diff)
downloadIshtar-13531adff386cc09c7f41c02ba7c116575cb6ee1.tar.bz2
Ishtar-13531adff386cc09c7f41c02ba7c116575cb6ee1.zip
Treatments: better management of merge - tests
Diffstat (limited to 'archaeological_finds/models_treatments.py')
-rw-r--r--archaeological_finds/models_treatments.py19
1 files changed, 6 insertions, 13 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index a902741a3..29afc94e3 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -321,26 +321,19 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
create_new_find = bool([tp for tp in treatment_types
if tp.create_new_find])
- dating_keys = ["period", "start_date", "end_date", "dating_type",
- "quality", "precise_dating"]
- current_datings = []
current_base_finds = []
current_documents = []
for upstream_item in upstream_items:
# datings are not explicitly part of the resulting_find
# need to reassociate with no duplicate
for dating in upstream_item.datings.all():
- current_dating = []
- for key in dating_keys:
- value = getattr(dating, key)
- if hasattr(value, 'pk'):
- value = value.pk
- current_dating.append(value)
- current_dating = tuple(current_dating)
- if current_dating in current_datings:
- # do not add similar dating
+ is_present = False
+ for current_dating in new_find.datings.all():
+ if Dating.is_identical(current_dating, dating):
+ is_present = True
+ break
+ if is_present:
continue
- current_datings.append(current_dating)
dating.pk = None # duplicate
dating.save()
new_find.datings.add(dating)