diff options
Diffstat (limited to 'archaeological_finds/models_treatments.py')
-rw-r--r-- | archaeological_finds/models_treatments.py | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index ee4fde0f0..ba1c29dc8 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -491,30 +491,29 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem, if not self.container: return - container_attr = None + container_attrs = [] for tp in treatment_types: if tp.change_current_location: - if container_attr == 'container_ref': - # non consistent treatment - return - container_attr = 'container' + if 'container' in container_attrs: + continue + container_attrs.append('container') if tp.change_reference_location: - if container_attr == 'container': - # non consistent treatment - return - container_attr = 'container_ref' + if 'container_ref' in container_attrs: + continue + container_attrs.append('container_ref') - if not container_attr: + if not container_attrs: # non consistent treatment return for find in q.all(): - if getattr(find, container_attr) != self.container: - setattr(find, container_attr, self.container) - if find.pk in updated: - # don't record twice history - find.skip_history_when_saving = True - find.save() + for container_attr in container_attrs: + if getattr(find, container_attr) != self.container: + setattr(find, container_attr, self.container) + if find.pk in updated: + # don't record twice history + find.skip_history_when_saving = True + find.save() @property def associated_filename(self): |