From 99346f3ccf8662f977371ed2daf6d67ff59bf5ec Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Thu, 10 Mar 2022 11:48:58 +0100 Subject: [PATCH] Separate payment details and do payments view --- aleksis/apps/tezor/models/invoice.py | 4 ++-- aleksis/apps/tezor/urls.py | 2 +- aleksis/apps/tezor/views.py | 8 ++++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/aleksis/apps/tezor/models/invoice.py b/aleksis/apps/tezor/models/invoice.py index 6bd88a6..d73515b 100644 --- a/aleksis/apps/tezor/models/invoice.py +++ b/aleksis/apps/tezor/models/invoice.py @@ -80,7 +80,7 @@ class Invoice(BasePayment, PureDjangoModel): return TotalsTable(values) def get_success_url(self): - return reverse("payment_details", kwargs={"token": self.token}) + return reverse("invoice_by_pk", kwargs={"pk": self.pk}) def get_failure_url(self): - return reverse("payment_details", kwargs={"token": self.token}) + return reverse("invoice_by_pk", kwargs={"pk": self.pk}) diff --git a/aleksis/apps/tezor/urls.py b/aleksis/apps/tezor/urls.py index 1bc5fd9..bea20f3 100644 --- a/aleksis/apps/tezor/urls.py +++ b/aleksis/apps/tezor/urls.py @@ -5,7 +5,7 @@ from . import views urlpatterns = [ path("payments/", include("payments.urls")), path("invoice/<int:pk>/print", views.GetInvoicePDF.as_view(), name="get_invoice_by_pk"), - path("invoice/<str:token>/payment", views.payment_details, name="payment_details"), + path("invoice/<str:token>/payment", views.do_payment, name="do_payment"), path( "clients/list", views.ClientListView.as_view(), diff --git a/aleksis/apps/tezor/views.py b/aleksis/apps/tezor/views.py index e51b674..ee4df3c 100644 --- a/aleksis/apps/tezor/views.py +++ b/aleksis/apps/tezor/views.py @@ -6,7 +6,7 @@ from django.urls import reverse, reverse_lazy from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _ -from payments import get_payment_model, RedirectNeeded +from payments import get_payment_model, PaymentStatus, RedirectNeeded from rules.contrib.views import PermissionRequiredMixin from django_tables2.views import SingleTableView, RequestConfig @@ -32,9 +32,13 @@ class GetInvoicePDF(PermissionRequiredMixin, RenderPDFView): print(invoice.group.__dict__) return context -def payment_details(request, token): + +def do_payment(request, token): payment = get_object_or_404(get_payment_model(), token=token) + if payment.status not in [PaymentStatus.WAITING, PaymentStatus.INPUT, PaymentStatus.REJECTED]: + return redirect(payment.get_success_url()) + try: form = payment.get_form(data=request.POST or None) except RedirectNeeded as redirect_to: -- GitLab