From b048f9b4ebab50e6f539ef92ecbeb6cc05ecb3d7 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 6 Mar 2017 23:16:09 +0100 Subject: Person: raw name is modified on save (refs #3321) --- ishtar_common/models.py | 9 ++++----- ishtar_common/tests.py | 7 +++++++ 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 24704dd21..53f0871f5 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2748,11 +2748,10 @@ class Person(Address, Merge, OwnPerms, ValueGetter): def save(self, *args, **kwargs): super(Person, self).save(*args, **kwargs) - if not self.raw_name: - self.raw_name = get_external_id( - 'person_raw_name', self) - if self.raw_name: - self.save() + raw_name = get_external_id('person_raw_name', self) + if raw_name and self.raw_name != raw_name: + self.raw_name = raw_name + self.save() if hasattr(self, 'responsible_town_planning_service'): for fle in self.responsible_town_planning_service.all(): fle.save() # force update of raw_town_planning_service diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index a9e92e1f2..095056c2e 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -954,6 +954,13 @@ class IshtarBasicTest(TestCase): response = self.client.get(reverse('status')) self.assertEqual(response.status_code, 200) + def test_person_rawname(self): + person = models.Person.objects.create(name="Weasley", surname="Bill") + self.assertEqual(person.raw_name, "WEASLEY Bill") + person.surname = "George" + person.save() + self.assertEqual(person.raw_name, "WEASLEY George") + class GeomaticTest(TestCase): def test_post_save_point(self): -- cgit v1.2.3