Order submitter and supporter fields by full name in ApplicationManagerForm.

This commit is contained in:
Emanuel Schuetze 2011-11-01 06:47:10 +01:00
parent 66c078b333
commit a23164a906
2 changed files with 24 additions and 2 deletions

View File

@ -10,12 +10,30 @@
:license: GNU GPL, see LICENSE for more details.
"""
from django.forms import ModelForm, Form, CharField, Textarea, TextInput
from django.forms import ModelForm, Form, CharField, Textarea, TextInput, ModelMultipleChoiceField, ModelChoiceField
from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from openslides.application.models import Application
class UserModelChoiceField(ModelChoiceField):
"""
Extend ModelChoiceField for users so that the choices are
listed as 'first_name last_name' instead of just 'username'.
"""
def label_from_instance(self, obj):
return obj.get_full_name()
class UserModelMultipleChoiceField(ModelMultipleChoiceField):
"""
Extend ModelMultipleChoiceField for users so that the choices are
listed as 'first_name last_name' instead of just 'username'.
"""
def label_from_instance(self, obj):
return obj.get_full_name()
class ApplicationForm(Form):
error_css_class = 'error'
required_css_class = 'required'
@ -29,6 +47,10 @@ class ApplicationManagerForm(ModelForm):
error_css_class = 'error'
required_css_class = 'required'
users = User.objects.all().exclude(profile=None).order_by("first_name")
submitter = UserModelChoiceField(queryset=users, label=_("Submitter"))
supporter = UserModelMultipleChoiceField(queryset=users, label=_("Supporters"))
class Meta:
model = Application
exclude = ('number', 'status', 'permitted', 'log')