From 1dc7d45670c8207d5de1420707cfc1f2d13a67c6 Mon Sep 17 00:00:00 2001 From: Oskar Hahn Date: Thu, 22 Nov 2012 16:54:56 +0100 Subject: [PATCH] sort persons in motions --- openslides/motion/models.py | 4 ++-- openslides/participant/models.py | 4 ++-- openslides/utils/person/api.py | 2 +- openslides/utils/person/forms.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openslides/motion/models.py b/openslides/motion/models.py index c29133ebf..380b7de3a 100644 --- a/openslides/motion/models.py +++ b/openslides/motion/models.py @@ -162,8 +162,8 @@ class Motion(models.Model, SlideMixin): @property def supporters(self): - for object in self.motionsupporter_set.all(): - yield object.person + return sorted([object.person for object in self.motionsupporter_set.all()], + key=lambda person: person.sort_name) def is_supporter(self, person): try: diff --git a/openslides/participant/models.py b/openslides/participant/models.py index cadc82d5e..14758a16d 100644 --- a/openslides/participant/models.py +++ b/openslides/participant/models.py @@ -86,8 +86,8 @@ class User(DjangoUser, PersonMixin, Person, SlideMixin): @property def sort_name(self): if config['participant_sort_users_by_first_name']: - return self.first_name - return self.last_name + return self.first_name.lower() + return self.last_name.lower() @models.permalink def get_absolute_url(self, link='view'): diff --git a/openslides/utils/person/api.py b/openslides/utils/person/api.py index 92fd7f23a..1dff34d3d 100644 --- a/openslides/utils/person/api.py +++ b/openslides/utils/person/api.py @@ -35,7 +35,7 @@ class Person(object): Return the part of the name, which is used for sorting. For example the pre-name or the last-name """ - return self.__repr__() + return self.clean_name.lower() @property def clean_name(self): diff --git a/openslides/utils/person/forms.py b/openslides/utils/person/forms.py index 2330443dc..cee080bce 100644 --- a/openslides/utils/person/forms.py +++ b/openslides/utils/person/forms.py @@ -22,7 +22,7 @@ class PersonChoices(object): def __iter__(self): if self.field.empty_label is not None: yield (u"", self.field.empty_label) - for person in Persons(): + for person in sorted(Persons(), key=lambda person: person.sort_name): yield (person.person_id, person)