diff --git a/ivatar/ivataraccount/forms.py b/ivatar/ivataraccount/forms.py index 91bb8fe..9b20188 100644 --- a/ivatar/ivataraccount/forms.py +++ b/ivatar/ivataraccount/forms.py @@ -49,17 +49,20 @@ class AddEmailForm(forms.Form): MAX_NUM_UNCONFIRMED_EMAILS_DEFAULT) if num_unconfirmed >= max_num_unconfirmed_emails: + self.add_error(None, _('Too many unconfirmed mail addresses!')) return False # Check whether or not a confirmation email has been # sent by this user already if UnconfirmedEmail.objects.filter( user=user, email=self.cleaned_data['email']).exists(): + self.add_error('email', _('Address already added, currently unconfirmed')) return False # Check whether or not the email is already confirmed by someone if ConfirmedEmail.objects.filter( email=self.cleaned_data['email']).exists(): + self.add_error('email', _('Address already confirmed (by someone else)')) return False unconfirmed = UnconfirmedEmail() diff --git a/ivatar/ivataraccount/templates/add_email.html b/ivatar/ivataraccount/templates/add_email.html index 6e91d1c..be12a70 100644 --- a/ivatar/ivataraccount/templates/add_email.html +++ b/ivatar/ivataraccount/templates/add_email.html @@ -5,6 +5,14 @@ {% block content %} +{% if form.errors %} + {% for error in form.non_field_errors %} +
{% blocktrans %}Otherwise, type your email address in the box below and we will send you an email with a link to click on in order to verify that you own that email address.{% endblocktrans %}
diff --git a/ivatar/ivataraccount/views.py b/ivatar/ivataraccount/views.py index 414a644..87c0213 100644 --- a/ivatar/ivataraccount/views.py +++ b/ivatar/ivataraccount/views.py @@ -13,6 +13,7 @@ from django.contrib.auth.forms import UserCreationForm, SetPasswordForm from django.utils.translation import ugettext_lazy as _ from django.http import HttpResponseRedirect, HttpResponse from django.urls import reverse_lazy, reverse +from django.shortcuts import render from openid import oidutil from openid.consumer import consumer @@ -92,7 +93,7 @@ class AddEmailView(SuccessMessageMixin, FormView): def form_valid(self, form): if not form.save(self.request): - messages.error(self.request, _('Address not added')) + return render(self.request, self.template_name, { 'form': form }) else: messages.success(self.request, _('Address added successfully')) return super().form_valid(form) @@ -369,7 +370,7 @@ class AddOpenIDView(SuccessMessageMixin, FormView): def form_valid(self, form): openid_id = form.save(self.request.user) if not openid_id: - messages.error(self.request, _('ID not added')) + return render(self.request, self.template_name, { 'form': form }) else: messages.success(self.request, _('ID added successfully')) return HttpResponseRedirect(