From 4b220db7f933b02d58cca817dfdd14777dae709a Mon Sep 17 00:00:00 2001 From: Andreas Valder <andreasv@fsmpi.rwth-aachen.de> Date: Wed, 24 Aug 2016 01:53:56 +0200 Subject: [PATCH] added video overwiew with group by --- server.py | 6 +++- static/style.css | 1 + templates/macros.html | 23 +++++++++++++++ templates/videos.html | 69 ++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 97 insertions(+), 2 deletions(-) diff --git a/server.py b/server.py index f0b895a..ac6ad34 100755 --- a/server.py +++ b/server.py @@ -86,7 +86,11 @@ def index(): @app.route('/videos') def videos(): - return render_template('videos.html') + c=query("SELECT * FROM courses") + for i in c: + if i['semester'] == '': + i['semester'] = 'zeitlos' + return render_template('videos.html', courses=c, groupedby=request.args.get('groupedby')) @app.route('/faq') def faq(): diff --git a/static/style.css b/static/style.css index 292953c..3a3885d 100644 --- a/static/style.css +++ b/static/style.css @@ -1,2 +1,3 @@ .videopreview li:nth-child(even) { background: #f5f5f5; } +.courses-list li:nth-child(even) { background: #fAfAfA; } .mejs-container { height: 80% !important; width: 100% !important; position: fixed !important; } diff --git a/templates/macros.html b/templates/macros.html index c1f8654..689b152 100644 --- a/templates/macros.html +++ b/templates/macros.html @@ -56,3 +56,26 @@ <source type="video/mp4" src="https://videoag.fsmpi.rwth-aachen.de/{{ videos[0]['path'] }}" /> </video> {% endmacro %} + +{% macro course_list_item(course,show_semester=False) %} +<li class="list-group-item"> + <div class="row"> + {% if show_semester %} + <span class="col-xs-1"> + {{ course.semester }} + </span> + <span class="col-xs-6"> + {% else %} + <span class="col-xs-7"> + {% endif %} + {{ course.title }} + </span> + <span class="col-xs-3"> + {{ course.organizer }} + </span> + <span class="col-xs-2"> + {{ course.subject }} + </span> + </div> +</li> +{% endmacro %} diff --git a/templates/videos.html b/templates/videos.html index 142826f..aa4a8b3 100644 --- a/templates/videos.html +++ b/templates/videos.html @@ -1,6 +1,73 @@ +{% from 'macros.html' import course_list_item %} +{% set active_page = 'videos' -%} +{% set groupedby = groupedby|default('semester', true) -%} + {% extends "base.html" %} -{% set active_page = "videos" %} {% block content %} <div class="container-fluid"> + <div class="row"> + <div class="col-xs-12 dropdown"> + <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Grupierung + <span class="caret"></span></button> + <ul class="dropdown-menu"> + <li><a href="?groupedby=semester">Semester</a></li> + <li><a href="?groupedby=courses">Veranstaltungen</a></li> + <li><a href="?groupedby=organizer">Dozenten</a></li> + </ul> + </div> + </div> + <div class="row"><div class="col-xs-offset-1 col-xs-10"> + {% if groupedby == 'semester' %} + {% for g in courses|groupby('semester')|reverse %} + <div class="row panel-group"> + <div class="col-xs-12"><div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">{{g.grouper}}</h1> + </div> + <ul class="courses-list list-group"> + {% for i in g.list %} + {{ course_list_item(i) }} + {% endfor %} + </ul> + </div></div> + </div> + {% endfor %} + {% endif %} + + {% if groupedby == 'courses' %} + {% for g in courses|groupby('title')|reverse %} + <div class="row panel-group"> + <div class="col-xs-12"><div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">{{g.grouper}}</h1> + </div> + <ul class="courses-list list-group"> + {% for i in g.list|sort(attribute='semester') %} + {{ course_list_item(i,true) }} + {% endfor %} + </ul> + </div></div> + </div> + {% endfor %} + {% endif %} + + {% if groupedby == 'organizer' %} + {% for g in courses|groupby('organizer')|reverse %} + <div class="row panel-group"> + <div class="col-xs-12"><div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">{{g.grouper}}</h1> + </div> + <ul class="courses-list list-group"> + {% for i in g.list|sort(attribute='semester') %} + {{ course_list_item(i,true) }} + {% endfor %} + </ul> + </div></div> + </div> + {% endfor %} + {% endif %} + </div></div> + </div> {% endblock %} -- GitLab