diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-12-12 08:30:22 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-12-12 15:36:27 +0100 |
| commit | abb31a2cce1ed14abaec5977a0f5b757f3e23699 (patch) | |
| tree | ad04096baba0c4f1c5b7a0708ce98a307a65a694 /archaeological_finds/models_treatments.py | |
| parent | 56f912402c97b5d26e36073eed2803ef513af639 (diff) | |
| download | Ishtar-abb31a2cce1ed14abaec5977a0f5b757f3e23699.tar.bz2 Ishtar-abb31a2cce1ed14abaec5977a0f5b757f3e23699.zip | |
🐛 treatment container history: fix history on container move (refs #6532)
Diffstat (limited to 'archaeological_finds/models_treatments.py')
| -rw-r--r-- | archaeological_finds/models_treatments.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index ebe842ac7..21f1fe9e6 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -983,6 +983,23 @@ class Treatment( post_save.connect(cached_label_changed, sender=Treatment) +def treatment_attached_changed(sender, **kwargs): + # force full location + instance = kwargs.get("instance", None) + find_pk_set = kwargs.get("pk_set", None) + if not find_pk_set or not instance: + return + for find_id in find_pk_set: + q = FindTreatment.objects.filter(find_id=find_id, treatment_id=instance.pk) + if not q.count(): + continue + for ft in q.all(): + ft.generate_full_location() + + +m2m_changed.connect(treatment_attached_changed, sender=Treatment.finds.through) + + def pre_delete_treatment(sender, **kwargs): treatment = kwargs.get("instance") for find in Find.objects.filter(upstream_treatment=treatment).all(): |
