Fixed generate id from title on held positions and persons.

This commit is contained in:
Thomas Desvenain 2013-10-04 17:25:15 +02:00
parent ec9e883063
commit 1489b64471
4 changed files with 23 additions and 4 deletions

View File

@ -4,6 +4,9 @@ Changelog
1.1 (unreleased)
----------------
- Fixed generate id from title on held positions and persons.
[thomasdesvenain]
- When we get the address of a contact, if the most direct address is empty,
look for the next.
[thomasdesvenain]

View File

@ -93,6 +93,14 @@ class HeldPosition(Container):
use_parent_address = NO_VALUE
parent_address = NO_VALUE
def set_title(self, val):
return
def get_title(self):
return self.Title()
title = property(get_title, set_title)
def get_person(self):
"""Returns the person who holds the position
"""
@ -153,10 +161,10 @@ class HeldPosition(Container):
return u"%s (%s - %s)" % (person_name,
root_organization,
position_name)
def get_person_title(self):
return self.get_person().get_title()
@acqproperty
def photo(self):
"""Get photo from Person"""

View File

@ -74,9 +74,14 @@ class Person(Container):
use_parent_address = NO_VALUE
parent_address = NO_VALUE
def set_title(self, val):
return
def get_title(self):
return u' '.join([x for x in (self.person_title, self.firstname, self.lastname) if x])
title = property(get_title, set_title)
def Title(self):
# must return utf8 and not unicode (Title() from basic behavior return utf8)
# attributes are stored as unicode
@ -84,10 +89,10 @@ class Person(Container):
def get_held_positions(self):
return [obj for obj in self.values() if IHeldPosition.providedBy(obj)]
def get_held_positions_titles(self):
return [p.Title() for p in self.get_held_positions()]
class PersonSchemaPolicy(grok.GlobalUtility,
DexteritySchemaPolicy):

View File

@ -52,6 +52,7 @@ class TestPerson(TestContentTypes):
self.assertIn('degaulle', self.mydirectory)
degaulle = self.degaulle
self.assertEqual('Général Charles De Gaulle', degaulle.Title())
self.assertEqual('Général Charles De Gaulle', degaulle.title)
self.assertEqual('De Gaulle', degaulle.lastname)
self.assertEqual('Charles', degaulle.firstname)
self.assertEqual(datetime.date(1901, 11, 22), degaulle.birthday)
@ -169,6 +170,8 @@ class TestHeldPosition(TestContentTypes):
self.assertIn('adt', degaulle)
self.assertEqual(adt.Title(),
"Armée de terre")
self.assertEqual(adt.title,
"Armée de terre")
self.assertIn('gadt', degaulle)
self.assertEqual(gadt.Title(),
"Général de l'armée de terre (Armée de terre)")