From a9710434781b43e9fd71bbeb84e77108c15cdb0e Mon Sep 17 00:00:00 2001 From: Bkolb Date: Sat, 11 Apr 2026 20:03:21 +0200 Subject: [PATCH] layout --- app/flask-postgres/app/app.py | 24 ++++++++++++++++- app/flask-postgres/app/certificates.py | 5 +++- .../app/templates/certificate_template.html | 17 ++++++------ .../templates/course_assessment_result.html | 27 ++++++++++++------- 4 files changed, 53 insertions(+), 20 deletions(-) diff --git a/app/flask-postgres/app/app.py b/app/flask-postgres/app/app.py index f280067..e872ae3 100644 --- a/app/flask-postgres/app/app.py +++ b/app/flask-postgres/app/app.py @@ -1932,6 +1932,12 @@ def course_assessment(course_id): total_questions = len(questions) correct_answers = 0 + module_code = (course["code"] or "")[:1].upper() + module_was_completed_before = False + + if module_code in ("A", "B", "C"): + module_was_completed_before = get_user_module_completion(session["user_id"], module_code) is not None + for q in questions: selected_answer_id = request.form.get(f"question_{q['id']}") if not selected_answer_id: @@ -1941,7 +1947,7 @@ def course_assessment(course_id): SELECT is_correct FROM answer WHERE id = %s - AND question_id = %s + AND question_id = %s """, (int(selected_answer_id), q["id"])) row = cur.fetchone() @@ -1957,6 +1963,19 @@ def course_assessment(course_id): """, (session["user_id"], course_id, score, passed)) conn.commit() + module_completed_now = False + certificate_generated = False + + if passed and module_code in ("A", "B", "C"): + module_is_completed_after = get_user_module_completion(session["user_id"], module_code) is not None + + if module_is_completed_after and not module_was_completed_before: + certificate_result = generate_certificate_pdf_for_user(session["user_id"], module_code) + + if certificate_result: + module_completed_now = True + certificate_generated = True + cur.close() conn.close() @@ -1968,6 +1987,9 @@ def course_assessment(course_id): score=score, total_questions=total_questions, passed=passed, + module_completed_now=module_completed_now, + certificate_generated=certificate_generated, + module_code=module_code, **get_current_user() ) diff --git a/app/flask-postgres/app/certificates.py b/app/flask-postgres/app/certificates.py index 9e0608c..f9ee5bd 100644 --- a/app/flask-postgres/app/certificates.py +++ b/app/flask-postgres/app/certificates.py @@ -278,4 +278,7 @@ def ensure_certificate_for_user_module(user_id, module_code): cur.close() conn.close() - return guid_value \ No newline at end of file + return guid_value + +def is_module_completed_for_user(user_id, module_code): + return get_user_module_completion(user_id, module_code) is not None \ No newline at end of file diff --git a/app/flask-postgres/app/templates/certificate_template.html b/app/flask-postgres/app/templates/certificate_template.html index 768529e..9142014 100644 --- a/app/flask-postgres/app/templates/certificate_template.html +++ b/app/flask-postgres/app/templates/certificate_template.html @@ -12,7 +12,7 @@ @bottom-center { content: "Seite " counter(page) "/" counter(pages); font-family: Arial, Helvetica, sans-serif; - font-size: 10pt; + font-size: 9pt; color: #64748b; } } @@ -23,7 +23,7 @@ margin: 0; padding: 0; background: #ffffff; - font-size: 12.5pt; + font-size: 10pt; line-height: 1.45; } @@ -51,7 +51,7 @@ } .title { - font-size: 24pt; + font-size: 22pt; font-weight: 700; color: #0d2f57; margin-bottom: 10mm; @@ -63,7 +63,7 @@ } .user-name { - font-size: 22pt; + font-size: 20pt; font-weight: 700; color: #0d2f57; text-align: center; @@ -71,7 +71,7 @@ } .mandant-name { - font-size: 15pt; + font-size: 12pt; text-align: center; margin-bottom: 8mm; } @@ -82,7 +82,7 @@ } .program-name { - font-size: 18pt; + font-size: 16pt; font-weight: 700; color: #0d2f57; text-align: center; @@ -138,7 +138,7 @@ .footer-note { margin-top: 6mm; - font-size: 10.5pt; + font-size: 9pt; color: #526172; } @@ -196,8 +196,7 @@

- Ausgestellt durch:
- ABC UG (haftungsbeschränkt) + Ausgestellt durch: ABC UG (haftungsbeschränkt)
diff --git a/app/flask-postgres/app/templates/course_assessment_result.html b/app/flask-postgres/app/templates/course_assessment_result.html index 56f4dcf..6c92878 100644 --- a/app/flask-postgres/app/templates/course_assessment_result.html +++ b/app/flask-postgres/app/templates/course_assessment_result.html @@ -8,15 +8,24 @@

Kurs: {{ course.code }} – {{ course.title }}

Punkte: {{ score }} / {{ total_questions }}

- {% if passed %} -
- Assessment bestanden. -
- {% else %} -
- Assessment nicht bestanden. -
- {% endif %} + {% if passed %} +
+ Assessment bestanden. +
+ + {% if module_completed_now %} +
+ Glückwunsch! Sie haben das Modul {{ module_code }} erfolgreich abgeschlossen. + {% if certificate_generated %} + Ihr Zertifikat wurde automatisch erstellt und hinterlegt. + {% endif %} +
+ {% endif %} + {% else %} +
+ Assessment nicht bestanden. +
+ {% endif %}