diff options
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: | 
