From f469c2b28c4aedbf5d0e2278231cec4da119bea1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?=
 <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de>
Date: Sun, 9 May 2021 01:46:01 +0200
Subject: [PATCH] Introduce result presentation mode for slides and allow to
 specify mode and num of next AKs via GET params

The export now allows to optional params, ?presentation_mode (without args) and ?num_next=<int> (default 3)
---
 .../templates/admin/AKModel/export/slides.tex | 39 ++++++++++---------
 AKModel/views.py                              |  7 +++-
 2 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/AKModel/templates/admin/AKModel/export/slides.tex b/AKModel/templates/admin/AKModel/export/slides.tex
index 814c57ed..d30f70e5 100644
--- a/AKModel/templates/admin/AKModel/export/slides.tex
+++ b/AKModel/templates/admin/AKModel/export/slides.tex
@@ -69,36 +69,37 @@
 
 {% endfor %}
 
+{% if not result_presentation_mode %}
 
-\section{ {{- translations.wishes -}} }
+    \section{ {{- translations.wishes -}} }
 
-{% for ak, next_aks in wishes %}
+    {% for ak, next_aks in wishes %}
 
-    %\setbeamertemplate{frame footer}{}
+        %\setbeamertemplate{frame footer}{}
 
-    \begin{frame}[shrink=15]
-        \frametitle{ {{- ak.name | latex_escape_utf8 -}} }
+        \begin{frame}[shrink=15]
+            \frametitle{ {{- ak.name | latex_escape_utf8 -}} }
 
-        \vspace{1em}
+            \vspace{1em}
 
-        \faFilter~ {{ ak.category.name | latex_escape_utf8 }}
+            \faFilter~ {{ ak.category.name | latex_escape_utf8 }}
 
-        \faUser~
+            \faUser~
 
-        \faClock~
+            \faClock~
 
-        {{ ak.description | truncatechars(400) | latex_escape_utf8 }}
+            {{ ak.description | truncatechars(400) | latex_escape_utf8 }}
 
-        \vspace{2em}
+            \vspace{2em}
 
-        \begin{scriptsize}
-            {% for n_ak in next_aks %}
-                {% if n_ak %}\hfill \faAngleDoubleRight~ {{- n_ak.name | latex_escape_utf8 -}}{% endif %}
-            {% endfor %}
-        \end{scriptsize}
+            \begin{scriptsize}
+                {% for n_ak in next_aks %}
+                    {% if n_ak %}\hfill \faAngleDoubleRight~ {{- n_ak.name | latex_escape_utf8 -}}{% endif %}
+                {% endfor %}
+            \end{scriptsize}
 
-    \end{frame}
-
-{% endfor %}
+        \end{frame}
+    {% endfor %}
+{% endif %}
 
 \end{document}
diff --git a/AKModel/views.py b/AKModel/views.py
index 06bd3211..c1926d7d 100644
--- a/AKModel/views.py
+++ b/AKModel/views.py
@@ -298,7 +298,8 @@ def export_slides(request, event_slug):
 
     event = get_object_or_404(Event, slug=event_slug)
 
-    NEXT_AK_LIST_LENGTH = 4
+    NEXT_AK_LIST_LENGTH = int(request.GET["num_next"]) if "num_next" in request.GET else 3
+    RESULT_PRESENTATION_MODE = True if "presentation_mode" in request.GET else False
 
     translations = {
         'symbols': _("Symbols"),
@@ -322,7 +323,8 @@ def export_slides(request, event_slug):
             if ak.wish:
                 ak_wishes.append(ak)
             else:
-                ak_list.append(ak)
+                if not RESULT_PRESENTATION_MODE or ak.present:
+                    ak_list.append(ak)
         categories_with_aks.append((category, build_ak_list_with_next_aks(ak_list)))
 
     context = {
@@ -331,6 +333,7 @@ def export_slides(request, event_slug):
         'subtitle': _("AKs"),
         "wishes": build_ak_list_with_next_aks(ak_wishes),
         "translations": translations,
+        "result_presentation_mode": RESULT_PRESENTATION_MODE,
         }
 
     return render_to_pdf(request, template_name, context, filename='slides.pdf')
-- 
GitLab