# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
-from django.http import Http404
from django.http.response import HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from django.urls import reverse
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
-from newsletter.forms import UnsubscribeForm, SubscribeForm
-from newsletter.models import Subscription
+from newsletter.forms import SubscribeForm, Newsletter
-def subscribe_form(request):
+def subscribe_form(request, slug=''):
+ newsletter = get_object_or_404(Newsletter, slug=slug)
if request.POST:
- form = SubscribeForm(request.POST)
+ form = SubscribeForm(newsletter, request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('subscribed'))
else:
- form = SubscribeForm()
+ form = SubscribeForm(newsletter)
return render(request, 'newsletter/subscribe_form.html', {
- 'page_title': _('Subscribe To Newsletter'),
+ 'page_title': newsletter.page_title,
'form': form,
})
'page_title': _('Subscribed'),
})
-
-def check_subscription(subscription, hashcode):
- if hashcode != subscription.hashcode():
- raise Http404
-
-
-def confirm_subscription(request, subscription_id, hashcode):
- subscription = get_object_or_404(Subscription, id=subscription_id)
- check_subscription(subscription, hashcode)
- subscription.active = True
- subscription.save()
- return render(request, 'newsletter/confirm_subscription.html', {
- 'page_title': _('Subscription confirmed')
- })
-
-
-def unsubscribe_form(request):
- if request.POST:
- form = UnsubscribeForm(request.POST)
- if form.is_valid():
- form.save()
- return HttpResponseRedirect(reverse('unsubscribed'))
- else:
- form = UnsubscribeForm()
- return render(request, 'newsletter/unsubscribe_form.html', {
- 'page_title': _('Unsubscribe'),
- 'form': form,
- })
-
-
-def unsubscribed(request):
- return render(request, 'newsletter/unsubscribed.html', {
- 'page_title': _('Unsubscribed'),
- })