From 70270f27670c3d504f9b088d5ca33719ba026f66 Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Fri, 11 Mar 2022 23:52:24 +0100 Subject: [PATCH] Rewrite do_payment as class-based view --- aleksis/apps/tezor/views.py | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/aleksis/apps/tezor/views.py b/aleksis/apps/tezor/views.py index 9517888..06a4df8 100644 --- a/aleksis/apps/tezor/views.py +++ b/aleksis/apps/tezor/views.py @@ -21,7 +21,7 @@ from .models.invoice import Invoice, InvoiceGroup class GetInvoicePDF(PermissionRequiredMixin, RenderPDFView): - permission_required = "tezor.can_print_invoice" + permission_required = "tezor.print_invoice_rule" def get_context_data(self, *args, **kwargs): context = super().get_context_data(*args, **kwargs) @@ -33,23 +33,29 @@ class GetInvoicePDF(PermissionRequiredMixin, RenderPDFView): return context -def do_payment(request, token): - payment = get_object_or_404(get_payment_model(), token=token) +class DoPaymentView(PermissionRequiredMixin, View): - if payment.status not in [PaymentStatus.WAITING, PaymentStatus.INPUT, PaymentStatus.REJECTED]: - return redirect(payment.get_success_url()) + model = Invoice + permission_required = "tezor.do_payment_rule" + template_name = "tezor/invoice/payment.html" + + def dispatch(self, request, token): + self.object = get_object_or_404(self.model, token=token) + + if self.object.status not in [PaymentStatus.WAITING, PaymentStatus.INPUT, PaymentStatus.REJECTED]: + return redirect(self.object.get_success_url()) - try: - form = payment.get_form(data=request.POST or None) - except RedirectNeeded as redirect_to: - return redirect(str(redirect_to)) + try: + form = self.object.get_form(data=request.POST or None) + except RedirectNeeded as redirect_to: + return redirect(str(redirect_to)) - context = { - "form": form, - "payment": payment, - } + context = { + "form": form, + "payment": self.object, + } - return render(request, "tezor/invoice/payment.html", context) + return render(request, self.template_name, context) class ClientListView(PermissionRequiredMixin, SingleTableView): -- GitLab