diff options
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/models.py | 31 | ||||
-rw-r--r-- | archaeological_operations/tests.py | 6 |
2 files changed, 17 insertions, 20 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 1a534af7a..c9244ca48 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -1566,6 +1566,20 @@ class Parcel(LightHistorizedItem): self.operation = None self.save() + def clean_orphan(self): + """ + Remove when the parcel is linked to nothing + """ + if self.operation or self.associated_file: + return + if self.context_record.count(): + # trying to restore a lost parcel + self.operation = self.context_record.all()[0].operation + self.skip_history_when_saving = True + self.save() + elif self.id: + self.delete() + def parcel_post_save(sender, **kwargs): if not kwargs['instance']: @@ -1576,23 +1590,6 @@ def parcel_post_save(sender, **kwargs): updated = False - """ - # remove when the parcel is linked to nothing - # problematic in wizards - # TODO: add admin action - if not getattr(parcel, '_updated_id', None) and not created \ - and not parcel.operation and not parcel.associated_file: - if parcel.context_record.count(): - # trying to restore a lost parcel - parcel.operation = parcel.context_record.all()[0].operation - updated = True - elif parcel.id: - parcel.delete() - return - else: - return - """ - if updated: parcel.save() return diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 38f832cf8..b4c7bc617 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -1014,8 +1014,8 @@ class OperationTest(TestCase, OperationInitTest): ope.parcels.add(parcel) ope.parcels.clear() # no signal raised... should resave models.Parcel.objects.filter(pk=parcel.pk).all()[0].save() - # our parcel has no operation attached and should be deleted - self.assertEqual(parcel_nb - 1, models.Parcel.objects.count()) + # parcel is no longer automatically delete on detach + self.assertEqual(parcel_nb, models.Parcel.objects.count()) def testIndex(self): ope = create_operation(self.user, values={'year': 2042}) @@ -2228,7 +2228,7 @@ class OperationWizardModifTest(WizardTest, OperationInitTest, TestCase): # the init parcel is not detached from the operation test_object.assertEqual(operation.parcels.count(), test_object.parcel_number + 1) - # update teh external id on update + # update the external id on update cr = ContextRecord.objects.get(pk=self.cr.pk) test_object.assertEqual(cr.external_id, "codeope42-12345-A1-Context record") |