diff options
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 7b448284e..47f2017f2 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1848,6 +1848,7 @@ class TargetKey(models.Model): TARGET_MODELS = [ ('OrganizationType', _(u"Organization type")), + ('TitleType', _(u"Title")), ('SourceType', _(u"Source type")), ('AuthorType', _(u"Author type")), ('Format', _(u"Format")), @@ -2222,6 +2223,13 @@ class PersonType(GeneralType): ordering = ('label',) +class TitleType(GeneralType): + class Meta: + verbose_name = _(u"Title type") + verbose_name_plural = _(u"Title types") + ordering = ('label',) + + class Person(Address, Merge, OwnPerms, ValueGetter): _prefix = 'person_' TYPE = ( @@ -2235,8 +2243,10 @@ class Person(Address, Merge, OwnPerms, ValueGetter): 'attached_to') SHOW_URL = 'show-person' MODIFY_URL = 'person_modify' - title = models.CharField(_(u"Title"), max_length=100, choices=TYPE, - blank=True, null=True) + old_title = models.CharField(_(u"Title"), max_length=100, choices=TYPE, + blank=True, null=True) + title = models.ForeignKey(TitleType, verbose_name=_(u"Title"), + 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, @@ -2283,11 +2293,6 @@ class Person(Address, Merge, OwnPerms, ValueGetter): def get_values(self, prefix=''): values = super(Person, self).get_values(prefix=prefix) - title = '' - TYPES = dict(self.TYPE) - if self.title in TYPES: - title = dict(self.TYPE)[self.title] - values[prefix + 'title'] = title if not self.attached_to: values.update( Person.get_empty_values(prefix=prefix + 'attached_to_')) @@ -2354,7 +2359,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter): def full_label(self): values = [] if self.title: - values = [unicode(_(self.title))] + values = [self.title.label] values += [unicode(getattr(self, attr)) for attr in ('surname', 'name') if getattr(self, attr)] if not values and self.raw_name: @@ -2425,7 +2430,7 @@ class IshtarUser(User): else: person_type, created = PersonType.objects.get_or_create( txt_idx='public_access') - person = Person.objects.create(title='Mr', surname=surname, + person = Person.objects.create(surname=surname, name=name, email=email, history_modifier=user) person.person_types.add(person_type) |