1 from general import NextUrlField, UserNameField, UserEmailField, SetPasswordForm
2 from forum.models import Question, User
3 from django.contrib.contenttypes.models import ContentType
4 from django.utils.translation import ugettext as _
5 from django.utils.safestring import mark_safe
6 from django import forms
9 class SimpleRegistrationForm(forms.Form):
11 username = UserNameField()
12 email = UserEmailField()
14 class TemporaryLoginRequestForm(forms.Form):
15 def __init__(self, data=None):
16 super(TemporaryLoginRequestForm, self).__init__(data)
17 self.user_cache = None
19 email = forms.EmailField(
21 label=_("Your account email"),
23 'required': _("You cannot leave this field blank"),
24 'invalid': _('please enter a valid email address'),
28 def clean_email(self):
29 users = list(User.objects.filter(email=self.cleaned_data['email']))
32 raise forms.ValidationError(_("Sorry, but this email is not on our database."))
34 self.user_cache = users
35 return self.cleaned_data['email']
37 class ChangePasswordForm(SetPasswordForm):
38 """ change password form """
39 oldpw = forms.CharField(widget=forms.PasswordInput(attrs={'class':'required'}),
40 label=mark_safe(_('Current password')))
42 def __init__(self, data=None, user=None, *args, **kwargs):
44 raise TypeError("Keyword argument 'user' must be supplied")
45 super(ChangePasswordForm, self).__init__(data, *args, **kwargs)
48 def clean_oldpw(self):
49 """ test old password """
50 if not self.user.check_password(self.cleaned_data['oldpw']):
51 raise forms.ValidationError(_("Old password is incorrect. \
52 Please enter the correct password."))
53 return self.cleaned_data['oldpw']