summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_treatments.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-12-12 08:30:22 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-12-12 08:30:22 +0100
commit10177fbddd94fd4ca098fb8319ba2e6baddabad5 (patch)
tree31b0a2fc07472631e9744c1013ca64ffe66fde38 /archaeological_finds/models_treatments.py
parent948696a25ef56e32bc04b93fd8802f45090ee6ba (diff)
downloadIshtar-10177fbddd94fd4ca098fb8319ba2e6baddabad5.tar.bz2
Ishtar-10177fbddd94fd4ca098fb8319ba2e6baddabad5.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.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index 429c9c3f3..24010984f 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -819,6 +819,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():