Skip to content
Snippets Groups Projects
Commit 9bbd182e authored by Andreas Valder's avatar Andreas Valder
Browse files

Merge branch 'master' of git.fsmpi.rwth-aachen.de:videoagwebsite/videoagwebsite

parents 54ef7bcf c77660e3
No related branches found
No related tags found
No related merge requests found
...@@ -154,7 +154,7 @@ def index(): ...@@ -154,7 +154,7 @@ def index():
@app.route('/course') @app.route('/course')
@register_navbar('Videos', icon='film') @register_navbar('Videos', icon='film')
def courses(): def courses():
courses = query('SELECT * FROM courses WHERE (? OR (visible AND listed))', ismod()) courses = query('SELECT * FROM courses WHERE (? OR (visible AND listed)) ORDER BY title', ismod())
for course in courses: for course in courses:
if course['semester'] == '': if course['semester'] == '':
course['semester'] = 'zeitlos' course['semester'] = 'zeitlos'
...@@ -171,16 +171,16 @@ def course(id=None, handle=None): ...@@ -171,16 +171,16 @@ def course(id=None, handle=None):
course = 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: else:
course = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', handle, ismod())[0] course = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', handle, ismod())[0]
course['auth'] = query('SELECT * FROM auth WHERE course_id = ?', course['id']) course['auth'] = query('SELECT * FROM auth WHERE course_id = ? ORDER BY auth_type', course['id'])
auths = query('SELECT auth.* FROM auth JOIN lectures ON (auth.lecture_id = lectures.id) WHERE lectures.course_id = ?', course['id']) auths = query('SELECT auth.* FROM auth JOIN lectures ON (auth.lecture_id = lectures.id) WHERE lectures.course_id = ? ORDER BY auth.auth_type', course['id'])
lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible)', course['id'], ismod()) lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible) ORDER BY time, duration DESC', course['id'], ismod())
for lecture in lectures: for lecture in lectures:
lecture['auth'] = [] lecture['auth'] = []
for auth in auths: for auth in auths:
if auth['lecture_id'] == lecture['id']: if auth['lecture_id'] == lecture['id']:
lecture['auth'].append(auth) lecture['auth'].append(auth)
videos = query(''' videos = query('''
SELECT videos.*, (videos.downloadable AND courses.downloadable) as downloadable, formats.description AS format_description SELECT videos.*, (videos.downloadable AND courses.downloadable) as downloadable, formats.description AS format_description, formats.player_prio, formats.prio
FROM videos FROM videos
JOIN lectures ON (videos.lecture_id = lectures.id) JOIN lectures ON (videos.lecture_id = lectures.id)
JOIN formats ON (videos.video_format = formats.id) JOIN formats ON (videos.video_format = formats.id)
...@@ -199,7 +199,7 @@ def faq(): ...@@ -199,7 +199,7 @@ def faq():
@handle_errors('course', 'Diese Vorlesung existiert nicht!', 404, IndexError) @handle_errors('course', 'Diese Vorlesung existiert nicht!', 404, IndexError)
def lecture(id): def lecture(id):
lectures = query('SELECT * FROM lectures WHERE id = ? AND (? OR visible)', id, ismod()) lectures = query('SELECT * FROM lectures WHERE id = ? AND (? OR visible)', id, ismod())
videos = query('SELECT videos.*, formats.description AS format_description FROM videos JOIN formats ON (videos.video_format = formats.id) WHERE lecture_id = ? AND (? OR visible)', id, ismod()) videos = query('SELECT videos.*, formats.description AS format_description, formats.prio, formats.player_prio FROM videos JOIN formats ON (videos.video_format = formats.id) WHERE lecture_id = ? AND (? OR visible)', id, ismod())
if not videos: if not videos:
flash('Zu dieser Vorlesung wurden noch keine Videos veröffentlicht!') flash('Zu dieser Vorlesung wurden noch keine Videos veröffentlicht!')
courses = query('SELECT * FROM courses WHERE id = ? AND (? OR (visible AND listed))', lectures[0]['course_id'], ismod()) courses = query('SELECT * FROM courses WHERE id = ? AND (? OR (visible AND listed))', lectures[0]['course_id'], ismod())
...@@ -359,7 +359,7 @@ def stats(): ...@@ -359,7 +359,7 @@ def stats():
@register_navbar('Changelog', 'book') @register_navbar('Changelog', 'book')
@mod_required @mod_required
def changelog(): def changelog():
changelog = query('SELECT *, ( "table" || "." || id_value || "." ||field) as path FROM changelog LEFT JOIN users ON (changelog.who = users.id) ORDER BY "when" DESC LIMIT 50') changelog = query('SELECT *, ( "table" || "." || id_value || "." ||field) as path FROM changelog LEFT JOIN users ON (changelog.who = users.id) ORDER BY `when` DESC LIMIT 50')
return render_template('changelog.html', changelog=changelog) return render_template('changelog.html', changelog=changelog)
@app.route('/files/<filename>') @app.route('/files/<filename>')
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<script src="{{url_for('static', filename='mediaelementjs/mep-feature-sourcechooser.js')}}"></script> <script src="{{url_for('static', filename='mediaelementjs/mep-feature-sourcechooser.js')}}"></script>
<link rel="stylesheet" href="{{url_for('static', filename='mediaelementjs/mediaelementplayer.css')}}"/> <link rel="stylesheet" href="{{url_for('static', filename='mediaelementjs/mediaelementplayer.css')}}"/>
<video class="player" width="640" height="360" style="width: 100%; height: 100%;" controls="controls"> <video class="player" width="640" height="360" style="width: 100%; height: 100%;" controls="controls">
{% for v in videos %} {% for v in videos|sort(attribute='player_prio', reverse=True) %}
<source type="video/mp4" src="{{ config.VIDEOPREFIX }}/{{ v.path }}" title="{{ v.format_description }}"/> <source type="video/mp4" src="{{ config.VIDEOPREFIX }}/{{ v.path }}" title="{{ v.format_description }}"/>
{% endfor %} {% endfor %}
</video> </video>
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
{% macro video_download_btn(videos) %} {% macro video_download_btn(videos) %}
<span class="btn btn-primary dropdown-toggle{% if videos|length is equalto 0 %} disabled{% endif %}" type="button" data-toggle="dropdown">Download <span class="caret"></span></span> <span class="btn btn-primary dropdown-toggle{% if videos|length is equalto 0 %} disabled{% endif %}" type="button" data-toggle="dropdown">Download <span class="caret"></span></span>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
{% for v in videos %} {% for v in videos|sort(attribute='prio', reverse=True) %}
{% if v.downloadable %} {% if v.downloadable %}
<li><a href="{{ config.VIDEOPREFIX }}/{{v.path}}">{{ valuecheckbox(['videos',v.id,'visible'], v.visible) }} {{v.format_description}} ({{v.file_size|filesizeformat(true)}})</a></li> <li><a href="{{ config.VIDEOPREFIX }}/{{v.path}}">{{ valuecheckbox(['videos',v.id,'visible'], v.visible) }} {{v.format_description}} ({{v.file_size|filesizeformat(true)}})</a></li>
{% endif %} {% endif %}
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
</ul> </ul>
<noscript> <noscript>
<ul class="pull-right list-unstyled" style="margin-left:10px;"> <ul class="pull-right list-unstyled" style="margin-left:10px;">
{% for v in videos %} {% for v in videos|sort(attribute='prio', reverse=True) %}
<li><a href="{{ config.VIDEOPREFIX }}/{{v.path}}">{{v.format_description}} ({{v.file_size|filesizeformat(true)}})</a></li> <li><a href="{{ config.VIDEOPREFIX }}/{{v.path}}">{{v.format_description}} ({{v.file_size|filesizeformat(true)}})</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment