OpenSlides/openslides/participant/forms.py

78 lines
2.5 KiB
Python
Raw Normal View History

2011-07-31 10:46:29 +02:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
openslides.participant.forms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Forms for the participant app.
:copyright: 2011 by the OpenSlides team, see AUTHORS.
:license: GNU GPL, see LICENSE for more details.
"""
from django.forms import Form, ModelForm, CharField, EmailField, FileField, FileInput, MultipleChoiceField, ModelMultipleChoiceField, ChoiceField, BooleanField
from django.contrib.auth.models import User, Group, Permission
2011-09-03 17:17:29 +02:00
from django.contrib.auth.forms import AdminPasswordChangeForm
2011-07-31 10:46:29 +02:00
from django.utils.translation import ugettext as _
from utils.forms import CssClassMixin
from utils.translation_ext import LocalizedModelMultipleChoiceField
# required for USER_VISIBLE_PERMISSIONS
2011-07-31 10:46:29 +02:00
from participant.models import Profile
2011-07-31 10:46:29 +02:00
USER_APPLICATION_IMPORT_OPTIONS = [
('REASSIGN', _('Keep applications, try to reassign submitter')),
('INREVIEW', _('Keep applications, set status to "needs review"')),
('DISCARD' , _('Discard applications'))
]
class UserNewForm(ModelForm, CssClassMixin):
first_name = CharField(label=_("First name"))
last_name = CharField(label=_("Last name"))
class Meta:
model = User
exclude = ('username', 'password', 'is_staff', 'last_login', 'date_joined', 'user_permissions')
2011-09-03 17:17:29 +02:00
class UserEditForm(ModelForm, CssClassMixin):
2011-07-31 10:46:29 +02:00
first_name = CharField(label=_("First name"))
last_name = CharField(label=_("Last name"))
2011-09-03 17:17:29 +02:00
2011-07-31 10:46:29 +02:00
class Meta:
model = User
2011-09-03 17:17:29 +02:00
exclude = ('password', 'is_staff', 'last_login', 'date_joined', 'user_permissions')
2011-07-31 10:46:29 +02:00
2011-09-03 17:17:29 +02:00
class UsernameForm(ModelForm, CssClassMixin):
2011-07-31 10:46:29 +02:00
class Meta:
model = User
exclude = ('first_name', 'last_name', 'email', 'is_active','is_superuser', 'groups', 'password', 'is_staff', 'last_login', 'date_joined', 'user_permissions')
2012-04-14 14:31:09 +02:00
class ProfileForm(ModelForm, CssClassMixin):
2011-07-31 10:46:29 +02:00
class Meta:
model = Profile
2012-04-14 14:31:09 +02:00
class GroupForm(ModelForm, CssClassMixin):
permissions = LocalizedModelMultipleChoiceField(queryset=Permission.objects.all())
2011-07-31 10:46:29 +02:00
class Meta:
model = Group
exclude = ('permissions',)
2011-07-31 10:46:29 +02:00
2012-04-14 14:31:09 +02:00
class UsersettingsForm(UserEditForm, CssClassMixin):
2011-07-31 10:46:29 +02:00
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email')
2012-04-14 14:31:09 +02:00
class UserImportForm(Form, CssClassMixin):
2011-09-03 17:17:29 +02:00
csvfile = FileField(widget=FileInput(attrs={'size':'50'}), label=_("CSV File"))
application_handling = ChoiceField(required=True, choices=USER_APPLICATION_IMPORT_OPTIONS, label=_("For existing applications"))