This commit is contained in:
Bkolb 2026-04-11 20:03:21 +02:00
parent 0aa8961176
commit a971043478
4 changed files with 53 additions and 20 deletions

View File

@ -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:
@ -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()
)

View File

@ -279,3 +279,6 @@ def ensure_certificate_for_user_module(user_id, module_code):
conn.close()
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

View File

@ -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;
}
</style>
@ -196,8 +196,7 @@
</p>
<div class="issuer">
<strong>Ausgestellt durch:</strong><br>
ABC UG (haftungsbeschränkt)
<strong>Ausgestellt durch:</strong> ABC UG (haftungsbeschränkt)
</div>
<div class="dates">

View File

@ -12,6 +12,15 @@
<div class="success-box">
Assessment bestanden.
</div>
{% if module_completed_now %}
<div class="success-box" style="margin-top: 14px;">
Glückwunsch! Sie haben das Modul {{ module_code }} erfolgreich abgeschlossen.
{% if certificate_generated %}
Ihr Zertifikat wurde automatisch erstellt und hinterlegt.
{% endif %}
</div>
{% endif %}
{% else %}
<div class="error-box">
Assessment nicht bestanden.