diff --git a/aleksis/apps/tezor/templates/tezor/empty.html b/aleksis/apps/tezor/templates/tezor/empty.html deleted file mode 100644 index 2fb4415f4772cd40a8eb40e290d50f912c4f219f..0000000000000000000000000000000000000000 --- a/aleksis/apps/tezor/templates/tezor/empty.html +++ /dev/null @@ -1,8 +0,0 @@ -{% extends 'core/base.html' %} -{% load i18n %} - -{% block content %} - <p class="flow-text"> - {% blocktrans %}Tezor (account and payment system){% endblocktrans %} - </p> -{% endblock %} diff --git a/aleksis/apps/tezor/templates/tezor/invoice/payment.html b/aleksis/apps/tezor/templates/tezor/invoice/payment.html new file mode 100644 index 0000000000000000000000000000000000000000..7d51c9012f759d9865852a26064745beb640d0a2 --- /dev/null +++ b/aleksis/apps/tezor/templates/tezor/invoice/payment.html @@ -0,0 +1,16 @@ +{% extends 'core/base.html' %} + +{% load i18n %} +{% load material_form %} + +{% block page_title %}{% blocktrans %}Make payment for{% endblocktrans %} {{ payment.transaction_id }}{% endblock %} +{% block browser_title %}{% blocktrans %}Make payment for{% endblocktrans %} {{ payment.transaction_id }}{% endblock %} + +{% block content %} +<form action="{{ form.action }}" method="{{ form.method }}"> + {% csrf_token %} + {% form form=form %}{% endform %} + {% trans "Confirm payment" as caption %} + {% include "core/partials/save_button.html" with caption=caption icon="shopping_cart_checkout" %} +</form> +{% endblock %} diff --git a/aleksis/apps/tezor/urls.py b/aleksis/apps/tezor/urls.py index 571809cf71d6d08182a261b2aa26cde2155b6844..18d1a1ce8062b099aa944e9db5628328a7fff46b 100644 --- a/aleksis/apps/tezor/urls.py +++ b/aleksis/apps/tezor/urls.py @@ -4,5 +4,6 @@ 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/<int:pk>/print", views.GetInvoicePDF.as_view(), name="get_invoice_by_pk"), + path("invoice/<str:token>/payment", views.payment_details, name="payment_details"), ] diff --git a/aleksis/apps/tezor/views.py b/aleksis/apps/tezor/views.py index 22fe10830ab05dd5688ae8bf2a498a4e406ec45b..378794e4fe9be31f1d9f70c9f212e76ec81fdd9f 100644 --- a/aleksis/apps/tezor/views.py +++ b/aleksis/apps/tezor/views.py @@ -1,6 +1,7 @@ from django.views.generic import View -from django.shortcuts import render +from django.shortcuts import redirect, render, get_object_or_404 +from payments import get_payment_model, RedirectNeeded from rules.contrib.views import PermissionRequiredMixin from aleksis.core.views import RenderPDFView @@ -20,3 +21,19 @@ class GetInvoicePDF(PermissionRequiredMixin, RenderPDFView): print(invoice.group.__dict__) return context + + +def payment_details(request, token): + payment = get_object_or_404(get_payment_model(), token=token) + + try: + form = payment.get_form(data=request.POST or None) + except RedirectNeeded as redirect_to: + return redirect(str(redirect_to)) + + context = { + "form": form, + "payment": payment, + } + + return render(request, "tezor/invoice/payment.html", context)