summaryrefslogtreecommitdiffstats
path: root/askbot
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-11-28 13:40:41 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-11-28 13:40:41 -0300
commit93057a8004b47a8ff7d7cb8f983f39d6d37b12b1 (patch)
tree6c5c823e7f98f39d294ae833789ec90520d86bce /askbot
parent129d664378eae793f8ef9a7eec7f31acfacad603 (diff)
downloadaskbot-93057a8004b47a8ff7d7cb8f983f39d6d37b12b1.tar.gz
askbot-93057a8004b47a8ff7d7cb8f983f39d6d37b12b1.tar.bz2
askbot-93057a8004b47a8ff7d7cb8f983f39d6d37b12b1.zip
added REGISTRATION_FORM setting
Diffstat (limited to 'askbot')
-rw-r--r--askbot/deps/django_authopenid/forms.py15
-rw-r--r--askbot/deps/django_authopenid/views.py8
-rw-r--r--askbot/utils/forms.py4
3 files changed, 20 insertions, 7 deletions
diff --git a/askbot/deps/django_authopenid/forms.py b/askbot/deps/django_authopenid/forms.py
index fbc5c6ff..3c0e8e7f 100644
--- a/askbot/deps/django_authopenid/forms.py
+++ b/askbot/deps/django_authopenid/forms.py
@@ -33,12 +33,13 @@ import logging
from django import forms
from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
-from django.conf import settings
+from django.conf import settings as django_settings
from askbot.conf import settings as askbot_settings
from askbot import const as askbot_const
from django.utils.safestring import mark_safe
from recaptcha_works.fields import RecaptchaField
from askbot.utils.forms import NextUrlField, UserNameField, UserEmailField, SetPasswordForm
+from askbot.utils.loading import load_module
# needed for some linux distributions like debian
try:
@@ -105,7 +106,7 @@ class OpenidSigninForm(forms.Form):
if 'openid_url' in self.cleaned_data:
openid_url = self.cleaned_data['openid_url']
if xri.identifierScheme(openid_url) == 'XRI' and getattr(
- settings, 'OPENID_DISALLOW_INAMES', False
+ django_settings, 'OPENID_DISALLOW_INAMES', False
):
raise forms.ValidationError(_('i-names are not supported'))
return self.cleaned_data['openid_url']
@@ -449,3 +450,13 @@ class EmailPasswordForm(forms.Form):
except:
raise forms.ValidationError(_("sorry, there is no such user name"))
return self.cleaned_data['username']
+
+def get_registration_form_class():
+ """returns class for the user registration form
+ user has a chance to specify the form via setting `REGISTRATION_FORM`
+ """
+ custom_class = getattr(django_settings, 'REGISTRATION_FORM', None)
+ if custom_class:
+ return load_module(custom_class)
+ else:
+ return OpenidRegisterForm
diff --git a/askbot/deps/django_authopenid/views.py b/askbot/deps/django_authopenid/views.py
index 8e206120..1d1a9a57 100644
--- a/askbot/deps/django_authopenid/views.py
+++ b/askbot/deps/django_authopenid/views.py
@@ -903,7 +903,8 @@ def register(request, login_provider_name=None, user_identifier=None):
email = request.session.get('email', '')
logging.debug('request method is %s' % request.method)
- register_form = forms.OpenidRegisterForm(
+ form_class = forms.get_registration_form_class()
+ register_form = form_class(
initial={
'next': next_url,
'username': request.session.get('username', ''),
@@ -931,9 +932,10 @@ def register(request, login_provider_name=None, user_identifier=None):
login_provider_name = request.session['login_provider_name']
logging.debug('trying to create new account associated with openid')
- register_form = forms.OpenidRegisterForm(request.POST)
+ form_class = forms.get_registration_form_class()
+ register_form = form_class(request.POST)
if not register_form.is_valid():
- logging.debug('OpenidRegisterForm is INVALID')
+ logging.debug('registration form is INVALID')
else:
username = register_form.cleaned_data['username']
email = register_form.cleaned_data['email']
diff --git a/askbot/utils/forms.py b/askbot/utils/forms.py
index 8cdf68b9..6ade6e82 100644
--- a/askbot/utils/forms.py
+++ b/askbot/utils/forms.py
@@ -211,9 +211,9 @@ class UserEmailField(forms.EmailField):
hidden = kw.pop('hidden', False)
if hidden is True:
- widget_class = forms.TextInput
- else:
widget_class = forms.HiddenInput
+ else:
+ widget_class = forms.TextInput
super(UserEmailField,self).__init__(
widget=widget_class(