-# -*- 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.
#
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
%(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)
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')
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
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,
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)