forms.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from django import forms
  2. from django.forms.extras import widgets
  3. from django.utils.translation import ugettext_lazy as _
  4. from . import fields, form_fields, models
  5. from .. import forms as base_forms
  6. class UserAdditionalInfoForm(forms.Form):
  7. """
  8. Class with user additional information form.
  9. """
  10. # TODO: Language field is missing?
  11. gender = forms.ChoiceField(
  12. label=_("Gender"),
  13. choices=fields.GENDER_CHOICES,
  14. widget=forms.RadioSelect(),
  15. required=False,
  16. )
  17. birthdate = form_fields.LimitedDateTimeField(
  18. upper_limit=models.upper_birthdate_limit,
  19. lower_limit=models.lower_birthdate_limit,
  20. label=_("Birth date"),
  21. required=False,
  22. widget=widgets.SelectDateWidget(
  23. years=[
  24. y for y in range(
  25. models.upper_birthdate_limit().year,
  26. models.lower_birthdate_limit().year,
  27. -1,
  28. )
  29. ],
  30. ),
  31. )
  32. class RegistrationForm(base_forms.UserUsernameForm, base_forms.UserPasswordForm, base_forms.UserBasicInfoForm, UserAdditionalInfoForm):
  33. """
  34. Class with registration form.
  35. """
  36. class AccountChangeForm(base_forms.UserBasicInfoForm, UserAdditionalInfoForm, base_forms.UserCurrentPasswordForm):
  37. """
  38. Class with form for changing your account settings.
  39. """