diff --git a/aleksis/apps/tezor/urls.py b/aleksis/apps/tezor/urls.py index 0c1cdfe0ee45bca5b18d7f5d75fe104bbfc8ac43..571809cf71d6d08182a261b2aa26cde2155b6844 100644 --- a/aleksis/apps/tezor/urls.py +++ b/aleksis/apps/tezor/urls.py @@ -3,6 +3,6 @@ from django.urls import include, path from . import views urlpatterns = [ - path("empty", views.empty, name="empty"), path("payments/", include("payments.urls")), + path("invoice/<int:pk>/print", views.GetInvoicePDF.as_view(), name="get_invoice_by_pk") ] diff --git a/aleksis/apps/tezor/views.py b/aleksis/apps/tezor/views.py index c808ecb3fa1540695f9c8ab49e02859a678d9189..b44eae70b9e60f7dbdffa7ddd7540af6867b1a0d 100644 --- a/aleksis/apps/tezor/views.py +++ b/aleksis/apps/tezor/views.py @@ -1,10 +1,19 @@ -from django.contrib.auth.decorators import login_required -from django.http import HttpRequest, HttpResponse +from django.views.generic import View from django.shortcuts import render +from rules.contrib.views import PermissionRequiredMixin -@login_required -def empty(request: HttpRequest) -> HttpResponse: - context = {} +from .models.invoice import Invoice + + +class GetInvoicePDF(PermissionRequiredMixin, View): + + permission_required = "tezor.can_print_invoice" + + def get(self, request, *args, **kwargs): + context = {} + invoice = Invoice.objects.get(id=self.kwargs["pk"]) + context["invoice"] = invoice + + return render(request, invoice.group.template_name, context=context) - return render(request, "tezor/empty.html", context)