From 0c6c694b743cef4517df63ad93c6af4f7dc757cb Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 18 May 2022 12:31:50 +0200 Subject: Person: fix raw_name reinit when no name is given --- ishtar_common/models.py | 6 +++--- ishtar_common/tests.py | 10 ++++++++++ ishtar_common/version.py | 4 ++-- 3 files changed, 15 insertions(+), 5 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 6b4959496..d2a476640 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2726,8 +2726,8 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem): def _generate_cached_label(self): lbl = get_generated_id("person_raw_name", self) - if not lbl: - return "-" + if not lbl.strip(): + return self.raw_name or "-" if self.attached_to: attached_to = str(self.attached_to) lbl += " ({})".format(attached_to) @@ -2897,7 +2897,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem): def save(self, *args, **kwargs): super(Person, self).save(*args, **kwargs) raw_name = get_generated_id("person_raw_name", self) - if raw_name and self.raw_name != raw_name: + if raw_name.strip() and self.raw_name != raw_name: self.raw_name = raw_name self.save() if hasattr(self, "responsible_town_planning_service"): diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 8ef083c9f..bd37226ff 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -2639,10 +2639,20 @@ class IshtarBasicTest(TestCase): def test_person_rawname(self): person = models.Person.objects.create(name="Weasley", surname="Bill") + person = models.Person.objects.get(pk=person.pk) self.assertEqual(person.raw_name, "WEASLEY Bill") + self.assertEqual(person.cached_label, "WEASLEY Bill") person.surname = "George" person.save() + person = models.Person.objects.get(pk=person.pk) self.assertEqual(person.raw_name, "WEASLEY George") + self.assertEqual(person.cached_label, "WEASLEY George") + # do not delete raw_name when no name, surname is available + person.name, person.surname, person.raw_name = "", "", "POTTER Harry" + person.save() + person = models.Person.objects.get(pk=person.pk) + self.assertEqual(person.raw_name, "POTTER Harry") + self.assertEqual(person.cached_label, "POTTER Harry") def test_show(self): person = models.Person.objects.create(name="Weasley", surname="Bill") diff --git a/ishtar_common/version.py b/ishtar_common/version.py index 511f161d2..c4eff2b4c 100644 --- a/ishtar_common/version.py +++ b/ishtar_common/version.py @@ -1,5 +1,5 @@ -# 3.1.62 -VERSION = (3, 1, 62) +# 3.1.64 +VERSION = (3, 1, 64) def get_version(): -- cgit v1.2.3