diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-01 18:10:02 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-13 18:26:03 +0200 |
commit | fd89abf54954a22534d769f27a62608f32c367fa (patch) | |
tree | 86516f6293627e14d0d9a3ad35dd8d7dd17e189c | |
parent | 3a8aa349b06129c4a8f591d56147ce0c97d4d9c5 (diff) | |
download | Ishtar-fd89abf54954a22534d769f27a62608f32c367fa.tar.bz2 Ishtar-fd89abf54954a22534d769f27a62608f32c367fa.zip |
Rstore lost parcel
-rw-r--r-- | archaeological_files/tests.py | 5 | ||||
-rw-r--r-- | archaeological_operations/models.py | 9 | ||||
-rw-r--r-- | archaeological_operations/tests.py | 3 | ||||
-rw-r--r-- | ishtar_common/models.py | 1 |
4 files changed, 10 insertions, 8 deletions
diff --git a/archaeological_files/tests.py b/archaeological_files/tests.py index 7255f677f..9f3693225 100644 --- a/archaeological_files/tests.py +++ b/archaeological_files/tests.py @@ -202,8 +202,9 @@ class FileTest(TestCase, FileInit): fle.parcels.add(parcel) fle.parcels.clear() # no signal raised... should resave Parcel.objects.filter(pk=parcel.pk).all()[0].save() - # our parcel has no operation attached and should be deleted - self.assertEqual(parcel_nb - 1, Parcel.objects.count()) + # our parcel has no operation attached and... is no more automatically + # deleted + self.assertEqual(parcel_nb, Parcel.objects.count()) def test_show(self): c = Client() diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index c9244ca48..b9e1d2e20 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -1585,12 +1585,13 @@ def parcel_post_save(sender, **kwargs): if not kwargs['instance']: return parcel = kwargs['instance'] - cached_label_changed(sender, **kwargs) - updated = False - - if updated: + if not getattr(parcel, '_updated_id', None) \ + and not parcel.operation and not parcel.associated_file \ + and parcel.context_record.count(): + # trying to restore a lost parcel + parcel.operation = parcel.context_record.all()[0].operation parcel.save() return diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index b4c7bc617..d7cf67849 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -2250,8 +2250,9 @@ class OperationWizardModifTest(WizardTest, OperationInitTest, TestCase): # with no attach the parcel is deleted test_object.assertEqual(operation.parcels.count(), test_object.parcel_number) + # the parcel object is no more automatically deleted test_object.assertEqual(models.Parcel.objects.count(), - test_object.parcel_number) + test_object.parcel_number + 1) self.form_datas[0].extra_tests = [post_first_wizard] self.form_datas[1].extra_tests = [post_second_wizard] diff --git a/ishtar_common/models.py b/ishtar_common/models.py index b3ce847ce..af63cb7c1 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1176,7 +1176,6 @@ class FullSearch(models.Model): if hasattr(self, 'data') and self.data: content_type = ContentType.objects.get_for_model(self) - datas = [] for json_field in JsonDataField.objects.filter( content_type=content_type, search_index=True).all(): |