X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/f3c334d8fbb682677d059308501ea57a4c7581ee..98062d2158ebe1f734d811691ab15e6887684281:/src/suggest/forms.py?ds=inline diff --git a/src/suggest/forms.py b/src/suggest/forms.py index 4e9cf2f2a..6a36fb625 100644 --- a/src/suggest/forms.py +++ b/src/suggest/forms.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # @@ -6,27 +5,36 @@ 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 validate_email -from django.utils.translation import ugettext_lazy as _ -from django.utils.translation import ugettext +from django.urls import reverse +from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext + +from newsletter.forms import NewsletterForm from suggest.models import PublishingSuggestion, Suggestion +from wolnelektury.utils import send_noreply_mail -class SuggestForm(forms.Form): +class SuggestForm(NewsletterForm): + email_field = 'contact' contact = forms.CharField(label=_('Contact'), max_length=120, required=False) description = forms.CharField(label=_('Description'), widget=forms.Textarea, required=True) + data_processing_part2 = '''\ +Dane są przetwarzane w zakresie niezbędnym do obsługi zgłoszenia. W przypadku wyrażenia dodatkowej zgody \ +adres e-mail zostanie wykorzystany także w celu przesyłania newslettera Wolnych Lektur.''' + def save(self, request): + super(SuggestForm, self).save() 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(): + if request.user.is_authenticated: suggestion.user = request.user suggestion.save() - mail_managers(u'Nowa sugestia na stronie WolneLektury.pl', u'''\ + mail_managers('Nowa sugestia na stronie WolneLektury.pl', '''\ Zgłoszono nową sugestię w serwisie WolneLektury.pl. http://%(site)s%(url)s @@ -36,7 +44,7 @@ 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 '', + 'user': str(request.user) if request.user.is_authenticated else '', 'contact': contact, 'description': description, }, fail_silently=True) @@ -46,28 +54,32 @@ Kontakt: %(contact)s except ValidationError: pass else: - send_mail(u'[WolneLektury] ' + ugettext(u'Thank you for your suggestion.'), - ugettext(u"""\ + send_noreply_mail( + gettext('Thank you for your suggestion.'), + gettext("""\ Thank you for your comment on WolneLektury.pl. -The suggestion has been referred to the project coordinator.""") + - u'\n\n-- \n' + ugettext(u'''Message sent automatically. Please do not reply.'''), - 'no-reply@wolnelektury.pl', [contact], fail_silently=True) +The suggestion has been referred to the project coordinator."""), + [contact], fail_silently=True) -class PublishingSuggestForm(forms.Form): +class PublishingSuggestForm(NewsletterForm): + email_field = 'contact' contact = forms.CharField(label=_('Contact'), max_length=120, required=False) books = forms.CharField(label=_('books'), widget=forms.Textarea, required=True) - ebook = forms.BooleanField(label=_('ebook'), required=False, initial=True) - audiobook = forms.BooleanField(label=_('audiobook'), required=False) + ebook = forms.BooleanField(label=_('ebook'), required=False, initial=True, label_suffix='') + audiobook = forms.BooleanField(label=_('audiobook'), required=False, label_suffix='') + + data_processing_part2 = SuggestForm.data_processing_part2 def clean(self): if not self.cleaned_data['ebook'] and not self.cleaned_data['audiobook']: - msg = ugettext(u"One of these options is required.") + msg = gettext("One of these options is required.") self._errors['ebook'] = self.error_class([msg]) self._errors['audiobook'] = self.error_class([msg]) return super(PublishingSuggestForm, self).clean() def save(self, request): + super(PublishingSuggestForm, self).save() contact = self.cleaned_data['contact'] suggestion_text = self.cleaned_data['books'].strip(', \n\r') @@ -77,12 +89,12 @@ class PublishingSuggestForm(forms.Form): suggestion = PublishingSuggestion( contact=contact, books=books, audiobooks=audiobooks, ip=request.META['REMOTE_ADDR']) - if request.user.is_authenticated(): + if request.user.is_authenticated: suggestion.user = request.user suggestion.save() if not suggestion.is_spam(): - mail_managers(u'Konsultacja planu wydawniczego na WolneLektury.pl', u'''\ + mail_managers('Konsultacja planu wydawniczego na WolneLektury.pl', '''\ Zgłoszono nową sugestię nt. planu wydawniczego w serwisie WolneLektury.pl. %(url)s @@ -94,8 +106,8 @@ class PublishingSuggestForm(forms.Form): Audiobooki: %(audiobooks)s''' % { - 'url': request.build_absolute_uri(reverse('admin:suggest_suggestion_change', args=[suggestion.id])), - 'user': str(request.user) if request.user.is_authenticated() else '', + 'url': request.build_absolute_uri(reverse('admin:suggest_publishingsuggestion_change', args=[suggestion.id])), + 'user': str(request.user) if request.user.is_authenticated else '', 'contact': contact, 'books': books, 'audiobooks': audiobooks, @@ -106,10 +118,9 @@ class PublishingSuggestForm(forms.Form): 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"\n\n-- \n" + ugettext(u'''Message sent automatically. Please do not reply.'''), - 'no-reply@wolnelektury.pl', [contact], fail_silently=True) + send_noreply_mail( + gettext('Thank you for your suggestion.'), + gettext("""\ +Thank you for your comment on WolneLektury.pl. +The suggestion has been referred to the project coordinator."""), + [contact], fail_silently=True)