summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r--archaeological_finds/models_finds.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index bc96ded25..66059079b 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -1103,10 +1103,16 @@ class Find(ValueGetter, BaseHistorizedItem, ImageModel, OwnPerms,
Dating.fix_dating_association(self)
-def pre_clean_treatments(sender, **kwargs):
+def pre_clean_find(sender, **kwargs):
if not kwargs.get('instance'):
return
instance = kwargs.get('instance')
+
+ for bf in instance.base_finds.all():
+ # no other find is associated
+ if not bf.find.exclude(pk=instance.pk).count():
+ bf.delete()
+
if instance.downstream_treatment:
# TODO: not managed for now. Raise an error?
return
@@ -1118,7 +1124,7 @@ def pre_clean_treatments(sender, **kwargs):
post_save.connect(cached_label_changed, sender=Find)
-pre_delete.connect(pre_clean_treatments, sender=Find)
+pre_delete.connect(pre_clean_find, sender=Find)
def base_find_find_changed(sender, **kwargs):