Login form.
[wolnelektury.git] / src / newsletter / views.py
index 4c57a25..11256ca 100644 (file)
@@ -1,66 +1,43 @@
 # 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)
+    new_layout = request.EXPERIMENTS['layout'].value
     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()
-    return render(request, 'newsletter/subscribe_form.html', {
-        'page_title': _('Subscribe To Newsletter'),
+        form = SubscribeForm(newsletter)
+
+    if new_layout:
+        template_name = 'newsletter/2022/subscribe_form.html'
+        form.template_name = '2022/form.html'
+    else:
+        template_name = 'newsletter/subscribe_form.html'
+    return render(request, template_name, {
+        'page_title': newsletter.page_title,
         'form': form,
     })
 
 
 def subscribed(request):
-    return render(request, 'newsletter/subscribed.html', {
-        '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'))
+    new_layout = request.EXPERIMENTS['layout'].value
+    if new_layout:
+        template_name = 'newsletter/2022/subscribed.html'
     else:
-        form = UnsubscribeForm()
-    return render(request, 'newsletter/unsubscribe_form.html', {
-        'page_title': _('Unsubscribe'),
-        'form': form,
+        template_name = 'newsletter/subscribed.html'
+    return render(request, template_name, {
+        'page_title': _('Subscribed'),
     })
 
-
-def unsubscribed(request):
-    return render(request, 'newsletter/unsubscribed.html', {
-        'page_title': _('Unsubscribed'),
-    })