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 17:24:41 +0100
commit0b796e98bf8c196b3ec5005720925178782c046d (patch)
treeb98b84f9cc2db3b8d782a4c974878640235051d9 /archaeological_finds/models_treatments.py
parentd317f541575a7ef59e7b06df5edc5b9c1560512f (diff)
downloadIshtar-0b796e98bf8c196b3ec5005720925178782c046d.tar.bz2
Ishtar-0b796e98bf8c196b3ec5005720925178782c046d.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 faf448b63..60ae4a45a 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():