summaryrefslogtreecommitdiffstats
path: root/forum/authentication/forms.py
diff options
context:
space:
mode:
authorAdolfo Fitoria <fitoria@fitoria-laptop.(none)>2010-04-03 21:56:39 -0600
committerAdolfo Fitoria <fitoria@fitoria-laptop.(none)>2010-04-03 21:56:39 -0600
commit388290fb2809fb024c20dbf7b033dbda0d7b7535 (patch)
treea3d1e63f52d4c3f22e3b4cc17d30fc4da75184c5 /forum/authentication/forms.py
parent9911fa367920ada19b22db51ed787d38ec1499ed (diff)
downloadaskbot-388290fb2809fb024c20dbf7b033dbda0d7b7535.tar.gz
askbot-388290fb2809fb024c20dbf7b033dbda0d7b7535.tar.bz2
askbot-388290fb2809fb024c20dbf7b033dbda0d7b7535.zip
adding missing files?
Diffstat (limited to 'forum/authentication/forms.py')
-rwxr-xr-xforum/authentication/forms.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/forum/authentication/forms.py b/forum/authentication/forms.py
new file mode 100755
index 00000000..7fa06b01
--- /dev/null
+++ b/forum/authentication/forms.py
@@ -0,0 +1,73 @@
+from forum.utils.forms import NextUrlField, UserNameField, UserEmailField, SetPasswordForm
+from forum.models import EmailFeedSetting, Question, User
+from django.contrib.contenttypes.models import ContentType
+from django.utils.translation import ugettext as _
+from django.utils.safestring import mark_safe
+from django import forms
+from forum.forms import EditUserEmailFeedsForm
+import logging
+
+class SimpleRegistrationForm(forms.Form):
+ next = NextUrlField()
+ username = UserNameField()
+ email = UserEmailField()
+
+class TemporaryLoginRequestForm(forms.Form):
+ def __init__(self, data=None):
+ super(TemporaryLoginRequestForm, self).__init__(data)
+ self.user_cache = None
+
+ email = forms.EmailField(
+ required=True,
+ label=_("Your account email"),
+ error_messages={
+ 'required': _("You cannot leave this field blank"),
+ 'invalid': _('please enter a valid email address'),
+ }
+ )
+
+ def clean_email(self):
+ try:
+ user = User.objects.get(email=self.cleaned_data['email'])
+ except:
+ raise forms.ValidationError(_("Sorry, but this email is not on our database."))
+
+ self.user_cache = user
+ return self.cleaned_data['email']
+
+
+class SimpleEmailSubscribeForm(forms.Form):
+ SIMPLE_SUBSCRIBE_CHOICES = (
+ ('y',_('okay, let\'s try!')),
+ ('n',_('no OSQA community email please, thanks'))
+ )
+ subscribe = forms.ChoiceField(widget=forms.widgets.RadioSelect(), \
+ error_messages={'required':_('please choose one of the options above')},
+ choices=SIMPLE_SUBSCRIBE_CHOICES)
+
+ def save(self,user=None):
+ EFF = EditUserEmailFeedsForm
+ if self.cleaned_data['subscribe'] == 'y':
+ email_settings_form = EFF()
+ logging.debug('%s wants to subscribe' % user.username)
+ else:
+ email_settings_form = EFF(initial=EFF.NO_EMAIL_INITIAL)
+ email_settings_form.save(user,save_unbound=True)
+
+class ChangePasswordForm(SetPasswordForm):
+ """ change password form """
+ oldpw = forms.CharField(widget=forms.PasswordInput(attrs={'class':'required'}),
+ label=mark_safe(_('Current password')))
+
+ def __init__(self, data=None, user=None, *args, **kwargs):
+ if user is None:
+ raise TypeError("Keyword argument 'user' must be supplied")
+ super(ChangePasswordForm, self).__init__(data, *args, **kwargs)
+ self.user = user
+
+ def clean_oldpw(self):
+ """ test old password """
+ if not self.user.check_password(self.cleaned_data['oldpw']):
+ raise forms.ValidationError(_("Old password is incorrect. \
+ Please enter the correct password."))
+ return self.cleaned_data['oldpw']