From de2b98bc1a49952c37be4996d0554e0d11b264d6 Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Mon, 24 Oct 2022 21:48:19 +0200
Subject: [PATCH] Display individual price at event detail page

---
 aleksis/apps/paweljong/models.py                         | 9 +++++++++
 .../apps/paweljong/templates/paweljong/event/detail.html | 2 +-
 .../apps/paweljong/templates/paweljong/event/full.html   | 2 +-
 aleksis/apps/paweljong/views.py                          | 2 ++
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/aleksis/apps/paweljong/models.py b/aleksis/apps/paweljong/models.py
index c8c5104..7be1d39 100644
--- a/aleksis/apps/paweljong/models.py
+++ b/aleksis/apps/paweljong/models.py
@@ -188,6 +188,15 @@ class Event(ExtensibleModel):
     def get_absolute_url(self):
         return reverse("event_by_name", kwargs={"slug": self.slug})
 
+    def individual_cost(self, request=None):
+        if request and request.user.is_authenticated:
+            if Voucher.objects.filter(event=self, person=request.user.person, used=False).exists():
+                voucher = Voucher.objects.get(event=self, person=request.user.person, used=False)
+                individual_cost = voucher.discount * self.cost / 100
+                return individual_cost
+        else:
+            return self.cost
+
     @property
     def booked_percentage(self):
         return self.linked_group.members.count() / self.max_participants * 100
diff --git a/aleksis/apps/paweljong/templates/paweljong/event/detail.html b/aleksis/apps/paweljong/templates/paweljong/event/detail.html
index 80bd036..6e5c449 100644
--- a/aleksis/apps/paweljong/templates/paweljong/event/detail.html
+++ b/aleksis/apps/paweljong/templates/paweljong/event/detail.html
@@ -50,7 +50,7 @@
           <tr>
             <td><i class="material-icons small">money</i></td>
             <td colspan="2">{% trans "Participation fee (all inclusive)" %}</td>
-            <td>{{ event.cost }}</td>
+            <td>{{ individual_cost }}</td>
           </tr>
           <tr>
             <td><i class="material-icons small">group</i></td>
diff --git a/aleksis/apps/paweljong/templates/paweljong/event/full.html b/aleksis/apps/paweljong/templates/paweljong/event/full.html
index 5e07852..051405e 100644
--- a/aleksis/apps/paweljong/templates/paweljong/event/full.html
+++ b/aleksis/apps/paweljong/templates/paweljong/event/full.html
@@ -34,7 +34,7 @@
             <tr>
               <td><i class="material-icons small">money</i></td>
               <td colspan="2">{% trans "Participation fee (all inclusive)" %}</td>
-              <td>{{ event.cost }}</td>
+              <td>{{ individual_cost }}</td>
             </tr>
             <tr>
               <td><i class="material-icons small">group</i></td>
diff --git a/aleksis/apps/paweljong/views.py b/aleksis/apps/paweljong/views.py
index d30369f..f9813ed 100644
--- a/aleksis/apps/paweljong/views.py
+++ b/aleksis/apps/paweljong/views.py
@@ -691,6 +691,8 @@ class EventFullView(PermissionRequiredMixin, DetailView):
 
         context["can_register"] = context["event"].can_register(request=self.request)
         context["is_authenticated"] = self.request.user.is_authenticated
+        context["individual_cost"] = context["event"].individual_cost(request=self.request)
+
         return context
 
 
-- 
GitLab