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 %}