diff --git a/CHANGES.rst b/CHANGES.rst index 4d33ad7..64d1310 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -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] diff --git a/src/collective/contact/core/content/held_position.py b/src/collective/contact/core/content/held_position.py index 72498c1..fdd3dba 100644 --- a/src/collective/contact/core/content/held_position.py +++ b/src/collective/contact/core/content/held_position.py @@ -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""" diff --git a/src/collective/contact/core/content/person.py b/src/collective/contact/core/content/person.py index 704dde6..cd17a43 100644 --- a/src/collective/contact/core/content/person.py +++ b/src/collective/contact/core/content/person.py @@ -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): diff --git a/src/collective/contact/core/tests/test_content_types.py b/src/collective/contact/core/tests/test_content_types.py index 102dfe1..a1b7d26 100644 --- a/src/collective/contact/core/tests/test_content_types.py +++ b/src/collective/contact/core/tests/test_content_types.py @@ -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)")