From 51a0fb27050aca24251f7dd80de8a043681487de Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Wed, 14 Sep 2011 20:08:40 -0700 Subject: [PATCH] Adding errors to API/login and API/signup. Getting rid of namespacing on login and signup form fields for api use. --- apps/api/views.py | 12 +++++++++-- apps/reader/forms.py | 39 +++++++++++++++++++----------------- media/js/newsblur/reader.js | 2 +- templates/reader/feeds.xhtml | 8 ++++---- templates/static/api.yml | 10 ++++----- 5 files changed, 41 insertions(+), 30 deletions(-) diff --git a/apps/api/views.py b/apps/api/views.py index ba85883e1..a8c6844e9 100644 --- a/apps/api/views.py +++ b/apps/api/views.py @@ -15,27 +15,35 @@ from utils import log as logging @json.json_view def login(request): code = -1 + errors = None + if request.method == "POST": form = LoginForm(data=request.POST) + if form.errors: + errors = form.errors if form.is_valid(): login_user(request, form.get_user()) logging.user(form.get_user(), "~FG~BB~SKAPI Login~FW") code = 1 - return dict(code=code) + return dict(code=code, errors=errors) @json.json_view def signup(request): code = -1 + errors = None + if request.method == "POST": form = SignupForm(data=request.POST) + if form.errors: + errors = form.errors if form.is_valid(): new_user = form.save() login_user(request, new_user) logging.user(new_user, "~FG~SB~BBAPI NEW SIGNUP~FW") code = 1 - return dict(code=code) + return dict(code=code, errors=errors) @json.json_view def logout(request): diff --git a/apps/reader/forms.py b/apps/reader/forms.py index d94fe092d..8252b9863 100644 --- a/apps/reader/forms.py +++ b/apps/reader/forms.py @@ -61,22 +61,25 @@ class LoginForm(forms.Form): class SignupForm(forms.Form): - signup_username = forms.RegexField(regex=r'^\w+$', - max_length=30, - widget=forms.TextInput(), - label=_(u'username'), - error_messages={'required': 'Please enter a username.'}) + username = forms.RegexField(regex=r'^\w+$', + max_length=30, + widget=forms.TextInput(), + label=_(u'username'), + error_messages={ + 'required': 'Please enter a username.', + 'invalid': "Your username may only contain letters and numbers." + }) email = forms.EmailField(widget=forms.TextInput(attrs=dict(maxlength=75)), label=_(u'email address'), required=False) # error_messages={'required': 'Please enter your email.'}) - signup_password = forms.CharField(widget=forms.PasswordInput(), - label=_(u'password'), - required=False) - # error_messages={'required': 'Please enter a password.'}) + password = forms.CharField(widget=forms.PasswordInput(), + label=_(u'password'), + required=False) + # error_messages={'required': 'Please enter a password.'}) - def clean_signup_username(self): - username = self.cleaned_data['signup_username'] + def clean_username(self): + username = self.cleaned_data['username'] try: User.objects.get(username__iexact=username) except User.DoesNotExist: @@ -84,10 +87,10 @@ class SignupForm(forms.Form): raise forms.ValidationError(_(u'Someone is already using that username.')) return username - def clean_signup_password(self): - if not self.cleaned_data['signup_password']: + def clean_password(self): + if not self.cleaned_data['password']: return "" - return self.cleaned_data['signup_password'] + return self.cleaned_data['password'] def clean_email(self): if not self.cleaned_data['email']: @@ -95,13 +98,13 @@ class SignupForm(forms.Form): return self.cleaned_data['email'] def save(self, profile_callback=None): - new_user = User(username=self.cleaned_data['signup_username']) - new_user.set_password(self.cleaned_data['signup_password']) + new_user = User(username=self.cleaned_data['username']) + new_user.set_password(self.cleaned_data['password']) new_user.is_active = True new_user.email = self.cleaned_data['email'] new_user.save() - new_user = authenticate(username=self.cleaned_data['signup_username'], - password=self.cleaned_data['signup_password']) + new_user = authenticate(username=self.cleaned_data['username'], + password=self.cleaned_data['password']) return new_user diff --git a/media/js/newsblur/reader.js b/media/js/newsblur/reader.js index 14e36b960..1ca6951d5 100644 --- a/media/js/newsblur/reader.js +++ b/media/js/newsblur/reader.js @@ -4930,7 +4930,7 @@ handle_login_and_signup_forms: function() { var self = this; var $hidden_inputs = $('.NB-signup-hidden'); - var $signup_username = $('input[name=signup-signup_username]'); + var $signup_username = $('input[name=signup-username]'); $signup_username.bind('focus', function() { $hidden_inputs.slideDown(300); diff --git a/templates/reader/feeds.xhtml b/templates/reader/feeds.xhtml index 3e641cb79..4d6a9d210 100644 --- a/templates/reader/feeds.xhtml +++ b/templates/reader/feeds.xhtml @@ -135,13 +135,13 @@ $(document).ready(function() {
- {{ signup_form.signup_username.label_tag }} - {{ signup_form.signup_username }} + {{ signup_form.username.label_tag }} + {{ signup_form.username }}