diff --git a/app/flask-postgres/app/app.py b/app/flask-postgres/app/app.py index 52e86e5..ff6e162 100644 --- a/app/flask-postgres/app/app.py +++ b/app/flask-postgres/app/app.py @@ -1048,13 +1048,73 @@ def useradmin_user_edit(user_id): @app.route("/courses") @login_required def course_list(): - courses = get_available_courses_for_user() + user_id = session.get("user_id") + mandant_level = session.get("mandant_level", 0) + + conn = get_connection() + cur = conn.cursor() + + # Alle aktiven Kurse laden + cur.execute(""" + SELECT id, code, title, description, video_file, sort_order, is_active + FROM course + WHERE is_active = TRUE + ORDER BY code + """) + all_courses = fetchall_dict(cur) + + # Filter nach Level + available_courses = [ + c for c in all_courses + if is_course_allowed_for_level(c["code"], mandant_level) + ] + + # Bestandene Assessments laden + cur.execute(""" + SELECT DISTINCT course_id + FROM user_assessment + WHERE user_id = %s + AND passed = TRUE + """, (user_id,)) + passed_rows = cur.fetchall() + passed_course_ids = {row[0] for row in passed_rows} + + cur.close() + conn.close() + + # Kurse markieren + Modul bestimmen + for course in available_courses: + course["is_completed"] = course["id"] in passed_course_ids + course["module_code"] = (course["code"] or "")[:1].upper() + + # Gruppieren + Fortschritt berechnen + grouped_courses = {} + module_progress = {} + + for module_code in ("A", "B", "C"): + module_courses = [ + c for c in available_courses + if c["module_code"] == module_code + ] + + grouped_courses[module_code] = module_courses + + total = len(module_courses) + completed = sum(1 for c in module_courses if c["is_completed"]) + percent = int((completed / total) * 100) if total > 0 else 0 + + module_progress[module_code] = { + "total": total, + "completed": completed, + "percent": percent + } return render_template( - "course_list.html", + "courses.html", + grouped_courses=grouped_courses, + module_progress=module_progress, page_title="Kurse", active_page="courses", - courses=courses, **get_current_user() ) diff --git a/app/flask-postgres/app/templates/base.html b/app/flask-postgres/app/templates/base.html index 8fde935..0005537 100644 --- a/app/flask-postgres/app/templates/base.html +++ b/app/flask-postgres/app/templates/base.html @@ -19,14 +19,13 @@