X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/b7bb8ec0115e9c9928a0e3177db027b0586d14d6..e8b51a396d27271aa8b8d06724a21dbe2f0ac895:/philo/contrib/waldo/models.py diff --git a/philo/contrib/waldo/models.py b/philo/contrib/waldo/models.py index 93b5add..cdadead 100644 --- a/philo/contrib/waldo/models.py +++ b/philo/contrib/waldo/models.py @@ -107,7 +107,7 @@ class LoginMultiView(MultiView): return HttpResponseRedirect(redirect) else: - form = self.login_form() + form = self.login_form(request) request.session.set_test_cookie() @@ -444,15 +444,8 @@ class AccountMultiView(RegistrationMultiView): if form.is_valid(): message = "Account information saved." redirect = self.get_requirement_redirect(request, default='') - if 'email' in form.changed_data and self.email_change_confirmation_email: - # ModelForms modify their instances in-place during - # validation, so reset the instance's email to its - # previous value here, then remove the new value - # from cleaned_data. We only do this if an email - # change confirmation email is available. - request.user.email = form.initial['email'] - - email = form.cleaned_data.pop('email') + if form.email_changed() and self.email_change_confirmation_email: + email = form.reset_email() current_site = Site.objects.get_current() @@ -464,7 +457,7 @@ class AccountMultiView(RegistrationMultiView): } self.send_confirmation_email('Confirm account email change at %s' % current_site.domain, email, self.email_change_confirmation_email, context) - message = "An email has be sent to %s to confirm the email%s." % (email, bool(request.user.email) and " change" or "") + message = "An email has be sent to %s to confirm the email%s." % (email, " change" if bool(request.user.email) else "") if not request.user.email: message += " You will need to confirm the email before accessing pages that require a valid account." redirect = '' @@ -501,7 +494,7 @@ class AccountMultiView(RegistrationMultiView): self.set_requirement_redirect(request, redirect=request.path) redirect = self.reverse('account', node=request.node) else: - redirect = node.get_absolute_url() + redirect = request.node.get_absolute_url() return HttpResponseRedirect(redirect) return view(request, *args, **kwargs) @@ -538,8 +531,7 @@ class AccountMultiView(RegistrationMultiView): raise Http404 if token_generator.check_token(user, email, token): - user.email = email - user.save() + self.account_form.set_email(user, email) messages.add_message(request, messages.SUCCESS, 'Email changed successfully.') if self.manage_account_page: redirect = self.reverse('account', node=request.node)