diff --git a/server.py b/server.py index 31bf7f83f786039ae2a5f7a42c944fef09c42be1..68d724982e534f67970262aaaf44b782728e08f2 100755 --- a/server.py +++ b/server.py @@ -81,11 +81,8 @@ def videos(): def faq(): return render_template('faq.html') -@app.route('/play') -def play(): - if not 'lectureid' in request.args: - return redirect(url_for('videos')) - id = request.args.get('lectureid') +@app.route('/play/<int:id>') +def play(id): lectures = query('SELECT * FROM lectures WHERE id = ? AND (? OR visible)', id, ismod()) videos = query('SELECT * FROM videos WHERE lecture_id = ? AND (? OR visible)', id, ismod()) if not lectures: @@ -112,11 +109,8 @@ def search(): 'WHERE (? OR (coursevisible AND listed AND visible)) GROUP BY id ORDER BY _score DESC, time DESC LIMIT 30', ismod()) return render_template('search.html', searchtext=request.args['q'], courses=courses, lectures=lectures) -@app.route('/course') -def course(): - if not 'courseid' in request.args: - return redirect(url_for('videos')) - id = request.args['courseid'] +@app.route('/course/<id>') +def course(id): courses = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', id, ismod()) if not courses: flash('Diese Veranstaltung existiert nicht!') diff --git a/templates/base.html b/templates/base.html index 7a3abd5c36ebf59a57d4eef3f66786e202372e17..7996514e0afcbfd0f6706d8373100a31c591be44 100644 --- a/templates/base.html +++ b/templates/base.html @@ -5,23 +5,23 @@ <head> <title>Video AG</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <script src="static/jquery.js"></script> - <link rel="stylesheet" type="text/css" href="static/style.css"> - <link rel="icon" type="image/png" href="static/favicon.png"> + <script src="{{url_for('static', filename='jquery.js')}}"></script> + <link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}"> + <link rel="icon" type="image/png" href="{{url_for('static', filename='favicon.png')}}"> <meta http-equiv="content-language" content="de-DE"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> - <link href="static/bootstrap/bootstrap.css" rel="stylesheet"> - <script src="static/bootstrap/bootstrap.js"></script> - {%if ismod() %}<script src="static/moderator.js"></script>{% endif %} + <link href="{{url_for('static', filename='bootstrap/bootstrap.css')}}" rel="stylesheet"> + <script src="{{url_for('static', filename='bootstrap/bootstrap.js')}}"></script> + {%if ismod() %}<script src="{{url_for('static', filename='moderator.js')}}"></script>{% endif %} </head> <body> <nav class="navbar navbar-default navbar-static-top"> <div class="container-fluid"> <div class="row"> <div class="col-xs-1 hidden-xs hidden-sm"> - <a href="/"><img src="/static/logo.png" style="width: 80px; padding: 5px"></a> + <a href="/"><img src="{{url_for('static', filename='logo.png')}}" style="width: 80px; padding: 5px"></a> </div> <div class="col-xs-12 col-md-11"> <div class="row"> @@ -63,12 +63,12 @@ { html:true, title:'Login für Moderatoren', - content:'<form method="post" action="login"><input placeholder="User" name="user" type="text"><br><input placeholder="Password" name="password" type="password"><br><input type="hidden" name="ref" value="{{ request.url|e }}"><input type="submit" value="Login"></form>' + content:'<form method="post" action="{{url_for('login')}}"><input placeholder="User" name="user" type="text"><br><input placeholder="Password" name="password" type="password"><br><input type="hidden" name="ref" value="{{ request.url|e }}"><input type="submit" value="Login"></form>' } ) </script> {% else %} - <a href="/logout?ref={{ request.url|urlencode }}"> + <a href="{{url_for('logout')}}?ref={{ request.url|urlencode }}"> {{ session.user.givenName }} <span class="glyphicon glyphicon-log-out"></span> </a> diff --git a/templates/index.html b/templates/index.html index 6ad3b970f053ecfb6b719257d8f2cdf56c109eec..ac45441fdd9b014a9b4d135f668af4c4938b76e2 100644 --- a/templates/index.html +++ b/templates/index.html @@ -10,7 +10,7 @@ </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><strong>Probleme?</strong><a href="{{url_for('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> diff --git a/templates/macros.html b/templates/macros.html index 53b19814b31af0c58af777227e63767f735692bb..4ecd4e4fdc2b1e9e68fad2dd355dbb5f66b58b7b 100644 --- a/templates/macros.html +++ b/templates/macros.html @@ -1,7 +1,7 @@ {% macro preview(lecture) %} <li class="list-group-item"> - <a class="hidden-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}"> + <a class="hidden-xs" href="{{url_for('play', id=lecture['id'])}}" title="{{ lecture['coursetitle'] }}"> <div class="row"> <img class="col-xs-4" src="{{ videoprefix }}/{{ lecture['titlefile'] }}" alt="Vorschaubild"> <div class="col-xs-4"> @@ -17,7 +17,7 @@ </div> </div> </a> - <a class="visible-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}"> + <a class="visible-xs" href="{{url_for('play', id=lecture['id'])}}" title="{{ lecture['coursetitle'] }}"> <div class="row"> <img class="col-xs-12" src="{{ videoprefix }}/{{ lecture['titlefile'] }}" alt="Vorschaubild"> </div> @@ -50,8 +50,8 @@ {% endmacro %} {% macro player(lecture, videos) %} -<script src="static/mediaelementjs/mediaelement-and-player.min.js"></script> -<link rel="stylesheet" href="static/mediaelementjs/mediaelementplayer.css" /> +<script src="{{url_for('static', filename='/mediaelementjs/mediaelement-and-player.min.js')}}"></script> +<link rel="stylesheet" href="{{url_for('static', filename='mediaelementjs/mediaelementplayer.css')}}" /> <video class="mejs-player" width="640" height="360" style="width: 100%; height: 100%;"> {% for v in videos %} <source type="video/mp4" src="{{ videoprefix }}/{{ v.path }}" /> @@ -68,7 +68,7 @@ {% macro course_list_item(course,show_semester=False) %} <li class="list-group-item {% if (not course.visible) or (not course.listed) %}list-group-item-danger{% endif %}"> <div class="row"> - <a href=/course?courseid={{course.handle}}> + <a href="{{url_for('course', id=course.handle)}}"> {% if show_semester %} <span class="col-xs-1"> {{ course.semester }} @@ -147,7 +147,7 @@ $('#embedcodebtn').popover( <span class="dropdown"> {{ video_download_btn(videos) }} </span> - <a href="/play?lectureid={{lecture.id}}" class="btn btn-default {% if videos|length is equalto 0 %}disabled{% endif %}"> + <a href="{{url_for('play', id=lecture.id)}}" class="btn btn-default {% if videos|length is equalto 0 %}disabled{% endif %}"> <span class="glyphicon glyphicon-play"></span> Play </a> diff --git a/templates/play.html b/templates/play.html index 76eef7746367b395e76edc1d165bba3d02f36e2d..4b78d0f1b42412fc110a557da4b696bfc8a5e7d2 100644 --- a/templates/play.html +++ b/templates/play.html @@ -11,7 +11,7 @@ </div> <div class="panel-body"> <p class="col-xs-12" style="padding: 0px;"> - <span><a href="/course?courseid={{course.handle}}" class="btn btn-default" >Zur Veranstaltungsseite</a><span> + <span><a href="{{url_for('course', id=course.handle)}}" class="btn btn-default" >Zur Veranstaltungsseite</a><span> <span class="pull-right"> <span>{{ video_embed_btn(lecture.id) }}</span> <span>{{video_download_btn(videos)}}</span>