diff options
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r-- | archaeological_context_records/models.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 454e83e8a..5dfaa427a 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -1217,7 +1217,23 @@ class RecordRelations(GeneralRecordRelations, models.Model): return self.left_record.uuid, self.right_record.uuid, self.relation_type.txt_idx -post_delete.connect(post_delete_record_relation, sender=RecordRelations) +def post_delete_cr_record_relation(sender, instance, **kwargs): + if getattr(sender, "_no_post_treatments", False): + return + post_delete_record_relation(sender, instance, **kwargs) + ContextRecordTree.update(instance.left_record_id) + ContextRecordTree.update(instance.right_record_id) + + +def post_save_cr_record_relation(sender, instance, **kwargs): + if getattr(sender, "_no_post_treatments", False): + return + ContextRecordTree.update(instance.left_record_id) + ContextRecordTree.update(instance.right_record_id) + + +post_delete.connect(post_delete_cr_record_relation, sender=RecordRelations) +post_save.connect(post_save_cr_record_relation, sender=RecordRelations) class RecordRelationView(models.Model): @@ -1363,9 +1379,9 @@ class ContextRecordTree(RelationsViews): cr_id integer NOT NULL, cr_parent_id integer NOT NULL, CONSTRAINT fk1_{table} FOREIGN KEY(cr_id) - REFERENCES {fk_table}(id), + REFERENCES {fk_table}(id) ON DELETE CASCADE, CONSTRAINT fk2_{table} FOREIGN KEY(cr_parent_id) - REFERENCES {fk_table}(id) + REFERENCES {fk_table}(id) ON DELETE CASCADE ); CREATE INDEX {table}_id ON {table} (cr_id); CREATE INDEX {table}_parent_id ON {table} (cr_parent_id); @@ -1377,11 +1393,13 @@ class ContextRecordTree(RelationsViews): "archaeological_context_records.ContextRecord", verbose_name=_("Context record"), related_name="context_record_tree_parent", + on_delete=models.CASCADE ) cr_parent = models.ForeignKey( "archaeological_context_records.ContextRecord", verbose_name=_("Context record parent"), related_name="context_record_tree_child", + on_delete=models.CASCADE ) class Meta: |