From 95ace878b0943b7adcc61d0479db56866411d0f7 Mon Sep 17 00:00:00 2001 From: Julian Rother <julianr@fsmpi.rwth-aachen.de> Date: Fri, 26 Aug 2016 00:25:12 +0200 Subject: [PATCH] Added flashes/alerts and simplified templates --- server.py | 4 ++- templates/base.html | 13 ++++--- templates/course.html | 20 +++++------ templates/faq.html | 84 +++++++++++++++++++++---------------------- templates/index.html | 66 +++++++++++++++++----------------- templates/play.html | 4 +-- templates/search.html | 56 ++++++++++++++--------------- templates/videos.html | 62 ++++++++++++++++---------------- 8 files changed, 152 insertions(+), 157 deletions(-) diff --git a/server.py b/server.py index 4fb51b2..a09e9d2 100755 --- a/server.py +++ b/server.py @@ -1,5 +1,5 @@ #!/bin/python -from flask import Flask, render_template, g, request, url_for, redirect, session +from flask import * import sqlite3 import os import re @@ -172,6 +172,8 @@ def login(): user, groups = ldapauth(request.form.get('user'), request.form.get('password')) if user and 'users' in groups: session['user'] = ldapget(user) + else: + flash('Login fehlgeschlagen!') if 'ref' in request.values: return redirect(request.values['ref']) else: diff --git a/templates/base.html b/templates/base.html index 20fc5e0..03d2ad1 100644 --- a/templates/base.html +++ b/templates/base.html @@ -93,9 +93,14 @@ </div> </div> </nav> - {% block content %} - <h1>This is a Heading</h1> - <p>This is a paragraph.</p> - {% endblock %} + <div class="container-fluid"> + {% for msg in get_flashed_messages() %} + <div class="row"><div class="alert alert-danger col-xs-12" role="alert">{{ msg }}</div></div> + {% endfor %} + {% block content %} + <h1>This is a Heading</h1> + <p>This is a paragraph.</p> + {% endblock %} + </div> </body> </html> diff --git a/templates/course.html b/templates/course.html index 306f6f2..d69eb81 100644 --- a/templates/course.html +++ b/templates/course.html @@ -2,18 +2,16 @@ {% from 'macros.html' import preview %} {% extends "base.html" %} {% block content %} -<div class="container-fluid"> - <div class="col-xs-offset-1 col-xs-10"> - <div class="panel panel-default"> - <div class="panel-heading"> - <h1 class="panel-title">Veranstaltungen</h1> - </div> - <ul class="list-group lectureslist"> - {% for l in lectures %} - {{ lecture_list_item(l,videos|selectattr('lecture_id','equalto',l.id)|list) }} - {% endfor %} - </ul> +<div class="col-xs-offset-1 col-xs-10"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">Veranstaltungen</h1> </div> + <ul class="list-group lectureslist"> + {% for l in lectures %} + {{ lecture_list_item(l,videos|selectattr('lecture_id','equalto',l.id)|list) }} + {% endfor %} + </ul> </div> </div> {% endblock %} diff --git a/templates/faq.html b/templates/faq.html index 9246245..ee7582c 100644 --- a/templates/faq.html +++ b/templates/faq.html @@ -2,55 +2,53 @@ {% extends "base.html" %} {% set active_page = "faq" %} {% block content %} -<div class="container"> - <br /> - <br /> - <br /> - - <div class="alert alert-warning alert-dismissible" role="alert" id="kontakt"> - Unter <a href="mailto:video@fsmpi.rwth-aachen.de">video@fsmpi.rwth-aachen.de</a> stehen wir für alle Fragen bereit. - </div> +<div class="row"> + <div class="col-xs-10 col-xs-offset-1"> + <div class="alert alert-warning alert-dismissible" role="alert" id="kontakt"> + Unter <a href="mailto:video@fsmpi.rwth-aachen.de">video@fsmpi.rwth-aachen.de</a> stehen wir für alle Fragen bereit. + </div> - <br /> + <br/> - <div class="panel-group" id="accordion"> - <div class="faqHeader">Allgemein</div> - <div class="panel panel-default"> - <div class="panel-heading"> - <h4 class="panel-title"> - <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#speed">Der Download ist zu langsam.</a> - </h4> - </div> - <div id="speed" class="panel-collapse collapse in"> - <div class="panel-body"> - <p>Wir beschränken die Downloadgeschwindigkeit nicht! Eventuell hast du im Uninetz eine bessere Anbindung.</p> - <p>Falls du unbedingt einen <strong>Download-Manager</strong> benutzen willst/musst, stelle diesen bitte so ein, dass er maximal <strong>5 gleichzeitige Verbindungen</strong> (oder auch weniger) zu unserem Videoserver benutzt.</p> - <p>Unser Server hat keine (nein, absolut keine!) Bandbreitenbegrenzung, also bekommst du schon für einen einzigen Download die volle Geschwindigkeit und wirst selbst mit solchen Programmen keine schnelleren Downloads erfahren. Zu viele Verbindungen sorgen nur für exzessive Systemlast und damit langsamere Downloads für alle, dich eingeschlossen.</p> + <div class="panel-group" id="accordion"> + <div class="faqHeader">Allgemein</div> + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"> + <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#speed">Der Download ist zu langsam.</a> + </h4> </div> - </div> - </div> - <div class="faqHeader">Abspielprobleme</div> - <div class="panel panel-default"> - <div class="panel-heading"> - <h4 class="panel-title"> - <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#playbackfile">Ich kann ein heruntergeladenes Video nicht abspielen.</a> - </h4> - </div> - <div id="playbackfile" class="panel-collapse collapse"> - <div class="panel-body"> - <p>Ein beliebter Videoplayer ist VLC, denn er kann so ziemlich alle üblichen Audio- und Videoformate abspielen. VLC gibt es unter <a href="https://www.videolan.org">https://www.videolan.org</a> zum Download.</p> + <div id="speed" class="panel-collapse collapse in"> + <div class="panel-body"> + <p>Wir beschränken die Downloadgeschwindigkeit nicht! Eventuell hast du im Uninetz eine bessere Anbindung.</p> + <p>Falls du unbedingt einen <strong>Download-Manager</strong> benutzen willst/musst, stelle diesen bitte so ein, dass er maximal <strong>5 gleichzeitige Verbindungen</strong> (oder auch weniger) zu unserem Videoserver benutzt.</p> + <p>Unser Server hat keine (nein, absolut keine!) Bandbreitenbegrenzung, also bekommst du schon für einen einzigen Download die volle Geschwindigkeit und wirst selbst mit solchen Programmen keine schnelleren Downloads erfahren. Zu viele Verbindungen sorgen nur für exzessive Systemlast und damit langsamere Downloads für alle, dich eingeschlossen.</p> + </div> </div> </div> - </div> - <div class="faqHeader">Technisches</div> - <div class="panel panel-default"> - <div class="panel-heading"> - <h4 class="panel-title"> - <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#encoding">Wie encoded ihr eurere Videos?</a> - </h4> + <div class="faqHeader">Abspielprobleme</div> + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"> + <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#playbackfile">Ich kann ein heruntergeladenes Video nicht abspielen.</a> + </h4> + </div> + <div id="playbackfile" class="panel-collapse collapse"> + <div class="panel-body"> + <p>Ein beliebter Videoplayer ist VLC, denn er kann so ziemlich alle üblichen Audio- und Videoformate abspielen. VLC gibt es unter <a href="https://www.videolan.org">https://www.videolan.org</a> zum Download.</p> + </div> + </div> </div> - <div id="encoding" class="panel-collapse collapse"> - <div class="panel-body"> + <div class="faqHeader">Technisches</div> + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"> + <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#encoding">Wie encoded ihr eurere Videos?</a> + </h4> + </div> + <div id="encoding" class="panel-collapse collapse"> + <div class="panel-body"> + </div> </div> </div> </div> diff --git a/templates/index.html b/templates/index.html index c0df98c..d15fe03 100644 --- a/templates/index.html +++ b/templates/index.html @@ -2,44 +2,42 @@ {% extends "base.html" %} {% set active_page = "index" %} {% block content %} -<div class="container-fluid"> - <div class="row"> - <div class="col-md-6 panel-group"> - <div class="panel panel-default"> - <div class="panel-heading"> - <h1 class="panel-title">Video AG</h1> - </div> - <div class="panel-body"> - <p>Wir machen Vorlesungsvideos, damit du dir deine Vorlesungen angucken kannst, wann, wo und so oft <strong>du</strong> willst ;)</p> - <p><strong>Probleme?</strong><a href="/faq"> Hier gehts zur FAQ</a></p> - <p>Wenn du die Videos nützlich fandest, schreib doch bitte den Dozenten eine kurze E-Mail. Waren die Videos grauenhaft? Kritik an uns.</p> - <p>Wenn du mitmachen willst, Fragen oder Anregungen hast, oder nur mal schauen möchtest, komm zu unserem AG-Treffen oder schreib uns eine E-Mail. - Insbesondere freuen wir uns über Studis der Mathematik und Physik, die ihre Vorlesungen filmen wollen.</p> - <p>Die nächste Sitzung der AG findet am <strong>10.08.2016 ab 18:00 Uhr in den Räumlichkeiten der Fachschaft im Augustinerbach 2a, 1. Obergeschoss</strong> statt. - </p> - </div> +<div class="row"> + <div class="col-md-6 panel-group"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">Video AG</h1> </div> - <div class="panel panel-default"> - <div class="panel-heading"> - <h1 class="panel-title">Featured</h1> - </div> - <div class="panel-body"> - <h1 class="panel-title">Collegium Musicum</h1 class="panel-title"> - <img style="width:100%" src="http://www.cm.rwth-aachen.de/typo3/typo3temp/pics/c1d685f56a.jpg"> - </div> + <div class="panel-body"> + <p>Wir machen Vorlesungsvideos, damit du dir deine Vorlesungen angucken kannst, wann, wo und so oft <strong>du</strong> willst ;)</p> + <p><strong>Probleme?</strong><a href="/faq"> Hier gehts zur FAQ</a></p> + <p>Wenn du die Videos nützlich fandest, schreib doch bitte den Dozenten eine kurze E-Mail. Waren die Videos grauenhaft? Kritik an uns.</p> + <p>Wenn du mitmachen willst, Fragen oder Anregungen hast, oder nur mal schauen möchtest, komm zu unserem AG-Treffen oder schreib uns eine E-Mail. + Insbesondere freuen wir uns über Studis der Mathematik und Physik, die ihre Vorlesungen filmen wollen.</p> + <p>Die nächste Sitzung der AG findet am <strong>10.08.2016 ab 18:00 Uhr in den Räumlichkeiten der Fachschaft im Augustinerbach 2a, 1. Obergeschoss</strong> statt. + </p> </div> </div> - <div class="col-md-6"> - <div class="panel panel-default"> - <div class="panel-heading"> - <h1 class="panel-title">Neueste Videos</h1"> - </div> - <ul class="list-group videopreview"> - {% for i in latestvideos %} - {{ preview(i) }} - {% endfor %} - </ul> + <div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">Featured</h1> </div> + <div class="panel-body"> + <h1 class="panel-title">Collegium Musicum</h1 class="panel-title"> + <img style="width:100%" src="http://www.cm.rwth-aachen.de/typo3/typo3temp/pics/c1d685f56a.jpg"> + </div> + </div> + </div> + <div class="col-md-6"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">Neueste Videos</h1"> + </div> + <ul class="list-group videopreview"> + {% for i in latestvideos %} + {{ preview(i) }} + {% endfor %} + </ul> </div> </div> </div> diff --git a/templates/play.html b/templates/play.html index abb983f..1cc1086 100644 --- a/templates/play.html +++ b/templates/play.html @@ -1,7 +1,5 @@ {% from 'macros.html' import player %} {% extends "base.html" %} {% block content %} -<div> - {{ player(lecture, videos) }} -</div> +{{ player(lecture, videos) }} {% endblock %} diff --git a/templates/search.html b/templates/search.html index 581294f..d2df745 100644 --- a/templates/search.html +++ b/templates/search.html @@ -2,37 +2,35 @@ {% from 'macros.html' import preview %} {% extends "base.html" %} {% block content %} -<div class="container-fluid"> - <div class="col-xs-offset-1 col-xs-10"> - <div class="panel panel-default"> - <div class="panel-heading"> - <h1 class="panel-title">Veranstaltungen</h1> - </div> - {% if courses == [] %} - <div class="panel-body">Nichts gefunden!</div> - {% else %} - <ul class="list-group courselist"> - {% for course in courses %} - {{ course_list_item(course,true) }} - {% endfor %} - </ul> - {% endif %} +<div class="col-xs-offset-1 col-xs-10"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">Veranstaltungen</h1> </div> - <div class="panel panel-default"> - <div class="panel-heading"> - <h1 class="panel-title">Videos</h1> - </div> - <div class="panel-body"> - {% if lectures == [] %} - Nichts gefunden! - {% else %} - <ul class="list-group videopreview"> - {% for lecture in lectures %} - {{ preview(lecture) }} + {% if courses == [] %} + <div class="panel-body">Nichts gefunden!</div> + {% else %} + <ul class="list-group courselist"> + {% for course in courses %} + {{ course_list_item(course,true) }} {% endfor %} - </ul> - {% endif %} - </div> + </ul> + {% endif %} + </div> + <div class="panel panel-default"> + <div class="panel-heading"> + <h1 class="panel-title">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> diff --git a/templates/videos.html b/templates/videos.html index fc8bfe3..185c9d6 100644 --- a/templates/videos.html +++ b/templates/videos.html @@ -3,38 +3,36 @@ {% extends "base.html" %} {% 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 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 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> +<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> + {% endblock %} -- GitLab