diff options
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 |
commit | 850fb3b058a729437daa38d43ba46064bd686c0c (patch) | |
tree | 51067bbe4ac2bb44a139c2bc813d1442d2db4582 /archaeological_finds/models_treatments.py | |
parent | 4c99f2d8afcfdb6104edc679ec9b7fce81ceec0c (diff) | |
download | Ishtar-850fb3b058a729437daa38d43ba46064bd686c0c.tar.bz2 Ishtar-850fb3b058a729437daa38d43ba46064bd686c0c.zip |
Treatments: better management of merge - tests
Diffstat (limited to 'archaeological_finds/models_treatments.py')
-rw-r--r-- | archaeological_finds/models_treatments.py | 19 |
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) |