diff --git a/server.py b/server.py index 0253bf98b78d135849f8bb9a5fe681b7b5268601..e3c62e7dfa227babc7431c10277fc6fd8bdc104f 100755 --- a/server.py +++ b/server.py @@ -105,7 +105,14 @@ 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' + groupedby = request.args.get('groupedby') + if groupedby not in ['title','semester','organizer']: + groupedby = 'semester' + return render_template('videos.html', courses=c, groupedby=groupedby) @app.route('/faq') def faq(): diff --git a/static/style.css b/static/style.css index 292953c54429bbc4263aebac105e880551e6e2d0..3a3885dd0ec3ecad5a5f5256191a0d27bd243c1d 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 fe163b7e72599a07d3be4934b69f5731d9666434..689b152fd3534ed93711e18452622f6f810e24d7 100644 --- a/templates/macros.html +++ b/templates/macros.html @@ -1,8 +1,8 @@ {% macro preview(lecture) %} <li class="list-group-item"> - <div class="row"> - <a class="hidden-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}"> + <a class="hidden-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}"> + <div class="row"> <img class="col-xs-4" src="https://videoag.fsmpi.rwth-aachen.de/{{ lecture['titlefile'] }}" alt="Vorschaubild"> <div class="col-xs-4"> <span style="color: #000;"><strong>{{ lecture['short'] }}</strong></span><br> @@ -15,36 +15,36 @@ <div style="color: #000;">{{ lecture['title'] }}</div> <p style="font-style: italic; color: #777;">{{ lecture['comment'] }}</p> </div> - </a> - <a class="visible-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}"> - <div class="row"> - <img class="col-xs-12" src="https://videoag.fsmpi.rwth-aachen.de/{{ lecture['titlefile'] }}" alt="Vorschaubild"> - </div> - <div class="row"> - <div class="col-xs-12"> - <span style="color: #000;"><strong>{{ lecture['short'] }}</strong></span> - <span style="color: #000;">{{ lecture['time'] }}</span> - </div> + </div> + </a> + <a class="visible-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}"> + <div class="row"> + <img class="col-xs-12" src="https://videoag.fsmpi.rwth-aachen.de/{{ lecture['titlefile'] }}" alt="Vorschaubild"> + </div> + <div class="row"> + <div class="col-xs-12"> + <span style="color: #000;"><strong>{{ lecture['short'] }}</strong></span> + <span style="color: #000;">{{ lecture['time'] }}</span> </div> - {% if lecture['speaker'] %} - <div class="row"> - <div class="col-xs-12"> - <div class="small" style="color: #000;">Gehalten von {{ lecture['speaker'] }} </div> - </div> + </div> + {% if lecture['speaker'] %} + <div class="row"> + <div class="col-xs-12"> + <div class="small" style="color: #000;">Gehalten von {{ lecture['speaker'] }} </div> </div> - {% endif %} - <div class="row"> - <div class="col-xs-12"> - <div style="color: #000;">{{ lecture['title'] }}</div> - </div> + </div> + {% endif %} + <div class="row"> + <div class="col-xs-12"> + <div style="color: #000;">{{ lecture['title'] }}</div> </div> - <div class="row"> - <div class="col-xs-12"> - <p style="font-style: italic; color: #777;">{{ lecture['comment'] }}</p> - </div> + </div> + <div class="row"> + <div class="col-xs-12"> + <p style="font-style: italic; color: #777;">{{ lecture['comment'] }}</p> </div> - </a> - </div> + </div> + </a> </li> {% endmacro %} @@ -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/search.html b/templates/search.html index e40067819e0e5fc82b090ed91be292e2fe47b726..24974e711a85f4e521bb19ab3050b3219ea0ac74 100644 --- a/templates/search.html +++ b/templates/search.html @@ -1,37 +1,37 @@ {% from 'macros.html' import preview %} {% extends "base.html" %} {% block content %} -<div class="container"> - <div class="panel panel-default"> - <div class="panel-heading"> - <h1>Veranstaltungen</h1> +<div class="container-fluid"> + <div class="col-xs-offset-1 col-xs-10"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h1>Veranstaltungen</h1> + </div> + {% if courses == [] %} + <div class="panel-body">Nichts gefunden!</div> + {% else %} + <ul class="list-group courselist"> + {% for course in courses %} + <li class="list-group-item">{{ course['title'] }}</li> + {% endfor %} + </ul> + {% endif %} </div> - <div class="panel-body"> - {% if courses == [] %} - Nichts gefunden! - {% else %} - <ul class="list-group courselist"> - {% for course in courses %} - <li class="list-group-item">{{ course['title'] }}</li> + <div class="panel panel-default"> + <div class="panel-heading"> + <h1>Videos</h1> + </div> + <div class="panel-body"> + {% if lectures == [] %} + Nichts gefunden! + {% else %} + <ul class="list-group videopreview"> + {% for lecture in lectures %} + {{ preview(lecture) }} {% endfor %} - </ul> - {% endif %} - </div> - </div> - <div class="panel panel-default"> - <div class="panel-heading"> - <h1>Videos</h1> - </div> - <div class="panel-body"> - {% if lectures == [] %} - Nichts gefunden! - {% else %} - <ul class="list-group videopreview"> - {% for lecture in lectures %} - {{ preview(lecture) }} - {% endfor %} - </ul> - {% endif %} + </ul> + {% endif %} + </div> </div> </div> </div> diff --git a/templates/videos.html b/templates/videos.html index 142826f34ba94540e44f66315e14446dd90cd987..3c6587b35c01488f9370ca210d22fd48427a184b 100644 --- a/templates/videos.html +++ b/templates/videos.html @@ -1,6 +1,40 @@ +{% from 'macros.html' import course_list_item %} +{% set active_page = 'videos' -%} + {% 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=title">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"> + {% for g in courses|groupby(groupedby)|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 %} + {% if groupedby == semester %} + {{ course_list_item(i) }} + {% else %} + {{ course_list_item(i,true) }} + {% endif %} + {% endfor %} + </ul> + </div></div> + </div> + {% endfor %} + </div></div> + </div> {% endblock %}