book search
[wolnelektury.git] / src / club / views.py
index 85faa85..b2657e6 100644 (file)
@@ -1,10 +1,10 @@
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 #
 from django.conf import settings
 from django.contrib.auth.decorators import login_required, permission_required
 from django.db.models import Sum
-from django.http import HttpResponseRedirect
+from django.http import HttpResponse, HttpResponseRedirect
 from django.shortcuts import get_object_or_404, render
 from django.urls import reverse
 from django.utils.decorators import method_decorator
@@ -34,7 +34,7 @@ class DonationStep1(UpdateView):
     queryset = models.Schedule.objects.filter(payed_at=None)
     form_class = forms.DonationStep1Form
     slug_field = slug_url_kwarg = 'key'
-    template_name = 'club/2022/donation_step1.html'
+    template_name = 'club/donation_step1.html'
     step = 1
 
     def get_context_data(self, **kwargs):
@@ -50,7 +50,7 @@ class DonationStep2(UpdateView):
     queryset = models.Schedule.objects.filter(payed_at=None)
     form_class = forms.DonationStep2Form
     slug_field = slug_url_kwarg = 'key'
-    template_name = 'club/2022/donation_step2.html'
+    template_name = 'club/donation_step2.html'
     step = 2
 
     def get_context_data(self, **kwargs):
@@ -61,7 +61,7 @@ class DonationStep2(UpdateView):
 
 class JoinView(CreateView):
     form_class = forms.DonationStep1Form
-    template_name = 'club/2022/donation_step1.html'
+    template_name = 'club/donation_step1.html'
 
     @property
     def club(self):
@@ -99,7 +99,7 @@ class JoinView(CreateView):
 
     def get_form_kwargs(self):
         kwargs = super().get_form_kwargs()
-        #kwargs['referer'] = self.request.META.get('HTTP_REFERER', '')
+        kwargs['referer'] = self.request.META.get('HTTP_REFERER', '')
         return kwargs
 
     def form_valid(self, form):
@@ -122,7 +122,7 @@ class ScheduleView(DetailView):
     
     def get_template_names(self):
         if not self.object.payed_at:
-            return 'club/2022/donation_step3.html'
+            return 'club/donation_step3.html'
         return 'club/schedule.html'
         
     def get_context_data(self, *args, **kwargs):
@@ -185,7 +185,7 @@ class PayUNotifyView(payu_views.NotifyView):
 
 class ScheduleThanksView(DetailView):
     model = models.Schedule
-    template_name = 'club/2022/donation_step4.html'
+    template_name = 'club/donation_step4.html'
     slug_field = slug_url_kwarg = 'key'
     step = 4
 
@@ -249,3 +249,26 @@ def member_verify(request):
             'result': rows
         }
     )
+
+
+@permission_required('club.schedule_view')
+def receipt(request):
+    email = request.POST.get('email')
+    try:
+        year = int(request.POST.get('year'))
+    except:
+        return HttpResponse('no content')
+
+    receipt = models.PayUOrder.generate_receipt(email, year)
+    if receipt:
+        content, optout, payments = receipt
+    else:
+        return HttpResponse('no content')
+    return HttpResponse(
+        content,
+        headers={
+            "Content-Type": "application/pdf",
+            "Content-Disposition": f'attachment; filename="wolnelektury-{year}-{email}.pdf"',
+        }
+    )
+