diff options
Diffstat (limited to 'app/lttr/views.py')
-rw-r--r-- | app/lttr/views.py | 59 |
1 files changed, 38 insertions, 21 deletions
diff --git a/app/lttr/views.py b/app/lttr/views.py index bf3df4c..2573334 100644 --- a/app/lttr/views.py +++ b/app/lttr/views.py @@ -37,24 +37,52 @@ class NewsletterSubscribedView(TemplateView): template_name = "lttr/subscribed.html" -class NewsletterListView(CreateView): +class NewsletterListView(ListView): """ - Return a subscribe form and list of Newsletter posts in reverse chronological order + Return a list of Newsletter posts in reverse chronological order + """ + model = NewsletterMailing + + def get_template_names(self): + return ["lttr/%s_list.html" % self.kwargs['slug'], 'newsletter_list.html'] + + def get_queryset(self): + queryset = super(NewsletterListView, self).get_queryset() + return queryset.filter(newsletter__slug=self.kwargs['slug']) + +class NewsletterOptionsView(ListView): + model = Newsletter + + +class ConfirmSubscriptionView(DetailView): + model = Subscriber + template_name = "lttr/confirm_activate.html" + + def get_object(self): + obj = Subscriber.objects.get(newsletter__slug=self.kwargs['slug'], activation_code=self.kwargs['activation_code']) + if obj.subscribed is False: + obj.update('subscribe') + return obj + + +class NewsletterSubscribeView(CreateView): + """ + Return a subscribe form for iframe embedding """ model = Subscriber form_class = SubscribeRequestForm action = 'subscribe' + + + def get_template_names(self): + return "lttr/%s_subscribe.html" % self.kwargs['slug'] def get_form_kwargs(self): - kwargs = super(NewsletterListView, self).get_form_kwargs() - kwargs['newsletter'] = Newsletter.objects.get(title="Friends of a Long Year") + kwargs = super(NewsletterSubscribeView, self).get_form_kwargs() + nl = Newsletter.objects.get(slug=self.kwargs['slug']) + kwargs['newsletter'] = nl return kwargs - def get_context_data(self, **kwargs): - context = super(NewsletterListView, self).get_context_data(**kwargs) - context['mailings'] = NewsletterMailing.objects.filter(status=1) - return context - def get_success_url(self): return reverse_lazy('lttr:subscribed') @@ -76,18 +104,6 @@ class NewsletterListView(CreateView): return super(NewsletterListView, self).form_invalid(form) return super(NewsletterListView, self).form_valid(form) - -class ConfirmSubscriptionView(DetailView): - model = Subscriber - template_name = "lttr/confirm_activate.html" - - def get_object(self): - obj = Subscriber.objects.get(newsletter__slug=self.kwargs['slug'], activation_code=self.kwargs['activation_code']) - if obj.subscribed is False: - obj.update('subscribe') - return obj - - class UnsubscribeRequestView(DetailView): model = Subscriber template_name = "lttr/unsubscribe.html" @@ -104,3 +120,4 @@ class UnsubscribeRequestView(DetailView): context['subscriber'] = self.get_object() context['newsletter'] = self.kwargs['slug'] return context + |