summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_treatments.py
diff options
context:
space:
mode:
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 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():