X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/9e05900b7692f2d2a484edb33df69e8519e52131..65d6c08f9187d565fe4b9bfa95ca32f7509429b1:/src/newsletter/forms.py diff --git a/src/newsletter/forms.py b/src/newsletter/forms.py index f8927e5b8..d9f931b3d 100644 --- a/src/newsletter/forms.py +++ b/src/newsletter/forms.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- - +from django.core.exceptions import ValidationError +from django.core.validators import validate_email from django.forms import Form, BooleanField from django.utils.translation import ugettext_lazy as _ @@ -8,7 +9,8 @@ from newsletter.models import Subscription class NewsletterForm(Form): email_field = 'email' - agree_newsletter = BooleanField(required=False, label=_(u'I want to receive Wolne Lektury\'s newsletter.')) + agree_newsletter = BooleanField( + required=False, initial=True, label=_(u'I want to receive Wolne Lektury\'s newsletter.')) def save(self): try: @@ -16,9 +18,16 @@ class NewsletterForm(Form): super(NewsletterForm, self).save() except AttributeError: pass + if not self.cleaned_data.get('agree_newsletter'): + return email = self.cleaned_data[self.email_field] - subscription, created = Subscription.objects.get_or_create(email=email) - if not created and not subscription.active: - subscription.active = True - subscription.save() - # Send some test email? + try: + validate_email(email) + except ValidationError: + pass + else: + subscription, created = Subscription.objects.get_or_create(email=email) + if not created and not subscription.active: + subscription.active = True + subscription.save() + # Send some test email?