diff options
author | Adolfo Fitoria <fitoria@fitoria-laptop.(none)> | 2010-04-03 21:56:39 -0600 |
---|---|---|
committer | Adolfo Fitoria <fitoria@fitoria-laptop.(none)> | 2010-04-03 21:56:39 -0600 |
commit | 388290fb2809fb024c20dbf7b033dbda0d7b7535 (patch) | |
tree | a3d1e63f52d4c3f22e3b4cc17d30fc4da75184c5 /forum/authentication/forms.py | |
parent | 9911fa367920ada19b22db51ed787d38ec1499ed (diff) | |
download | askbot-388290fb2809fb024c20dbf7b033dbda0d7b7535.tar.gz askbot-388290fb2809fb024c20dbf7b033dbda0d7b7535.tar.bz2 askbot-388290fb2809fb024c20dbf7b033dbda0d7b7535.zip |
adding missing files?
Diffstat (limited to 'forum/authentication/forms.py')
-rwxr-xr-x | forum/authentication/forms.py | 73 |
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'] |