diff --git a/server.py b/server.py index 4e5e75832edb7883c25af4c1eb97cd60c7a7bd18..6f17c6ecad8e339a3a12c3bc14edea2f5eb34395 100755 --- a/server.py +++ b/server.py @@ -146,10 +146,17 @@ def courses(): @handle_errors('courses', 'Diese Veranstaltung existiert nicht!', 404, IndexError) def course(id=None, handle=None): if id: - courses = query('SELECT * FROM courses WHERE id = ? AND (? OR visible)', id, ismod())[0] + course = query('SELECT * FROM courses WHERE id = ? AND (? OR visible)', id, ismod())[0] else: - courses = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', handle, ismod())[0] - lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible)', courses['id'], ismod()) + course = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', handle, ismod())[0] + course['auth'] = query('SELECT * FROM auth WHERE course_id = ?', course['id']) + auths = query('SELECT auth.* FROM auth JOIN lectures ON (auth.lecture_id = lectures.id) WHERE lectures.course_id = ?', course['id']) + lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible)', course['id'], ismod()) + for lecture in lectures: + lecture['auth'] = [] + for auth in auths: + if auth['lecture_id'] == lecture['id']: + lecture['auth'].append(auth) videos = query(''' SELECT videos.*, (videos.downloadable AND courses.downloadable) as downloadable, formats.description AS format_description FROM videos @@ -158,8 +165,8 @@ def course(id=None, handle=None): JOIN courses ON (lectures.course_id = courses.id) WHERE lectures.course_id= ? AND (? OR videos.visible) ORDER BY lectures.time, formats.prio DESC - ''', courses['id'], ismod()) - return render_template('course.html', course=courses, lectures=lectures, videos=videos) + ''', course['id'], ismod()) + return render_template('course.html', course=course, lectures=lectures, videos=videos) @app.route('/faq') @register_navbar('FAQ', icon='question-sign')