X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/3d1fb545dd1f49e0624d3adf20e5568b1c33d8ec..26f3ed051ee8f2c5caa7a3119bcf30e5310d5266:/apps/suggest/forms.py diff --git a/apps/suggest/forms.py b/apps/suggest/forms.py index 14cec03f9..b98e0ae4a 100644 --- a/apps/suggest/forms.py +++ b/apps/suggest/forms.py @@ -3,20 +3,61 @@ # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # from django import forms +from django.contrib.sites.models import Site +from django.core.exceptions import ValidationError from django.core.mail import send_mail, mail_managers from django.core.urlresolvers import reverse -from django.core.validators import email_re +from django.core.validators import validate_email from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext - - -from suggest.models import PublishingSuggestion +from suggest.models import PublishingSuggestion, Suggestion class SuggestForm(forms.Form): contact = forms.CharField(label=_('Contact'), max_length=120, required=False) description = forms.CharField(label=_('Description'), widget=forms.Textarea, required=True) + def save(self, request): + contact = self.cleaned_data['contact'] + description = self.cleaned_data['description'] + + suggestion = Suggestion(contact=contact, + description=description, ip=request.META['REMOTE_ADDR']) + if request.user.is_authenticated(): + suggestion.user = request.user + suggestion.save() + + mail_managers(u'Nowa sugestia na stronie WolneLektury.pl', u'''\ +Zgłoszono nową sugestię w serwisie WolneLektury.pl. +http://%(site)s%(url)s + +Użytkownik: %(user)s +Kontakt: %(contact)s + +%(description)s''' % { + 'site': Site.objects.get_current().domain, + 'url': reverse('admin:suggest_suggestion_change', args=[suggestion.id]), + 'user': str(request.user) if request.user.is_authenticated() else '', + 'contact': contact, + 'description': description, + }, fail_silently=True) + + try: + validate_email(contact) + except ValidationError: + pass + else: + send_mail(u'[WolneLektury] ' + + ugettext(u'Thank you for your suggestion.'), + ugettext(u"""\ +Thank you for your comment on WolneLektury.pl. +The suggestion has been referred to the project coordinator.""") + +u""" + +-- +""" + ugettext(u'''Message sent automatically. Please do not reply.'''), + 'no-reply@wolnelektury.pl', [contact], fail_silently=True) + class PublishingSuggestForm(forms.Form): contact = forms.CharField(label=_('Contact'), max_length=120, required=False) @@ -25,7 +66,7 @@ class PublishingSuggestForm(forms.Form): def clean(self, *args, **kwargs): if not self.cleaned_data['books'] and not self.cleaned_data['audiobooks']: - msg = _(u"One of these fields is required.") + msg = ugettext(u"One of these fields is required.") self._errors["books"] = self.error_class([msg]) self._errors["audiobooks"] = self.error_class([msg]) return super(PublishingSuggestForm, self).clean(*args, **kwargs) @@ -60,7 +101,11 @@ Audiobooki: 'audiobooks': audiobooks, }, fail_silently=True) - if email_re.match(contact): + try: + validate_email(contact) + except ValidationError: + pass + else: send_mail(u'[WolneLektury] ' + ugettext(u'Thank you for your suggestion.'), ugettext(u"""\