diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-06 15:52:40 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-06 15:52:40 +0200 |
commit | e2027c3b2c4bcc2356ec06b5fb6dc8d5bf780e50 (patch) | |
tree | ced06e4a3e0ef4600d2dbbf2741f001125c162bf /ishtar_common/models.py | |
parent | 180d93d47cfae279ef927ea5fa736fa1fc37c553 (diff) | |
parent | b7a7183cdb07c7782abac7fe01d86cc2beb1411e (diff) | |
download | Ishtar-e2027c3b2c4bcc2356ec06b5fb6dc8d5bf780e50.tar.bz2 Ishtar-e2027c3b2c4bcc2356ec06b5fb6dc8d5bf780e50.zip |
Merge branch 'master' into v0.9
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 087e772e7..6150ab0aa 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1448,7 +1448,7 @@ class Merge(models.Model): return if not self.merge_key: self.generate_merge_key() - self.save() + self.save(merge_key_generated=True) if not self.pk or self.merge_key == self.EMPTY_MERGE_KEY: return q = self.__class__.objects\ @@ -1469,9 +1469,14 @@ class Merge(models.Model): self.merge_candidate.add(item) def save(self, *args, **kwargs): + # prevent circular save + merge_key_generated = False + if 'merge_key_generated' in kwargs: + merge_key_generated = kwargs.pop('merge_key_generated') self.generate_merge_key() item = super(Merge, self).save(*args, **kwargs) - self.generate_merge_candidate() + if not merge_key_generated: + self.generate_merge_candidate() return item def archive(self): @@ -2298,6 +2303,8 @@ class Person(Address, Merge, OwnPerms, ValueGetter): blank=True, null=True) title = models.ForeignKey(TitleType, verbose_name=_(u"Title"), blank=True, null=True) + salutation = models.CharField(_(u"Salutation"), max_length=200, + blank=True, null=True) surname = models.CharField(_(u"Surname"), max_length=50, blank=True, null=True) name = models.CharField(_(u"Name"), max_length=200, blank=True, @@ -2324,6 +2331,12 @@ class Person(Address, Merge, OwnPerms, ValueGetter): ("delete_own_person", ugettext(u"Can delete own Person")), ) + @property + def full_title(self): + return u" ".join( + [unicode(getattr(self, attr)) + for attr in ['title', 'salutation'] if getattr(self, attr)]) + def simple_lbl(self): values = [unicode(getattr(self, attr)) for attr in ('surname', 'name') if getattr(self, attr)] @@ -2413,7 +2426,8 @@ class Person(Address, Merge, OwnPerms, ValueGetter): if self.title: values = [self.title.label] values += [unicode(getattr(self, attr)) - for attr in ('surname', 'name') if getattr(self, attr)] + for attr in ('salutation', 'surname', 'name') + if getattr(self, attr)] if not values and self.raw_name: values = [self.raw_name] if self.attached_to: |