diff options
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r-- | archaeological_operations/models.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index c1f03368b..1bf51120a 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -1654,6 +1654,14 @@ class RelationType(GeneralRelationType): ordering = ('order', 'label') +class OperationRecordRelationManager(models.Manager): + def get_by_natural_key(self, left_record, right_record, relation_type): + return self.get( + left_record__code_patriarche=left_record, + right_record__code_patriarche=right_record, + relation_type__txt_idx=relation_type) + + class RecordRelations(GeneralRecordRelations, models.Model): MAIN_ATTR = 'left_record' left_record = models.ForeignKey(Operation, @@ -1661,6 +1669,7 @@ class RecordRelations(GeneralRecordRelations, models.Model): right_record = models.ForeignKey(Operation, related_name='left_relations') relation_type = models.ForeignKey(RelationType) + objects = OperationRecordRelationManager() class Meta: verbose_name = _("Operation record relation") @@ -1670,6 +1679,10 @@ class RecordRelations(GeneralRecordRelations, models.Model): ("view_operationrelation", "Can view all Operation relations"), ] + def natural_key(self): + return (self.left_record.code_patriarche, + self.right_record.code_patriarche, self.relation_type.txt_idx) + post_delete.connect(post_delete_record_relation, sender=RecordRelations) |