X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/18aa8ca52202003e5628a882f3469a04d905cc05..55d94d75dff5d3a30dd0cce7554e68d23627376d:/src/club/views.py diff --git a/src/club/views.py b/src/club/views.py index 1ab1eae06..a55f28481 100644 --- a/src/club/views.py +++ b/src/club/views.py @@ -4,7 +4,7 @@ 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, JsonResponse from django.shortcuts import get_object_or_404, render from django.urls import reverse from django.utils.decorators import method_decorator @@ -59,6 +59,17 @@ class DonationStep2(UpdateView): return c +def set_monthly(request, key): + schedule = get_object_or_404(models.Schedule, payed_at=None, key=key) + if request.POST: + schedule.monthly = True + schedule.save(update_fields=['monthly']) + return JsonResponse({ + "amount": schedule.amount, + "monthly": schedule.monthly, + }) + + class JoinView(CreateView): form_class = forms.DonationStep1Form template_name = 'club/donation_step1.html' @@ -99,7 +110,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): @@ -249,3 +260,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"', + } + ) +