From 87b44885b7b2b49f0efb4e32039c189eececdccd Mon Sep 17 00:00:00 2001 From: Bernhard Kolb Date: Fri, 17 Apr 2026 14:46:53 +0200 Subject: [PATCH] Empfehlungen --- app.py | 15 +++++ db.py | 23 +++++++ templates/admin/empfehlungen.html | 104 ++++++++++++++++++++++++++++++ templates/admin/index.html | 5 ++ 4 files changed, 147 insertions(+) create mode 100644 templates/admin/empfehlungen.html diff --git a/app.py b/app.py index d7d2ad3..5b3deaa 100644 --- a/app.py +++ b/app.py @@ -55,6 +55,7 @@ from db import ( get_pdf_recommendation_topics, get_random_ansprechpartner_for_thema, create_empfehlung, + get_all_empfehlungen, ) from permissions import admin_required, login_required from tools import create_assessment_chart, generate_activation_token, send_mail, verify_activation_token, generate_pdf_from_html @@ -900,6 +901,20 @@ def admin_question_edit_for_thema(thema_id, frage_id): min_questions=8, ) +@app.route("/admin/empfehlungen") +@admin_required +def admin_empfehlungen(): + empfehlungen = get_all_empfehlungen() + themen = get_all_themen() + ansprechpartner = get_all_ansprechpartner() + + return render_template( + "admin/empfehlungen.html", + empfehlungen=empfehlungen, + themen=themen, + ansprechpartner=ansprechpartner, + ) + @app.errorhandler(401) def unauthorized_error(error): return render_template("401.html"), 401 diff --git a/db.py b/db.py index e93e434..3518aa5 100644 --- a/db.py +++ b/db.py @@ -805,4 +805,27 @@ def get_pdf_recommendation_topics(assessment_id, branche_id): ORDER BY t.id """, (assessment_id, branche_id), + ) + +def get_all_empfehlungen(): + return fetch_all( + """ + SELECT + e.id, + e.datetime, + a.id AS ansprechpartner_id, + a.name AS ansprechpartner_name, + t.id AS thema_id, + t.titel AS thema_titel, + b.id AS user_id, + b.name AS user_name + FROM empfehlung e + JOIN ansprechpartner a + ON a.id = e.ansprechpartner_id + JOIN thema t + ON t.id = e.thema_id + JOIN benutzer b + ON b.id = e.user_id + ORDER BY a.name ASC, e.datetime DESC + """ ) \ No newline at end of file diff --git a/templates/admin/empfehlungen.html b/templates/admin/empfehlungen.html new file mode 100644 index 0000000..dc97681 --- /dev/null +++ b/templates/admin/empfehlungen.html @@ -0,0 +1,104 @@ +{% extends "base.html" %} + +{% block content %} +
+ + +
+
+ + +
+ +
+ + +
+
+ +
+ {% for ap in ansprechpartner %} + {% set group_items = empfehlungen | selectattr("ansprechpartner_id", "equalto", ap.id) | list %} + {% if group_items %} +
+
+
+

{{ ap.name }}

+

Empfehlungen: {{ group_items|length }}

+
+
+ +
+ {% for item in group_items %} +
+
+
+ Ansprechpartner: {{ item.ansprechpartner_name }}
+ Thema: {{ item.thema_titel }}
+ User: {{ item.user_name }}
+ Datum: {{ item.datetime.strftime('%d.%m.%Y %H:%M') if item.datetime else '-' }} +
+
+
+ {% endfor %} +
+
+ {% endif %} + {% endfor %} +
+
+ + +{% endblock %} \ No newline at end of file diff --git a/templates/admin/index.html b/templates/admin/index.html index 8844241..c0b9083 100644 --- a/templates/admin/index.html +++ b/templates/admin/index.html @@ -31,6 +31,11 @@

Branchen

Branchen anlegen, bearbeiten und Themen zuordnen.

+ + +

Empfehlungen

+

Empfehlungen nach Ansprechpartner und Thema auswerten.

+
{% endblock %} \ No newline at end of file