From 7e935164fc607ddd8cf4327a22215e45f658705a Mon Sep 17 00:00:00 2001 From: James Tauber Date: Sat, 26 Apr 2008 05:23:49 +0000 Subject: [PATCH] add email new checks for duplicates git-svn-id: http://django-email-confirmation.googlecode.com/svn/trunk@19 e143efbd-a74b-0410-b764-bd10452ab0ba --- devproject/devtest/forms.py | 15 +++++++++++++-- devproject/devtest/views.py | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/devproject/devtest/forms.py b/devproject/devtest/forms.py index ce71201..8c36e51 100644 --- a/devproject/devtest/forms.py +++ b/devproject/devtest/forms.py @@ -41,8 +41,19 @@ def save(self): class AddEmailForm(forms.Form): + def __init__(self, data=None, user=None): + super(AddEmailForm, self).__init__(data=data) + self.user = user + email = forms.EmailField(label="Email", required=True, widget=forms.TextInput()) - def save(self, user): - return EmailAddress.objects.add_email(user, self.cleaned_data["email"]) + def clean_email(self): + try: + EmailAddress.objects.get(user=self.user, email=self.cleaned_data["email"]) + except EmailAddress.DoesNotExist: + return self.cleaned_data["email"] + raise forms.ValidationError(u"This email address already associated with this account.") + + def save(self): + return EmailAddress.objects.add_email(self.user, self.cleaned_data["email"]) \ No newline at end of file diff --git a/devproject/devtest/views.py b/devproject/devtest/views.py index 81957f1..e002f7b 100644 --- a/devproject/devtest/views.py +++ b/devproject/devtest/views.py @@ -20,9 +20,9 @@ def signup(request): def homepage(request): if request.method == "POST" and request.user.is_authenticated(): - add_email_form = AddEmailForm(request.POST) + add_email_form = AddEmailForm(request.POST, request.user) if add_email_form.is_valid(): - add_email_form.save(request.user) + add_email_form.save() else: add_email_form = AddEmailForm()