From: Kriti Godey Date: Thu, 22 Apr 2010 20:32:49 +0000 (-0400) Subject: Some more redirects. Editing user settings does not work. Overhauled adding a new... X-Git-Url: http://git.ithinksw.org/~kgodey/maayanwich.git/commitdiff_plain/e191066a70eb4a1452b49c61016f121dc5c17397 Some more redirects. Editing user settings does not work. Overhauled adding a new user. --- diff --git a/forms.py b/forms.py index e471c2a..e79669c 100644 --- a/forms.py +++ b/forms.py @@ -25,4 +25,11 @@ class NewUserForm(forms.Form): email = forms.EmailField() username = forms.CharField() password = forms.CharField(widget=forms.PasswordInput) - confirm_password = forms.CharField(widget=forms.PasswordInput) + confirmpassword = forms.CharField(widget=forms.PasswordInput) + + def clean_mpassword(self): + password = self.cleaned_data.get("password", "") + cpassword = self.cleaned_data["confirmpassword"] + if password != cpassword: + raise forms.ValidationError(_("The two password fields didn't match.")) + return cpassword diff --git a/templates/newuser.html b/templates/newuser.html index 80fc3ff..e5b6bb3 100644 --- a/templates/newuser.html +++ b/templates/newuser.html @@ -3,7 +3,7 @@ {% block content %}

Create account

- {{ cform.as_p }} + {{ aform.as_p }}
{% endblock %} \ No newline at end of file diff --git a/templates/userchanged.html b/templates/userchanged.html new file mode 100644 index 0000000..6b22f44 --- /dev/null +++ b/templates/userchanged.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} +{% block title %}Yay!{% endblock %} + +{% block content %} +

User change successful!

+{% endblock %} \ No newline at end of file diff --git a/templates/usercreated.html b/templates/usercreated.html new file mode 100644 index 0000000..bf0e919 --- /dev/null +++ b/templates/usercreated.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} +{% block title %}Welcome!{% endblock %} + +{% block content %} +

Registration successful!

+{% endblock %} \ No newline at end of file diff --git a/views.py b/views.py index b5d68ff..1fd9137 100644 --- a/views.py +++ b/views.py @@ -5,7 +5,7 @@ from django.shortcuts import render_to_response from django.core.files.uploadedfile import SimpleUploadedFile from models import Sandwich, Ingredient from django.contrib.auth import authenticate, login, logout -from django.contrib.auth.forms import AuthenticationForm +from django.contrib.auth.forms import AuthenticationForm, UserCreationForm from django.contrib.comments.models import Comment from django.template import RequestContext from django.core import serializers @@ -165,28 +165,23 @@ def login_view(request): def create_user(request): if request.user.is_authenticated(): return render_to_response('loggedin.html', context_instance=RequestContext(request)) - elif request.method == 'POST': # If the form has been submitted... - form = NewUserForm(request.POST) # A form bound to the POST data - if form.is_valid(): # All validation rules pass - username = form.cleaned_data['username'] - first_name = form.cleaned_data['first_name'] - last_name = form.cleaned_data['last_name'] - password = form.cleaned_data['password'] - cpassword = form.cleaned_data['confirm_password'] - email = form.cleaned_data['email'] - if password == cpassword: - user = User.objects.create_user(username, email, password) - user.save() - user.first_name = first_name - user.last_name = last_name - user.save() - return HttpResponseRedirect('index') - else: - return HttpResponseRedirect('signup') - else: - form = NewUserForm() # An unbound form - return render_to_response('newuser.html', {'cform': form,}, context_instance=RequestContext(request)) + + redirect_to = reverse('index') +# if 'next' in request.GET: +# redirect_to = request.GET['next'] + if request.method == 'POST': + aform = UserCreationForm(data=request.POST) + if aform.is_valid(): + aform.save() + x = authenticate(username=aform.cleaned_data['username'], password=aform.cleaned_data['password1']) + login(request, x) + return render_to_response('usercreated.html', context_instance=RequestContext(request)) + else: + aform = UserCreationForm() + + return render_to_response('newuser.html', {'aform': aform,}, context_instance=RequestContext(request)) + def edit_user(request, gusername): guser = User.objects.get(username = gusername) @@ -195,26 +190,26 @@ def edit_user(request, gusername): elif request.user == guser: if request.method == 'POST': # If the form has been submitted... form = NewUserForm(request.POST) # A form bound to the POST data - username = request.POST['username'] - first_name = request.POST['first_name'] - last_name = request.POST['last_name'] - password = request.POST['password'] - cpassword = request.POST['confirm_password'] - email = request.POST['email'] - guser.username = username - guser.first_name = first_name - guser.last_name = last_name - if not password.strip() == '': - if password == cpassword: + if form.is_valid(): + username = request.POST['username'] + first_name = request.POST['first_name'] + last_name = request.POST['last_name'] + password = request.POST['password'] + cpassword = request.POST['confirmpassword'] + email = request.POST['email'] + guser.username = username + guser.first_name = first_name + guser.last_name = last_name + if password != '': guser.set_password(password) - guser.email = email - guser.save() - return HttpResponseRedirect(reverse('edit_user', kwargs={'gusername':guser.username})) + guser.email = email + guser.save() + return render_to_response('userchanged.html', context_instance=RequestContext(request)) else: form = NewUserForm(initial={'username': guser.username, 'first_name': guser.first_name, 'last_name': guser.last_name, 'email': guser.email, }) # An unbound form return render_to_response('edituser.html', {'cform': form,}, context_instance=RequestContext(request)) else: - return HttpResponseRedirect(reverse('index')) + return render_to_response('nopermission.html', context_instance=RequestContext(request)) def comment_posted(request):