diff options
-rw-r--r-- | archaeological_operations/tests.py | 12 | ||||
-rw-r--r-- | ishtar_common/models.py | 9 |
2 files changed, 15 insertions, 6 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index d8399eedb..86eb2dfe7 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -578,8 +578,7 @@ class OperationTest(TestCase, OperationInitTest): {'operator': self.orgas[0].pk}) self.assertTrue(json.loads(response.content)['total'] == 2) - def testRelatedSearch(self): - c = Client() + def create_relations(self): rel1 = models.RelationType.objects.create( symmetrical=True, label='Include', txt_idx='include') rel2 = models.RelationType.objects.create( @@ -589,6 +588,11 @@ class OperationTest(TestCase, OperationInitTest): left_record=self.operations[0], right_record=self.operations[1], relation_type=rel1) + return rel1, rel2 + + def testRelatedSearch(self): + c = Client() + rel1, rel2 = self.create_relations() self.operations[1].year = 2011 self.operations[1].save() search = {'year': '2010', 'relation_types_0': rel2.pk} @@ -599,6 +603,10 @@ class OperationTest(TestCase, OperationInitTest): response = c.get(reverse('get-operation'), search) self.assertTrue(json.loads(response.content)['total'] == 2) + def testRelations(self): + self.create_relations() + self.operations[0].delete() + def testOwnSearch(self): c = Client() response = c.get(reverse('get-operation'), {'year': '2010'}) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index d58d549c8..0bc0a607d 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -959,11 +959,12 @@ def post_delete_record_relation(sender, instance, **kwargs): # no symetric/inverse is defined if not sym_rel_type: return - - dct = {'right_record': instance.left_record, - 'left_record': instance.right_record, + dct = {'right_record_id': instance.left_record_id, + 'left_record_id': instance.right_record_id, 'relation_type': sym_rel_type} - instance.__class__.objects.filter(**dct).delete() + q = instance.__class__.objects.filter(**dct) + if q.count(): + q.delete() class ShortMenuItem(object): |