From 236d7961a0db485b158e07d2c6705dc144da4905 Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Sun, 6 Mar 2022 23:35:09 +0100
Subject: [PATCH] Add view to view invoices

---
 aleksis/apps/tezor/urls.py  |  2 +-
 aleksis/apps/tezor/views.py | 21 +++++++++++++++------
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/aleksis/apps/tezor/urls.py b/aleksis/apps/tezor/urls.py
index 0c1cdfe..571809c 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 c808ecb..b44eae7 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)
-- 
GitLab