diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-08-29 16:13:34 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-08-29 16:13:34 +0200 |
| commit | 02369bdd4c7d82f43cef34fa19344876087a8159 (patch) | |
| tree | 4692f985fcc13b16c5e5ca14f626b6b2ce435a4d /archaeological_finds/models_finds.py | |
| parent | 29c1517bdec274a7a015a24140a63aeb7b749b4b (diff) | |
| download | Ishtar-02369bdd4c7d82f43cef34fa19344876087a8159.tar.bz2 Ishtar-02369bdd4c7d82f43cef34fa19344876087a8159.zip | |
Find deletions: delete associated base find (refs #3724)
Diffstat (limited to 'archaeological_finds/models_finds.py')
| -rw-r--r-- | archaeological_finds/models_finds.py | 10 |
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): |
