X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/9e05900b7692f2d2a484edb33df69e8519e52131..4ddb93217b0476206908c0f2b4a66989631bdef3:/src/newsletter/views.py?ds=sidebyside diff --git a/src/newsletter/views.py b/src/newsletter/views.py index 847530e16..78d64717e 100644 --- a/src/newsletter/views.py +++ b/src/newsletter/views.py @@ -1,9 +1,64 @@ # -*- coding: utf-8 -*- -from django.shortcuts import render +from django.core.urlresolvers import reverse +from django.http import Http404 +from django.http.response import HttpResponseRedirect +from django.shortcuts import render, get_object_or_404 from django.utils.translation import ugettext_lazy as _ +from newsletter.forms import UnsubscribeForm, SubscribeForm +from newsletter.models import Subscription -def unsubscribe(request): - return render(request, 'newsletter/unsubscribe.html', { + +def subscribe_form(request): + if request.POST: + form = SubscribeForm(request.POST) + if form.is_valid(): + form.save() + return HttpResponseRedirect(reverse('subscribed')) + else: + form = SubscribeForm() + return render(request, 'newsletter/subscribe_form.html', { + 'page_title': _(u'Subscribe To Newsletter'), + 'form': form, + }) + + +def subscribed(request): + return render(request, 'newsletter/subscribed.html', { + 'page_title': _(u'Confirmation link sent'), + }) + + +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': _(u'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': _(u'Unsubscribe'), - }) \ No newline at end of file + 'form': form, + }) + + +def unsubscribed(request): + return render(request, 'newsletter/unsubscribed.html', { + 'page_title': _(u'Unsubscribed'), + })