Skip to content
Snippets Groups Projects
Commit a1d4a0f7 authored by Julian Rother's avatar Julian Rother
Browse files

Rename endpoints for better comprehensibility

parent d09e8d71
No related branches found
No related tags found
No related merge requests found
...@@ -44,7 +44,7 @@ def feed(handle=None): ...@@ -44,7 +44,7 @@ def feed(handle=None):
return Response(render_template('feed.atom', course=course, entries=entries), 200, {'Content-Type': 'application/atom+xml'}) return Response(render_template('feed.atom', course=course, entries=entries), 200, {'Content-Type': 'application/atom+xml'})
@app.route('/course/feed') @app.route('/course/feed')
def feed_courses(): def courses_feed():
courses = query('SELECT * FROM courses WHERE visible AND listed ORDER BY time_created DESC LIMIT 100') courses = query('SELECT * FROM courses WHERE visible AND listed ORDER BY time_created DESC LIMIT 100')
atomid = gen_atomid('Video AG, courses') atomid = gen_atomid('Video AG, courses')
updated = None updated = None
...@@ -52,4 +52,4 @@ def feed_courses(): ...@@ -52,4 +52,4 @@ def feed_courses():
course['updated'] = max(course['time_created'], course['time_updated'], key=fixdate) course['updated'] = max(course['time_created'], course['time_updated'], key=fixdate)
course['atomid'] = gen_atomid('Video AG, courses['+str(course['id'])+']: '+course['handle']) course['atomid'] = gen_atomid('Video AG, courses['+str(course['id'])+']: '+course['handle'])
updated = max(updated, course['updated'], key=fixdate) updated = max(updated, course['updated'], key=fixdate)
return Response(render_template('feed_courses.atom', updated=updated, atomid=atomid, courses=courses), 200, {'Content-Type': 'application/atom+xml'}) return Response(render_template('courses_feed.atom', updated=updated, atomid=atomid, courses=courses), 200, {'Content-Type': 'application/atom+xml'})
...@@ -131,7 +131,7 @@ def index(): ...@@ -131,7 +131,7 @@ def index():
@app.route('/course') @app.route('/course')
@register_navbar('Videos', icon='film') @register_navbar('Videos', icon='film')
def course(): def courses():
courses = query('SELECT * FROM courses WHERE (? OR (visible AND listed))', ismod()) courses = query('SELECT * FROM courses WHERE (? OR (visible AND listed))', ismod())
for course in courses: for course in courses:
if course['semester'] == '': if course['semester'] == '':
...@@ -139,16 +139,16 @@ def course(): ...@@ -139,16 +139,16 @@ def course():
groupedby = request.args.get('groupedby') groupedby = request.args.get('groupedby')
if groupedby not in ['title', 'semester', 'organizer']: if groupedby not in ['title', 'semester', 'organizer']:
groupedby = 'semester' groupedby = 'semester'
return render_template('course.html', courses=courses, groupedby=groupedby) return render_template('courses.html', courses=courses, groupedby=groupedby)
@app.route('/course/<id>') @app.route('/course/<handle>')
@app.route('/course/<int:numid>') @app.route('/course/<int:id>')
@handle_errors('course', 'Diese Veranstaltung existiert nicht!', 404, IndexError) @handle_errors('course', 'Diese Veranstaltung existiert nicht!', 404, IndexError)
def course_id(numid=None, id=None): def course(id=None, handle=None):
if numid: if id:
courses = query('SELECT * FROM courses WHERE id = ? AND (? OR visible)', numid, ismod())[0] courses = query('SELECT * FROM courses WHERE id = ? AND (? OR visible)', id, ismod())[0]
else: else:
courses = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', id, ismod())[0] courses = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', handle, ismod())[0]
lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible)', courses['id'], ismod()) lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible)', courses['id'], ismod())
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
...@@ -159,7 +159,7 @@ def course_id(numid=None, id=None): ...@@ -159,7 +159,7 @@ def course_id(numid=None, id=None):
WHERE lectures.course_id= ? AND (? OR videos.visible) WHERE lectures.course_id= ? AND (? OR videos.visible)
ORDER BY lectures.time, formats.prio DESC ORDER BY lectures.time, formats.prio DESC
''', courses['id'], ismod()) ''', courses['id'], ismod())
return render_template('course_id.html', course=courses, lectures=lectures, videos=videos) return render_template('course.html', course=courses, lectures=lectures, videos=videos)
@app.route('/faq') @app.route('/faq')
@register_navbar('FAQ', icon='question-sign') @register_navbar('FAQ', icon='question-sign')
...@@ -168,7 +168,7 @@ def faq(): ...@@ -168,7 +168,7 @@ def faq():
@app.route('/play/<int:id>') @app.route('/play/<int:id>')
@handle_errors('course', 'Diese Vorlesung existiert nicht!', 404, IndexError) @handle_errors('course', 'Diese Vorlesung existiert nicht!', 404, IndexError)
def play(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 FROM videos JOIN formats ON (videos.video_format = formats.id) WHERE lecture_id = ? AND (? OR visible)', id, ismod())
if not videos: if not videos:
...@@ -176,7 +176,7 @@ def play(id): ...@@ -176,7 +176,7 @@ def play(id):
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())
if not courses: if not courses:
return render_endpoint('course', 'Diese Veranstaltung existiert nicht!'), 404 return render_endpoint('course', 'Diese Veranstaltung existiert nicht!'), 404
return render_template('play.html', course=courses[0], lecture=lectures[0], videos=videos) return render_template('lecture.html', course=courses[0], lecture=lectures[0], videos=videos)
@app.route('/search') @app.route('/search')
def search(): def search():
...@@ -246,7 +246,7 @@ def edit(prefix="", ignore=[]): ...@@ -246,7 +246,7 @@ def edit(prefix="", ignore=[]):
@app.route('/newcourse', methods=['GET', 'POST']) @app.route('/newcourse', methods=['GET', 'POST'])
@mod_required @mod_required
def newcourse(): def new_course():
id = query(''' id = query('''
INSERT INTO courses_data INSERT INTO courses_data
(visible, title, short, handle, organizer, subject, created_by, time_created, (visible, title, short, handle, organizer, subject, created_by, time_created,
...@@ -261,7 +261,7 @@ def newcourse(): ...@@ -261,7 +261,7 @@ def newcourse():
@app.route('/newlecture/<courseid>', methods=['GET', 'POST']) @app.route('/newlecture/<courseid>', methods=['GET', 'POST'])
@mod_required @mod_required
def newlecture(courseid): def new_lecture(courseid):
id = query(''' id = query('''
INSERT INTO lectures_data INSERT INTO lectures_data
(course_id, visible, drehplan, title, comment, internal, speaker, place, (course_id, visible, drehplan, title, comment, internal, speaker, place,
...@@ -380,9 +380,9 @@ def stats(): ...@@ -380,9 +380,9 @@ def stats():
@app.route('/log') @app.route('/log')
@register_navbar('Changelog', 'book') @register_navbar('Changelog', 'book')
@mod_required @mod_required
def log(): 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('log.html', changelog=changelog) return render_template('changelog.html', changelog=changelog)
@app.route('/files/<filename>') @app.route('/files/<filename>')
def files(filename): def files(filename):
......
File moved
{% from 'macros.html' import course_list_item %} {% from 'macros.html' import lecture_list_item %}
{% from 'macros.html' import valueeditor %}
{% from 'macros.html' import valuecheckbox %}
{% from 'macros.html' import preview %}
{% extends "base.html" %} {% extends "base.html" %}
{% block content %} {% block content %}
<div class="row"> <div class="panel panel-default">
<div class="col-xs-12 dropdown" style="margin-bottom: 10px;"> <div class="panel-heading">
<span class="pull-right"> <h1 class="panel-title">{{ valueeditor(['courses',course.id,'title'], course.title)}}</h1>
<a class="fa fa-rss-square pull-right btn btn-default" aria-hidden="true" href="{{url_for('feed_courses')}}"></a> </div>
{% if ismod() %} <a class="btn btn-default" style="margin-right: 5px;" href="{{ url_for('newcourse', ref=request.url) }}">Neue Veranstaltung</a> {% endif %} <div class="row panel-body">
<div class="col-xs-12">
<button class="btn btn-primary dropdown-toggle pull-right" type="button" data-toggle="dropdown">Gruppierung <table class="table-condensed">
<span class="caret"></span></button> <tbody>
<ul class="dropdown-menu dropdown-menu-right"> <tr><td>Semester:</td><td>{{ valueeditor(['courses',course.id,'semester'], course.semester) }}</td></tr>
<li><a href="?groupedby=semester">Semester</a></li> <tr><td>Veranstalter:</td><td>{{ valueeditor(['courses',course.id,'organizer'], course.organizer) }}</td></tr>
<li><a href="?groupedby=title">Veranstaltungen</a></li> <tr><td>Bemerkungen:</td><td>{{ valueeditor(['courses',course.id,'description'], course.description) }}</td></tr>
<li><a href="?groupedby=organizer">Dozenten</a></li> {% if ismod() %}
</ul> <tr><td>Sichtbar:</td><td>{{ valuecheckbox(['courses',course.id,'visible'], course.visible) }}</td></tr>
</span> <tr><td>Gelistet:</td><td>{{ valuecheckbox(['courses',course.id,'listed'], course.listed) }}</td></tr>
<tr><td>Short:</td><td>{{ valueeditor(['courses',course.id,'short'], course.short) }}</td></tr>
<tr><td>Handle:</td><td>{{ valueeditor(['courses',course.id,'handle'], course.handle) }}</td></tr>
<tr><td>Downloadable:</td><td>{{ valuecheckbox(['courses',course.id,'downloadable'], course.downloadable) }}</td></tr>
<tr><td>Thema:</td><td>{{ valueeditor(['courses',course.id,'subject'], course.subject) }}</td></tr>
<tr><td>Zuständig:</td><td>{{ valueeditor(['courses',course.id,'responsible'], course.responsible) }}</td></tr>
{% endif %}
</tbody>
</table>
</div> </div>
</div> </div>
{% for g in courses|groupby(groupedby)|reverse %} </div>
<div class="row panel-group"> <div class="panel panel-default">
<div class="col-xs-12"><div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
{% if groupedby == 'semester' %} <h1 class="panel-title">Videos{% if ismod() %} <a class="btn btn-default" style="margin-right: 5px;" href="{{ url_for('new_lecture', courseid=course.id, ref=request.url) }}">Neuer Termin</a><a class="btn btn-default" style="margin-right: 5px;" href="{{url_for('import_from', id=course['id'])}}">Campus Import</a>{% endif %} <a class="fa fa-rss-square pull-right" aria-hidden="true" href="{{url_for('feed', handle=course.handle)}}"></a> </h1>
<h1 class="panel-title">{{g.grouper|semester(long=True)}}</h1>
{% else %}
<h1 class="panel-title">{{g.grouper}}</h1>
{% endif %}
</div> </div>
<ul class="{% if not ismod() %}courses-list {% endif %}list-group"> <ul class="list-group lectureslist">
{% for i in g.list %} {% for l in lectures %}
{% if groupedby == 'semester' %} {{ lecture_list_item(l,videos|selectattr('lecture_id','equalto',l.id)|list) }}
{{ course_list_item(i) }}
{% else %}
{{ course_list_item(i,true) }}
{% endif %}
{% endfor %} {% endfor %}
</ul> </ul>
</div></div>
</div> </div>
{% endfor %}
{% endblock %} {% endblock %}
{% from 'macros.html' import lecture_list_item %}
{% from 'macros.html' import valueeditor %}
{% from 'macros.html' import valuecheckbox %}
{% from 'macros.html' import preview %}
{% extends "base.html" %}
{% block content %}
<div class="panel panel-default">
<div class="panel-heading">
<h1 class="panel-title">{{ valueeditor(['courses',course.id,'title'], course.title)}}</h1>
</div>
<div class="row panel-body">
<div class="col-xs-12">
<table class="table-condensed">
<tbody>
<tr><td>Semester:</td><td>{{ valueeditor(['courses',course.id,'semester'], course.semester) }}</td></tr>
<tr><td>Veranstalter:</td><td>{{ valueeditor(['courses',course.id,'organizer'], course.organizer) }}</td></tr>
<tr><td>Bemerkungen:</td><td>{{ valueeditor(['courses',course.id,'description'], course.description) }}</td></tr>
{% if ismod() %}
<tr><td>Sichtbar:</td><td>{{ valuecheckbox(['courses',course.id,'visible'], course.visible) }}</td></tr>
<tr><td>Gelistet:</td><td>{{ valuecheckbox(['courses',course.id,'listed'], course.listed) }}</td></tr>
<tr><td>Short:</td><td>{{ valueeditor(['courses',course.id,'short'], course.short) }}</td></tr>
<tr><td>Handle:</td><td>{{ valueeditor(['courses',course.id,'handle'], course.handle) }}</td></tr>
<tr><td>Downloadable:</td><td>{{ valuecheckbox(['courses',course.id,'downloadable'], course.downloadable) }}</td></tr>
<tr><td>Thema:</td><td>{{ valueeditor(['courses',course.id,'subject'], course.subject) }}</td></tr>
<tr><td>Zuständig:</td><td>{{ valueeditor(['courses',course.id,'responsible'], course.responsible) }}</td></tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h1 class="panel-title">Videos{% if ismod() %} <a class="btn btn-default" style="margin-right: 5px;" href="{{ url_for('newlecture', courseid=course.id, ref=request.url) }}">Neuer Termin</a><a class="btn btn-default" style="margin-right: 5px;" href="{{url_for('import_from', id=course['id'])}}">Campus Import</a>{% endif %} <a class="fa fa-rss-square pull-right" aria-hidden="true" href="{{url_for('feed', handle=course.handle)}}"></a> </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>
{% endblock %}
{% from 'macros.html' import course_list_item %}
{% extends "base.html" %}
{% block content %}
<div class="row">
<div class="col-xs-12 dropdown" style="margin-bottom: 10px;">
<span class="pull-right">
<a class="fa fa-rss-square pull-right btn btn-default" aria-hidden="true" href="{{url_for('courses_feed')}}"></a>
{% if ismod() %} <a class="btn btn-default" style="margin-right: 5px;" href="{{ url_for('new_course', ref=request.url) }}">Neue Veranstaltung</a> {% endif %}
<button class="btn btn-primary dropdown-toggle pull-right" type="button" data-toggle="dropdown">Gruppierung
<span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right">
<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>
</span>
</div>
</div>
{% 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">
{% if groupedby == 'semester' %}
<h1 class="panel-title">{{g.grouper|semester(long=True)}}</h1>
{% else %}
<h1 class="panel-title">{{g.grouper}}</h1>
{% endif %}
</div>
<ul class="{% if not ismod() %}courses-list {% endif %}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 %}
{% endblock %}
...@@ -13,7 +13,7 @@ Veranstalter: {{ course.organizer }}<br> ...@@ -13,7 +13,7 @@ Veranstalter: {{ course.organizer }}<br>
<name>Video AG, FSMPI, RWTH Aachen</name> <name>Video AG, FSMPI, RWTH Aachen</name>
<email>video@fsmpi.rwth-aachen.de</email> <email>video@fsmpi.rwth-aachen.de</email>
</author> </author>
<link rel="alternate" href="{{ url_for('course', _external=True) }}"/> <link rel="alternate" href="{{ url_for('courses', _external=True) }}"/>
<link rel="self" href="{{ request.url }}"/> <link rel="self" href="{{ request.url }}"/>
<icon>{{ url_for('static', filename='favicon.png', _external=True) }}</icon> <icon>{{ url_for('static', filename='favicon.png', _external=True) }}</icon>
<logo>https://videoag.fsmpi.rwth-aachen.de/site/video-logo-150px.png</logo> <logo>https://videoag.fsmpi.rwth-aachen.de/site/video-logo-150px.png</logo>
...@@ -29,7 +29,7 @@ Veranstalter: {{ course.organizer }}<br> ...@@ -29,7 +29,7 @@ Veranstalter: {{ course.organizer }}<br>
<name>{{ course.organizer|e }}</name> <name>{{ course.organizer|e }}</name>
</author> </author>
{% endif %} {% endif %}
<link rel="alternate" href="{{ url_for('course_id', id=course.handle, _external=True) }}"/> <link rel="alternate" href="{{ url_for('course', handle=course.handle, _external=True) }}"/>
<link rel="alternate" href="{{ url_for('feed', handle=course.handle, _external=True) }}" type="application/atom+xml" title="Feed"/> <link rel="alternate" href="{{ url_for('feed', handle=course.handle, _external=True) }}" type="application/atom+xml" title="Feed"/>
<summary type="html">{{ summary(course)|e }}</summary> <summary type="html">{{ summary(course)|e }}</summary>
</entry> </entry>
......
{% macro summary(entry) %} {% macro summary(entry) %}
{% if not course.handle %} {% if not course.handle %}
Veranstaltung: <a href="{{ url_for('course_id', id=entry.course_handle) }}">{{entry.course_title}}</a><br> Veranstaltung: <a href="{{ url_for('course', handle=entry.course_handle) }}">{{entry.course_title}}</a><br>
{% if entry.course_organizer %} {% if entry.course_organizer %}
Veranstalter: {{ entry.course_organizer }}<br> Veranstalter: {{ entry.course_organizer }}<br>
{% endif %} {% endif %}
...@@ -11,7 +11,7 @@ Gehalten von {{ entry.speaker }}<br> ...@@ -11,7 +11,7 @@ Gehalten von {{ entry.speaker }}<br>
{{ entry.comment }} {{ entry.comment }}
{% endmacro %} {% endmacro %}
{% macro subtitle() %} {% macro subtitle() %}
Veranstaltung: <a href="{{ url_for('course_id', id=course.handle) }}">{{course.title}}</a><br> Veranstaltung: <a href="{{ url_for('course', handle=course.handle) }}">{{course.title}}</a><br>
{% if course.organizer %} {% if course.organizer %}
Veranstalter: {{ course.organizer }}<br> Veranstalter: {{ course.organizer }}<br>
{% endif %} {% endif %}
...@@ -26,9 +26,9 @@ Veranstalter: {{ course.organizer }}<br> ...@@ -26,9 +26,9 @@ Veranstalter: {{ course.organizer }}<br>
<email>video@fsmpi.rwth-aachen.de</email> <email>video@fsmpi.rwth-aachen.de</email>
</author> </author>
{% if not course.handle %} {% if not course.handle %}
<link rel="alternate" href="{{ url_for('course', _external=True) }}" /> <link rel="alternate" href="{{ url_for('courses', _external=True) }}" />
{% else %} {% else %}
<link rel="alternate" href="{{ url_for('course_id', id=course.handle, _external=True) }}" /> <link rel="alternate" href="{{ url_for('course', handle=course.handle, _external=True) }}" />
{% endif %} {% endif %}
<link rel="self" href="{{ request.url }}" /> <link rel="self" href="{{ request.url }}" />
<icon>{{ url_for('static', filename='favicon.png', _external=True) }}</icon> <icon>{{ url_for('static', filename='favicon.png', _external=True) }}</icon>
...@@ -53,7 +53,7 @@ Veranstalter: {{ course.organizer }}<br> ...@@ -53,7 +53,7 @@ Veranstalter: {{ course.organizer }}<br>
<name>{{ entry.speaker }}</name> <name>{{ entry.speaker }}</name>
</author> </author>
{% endif %} {% endif %}
<link rel="alternate" href="{{ url_for('play', id=entry.id, _external=True) }}"/> <link rel="alternate" href="{{ url_for('lecture', id=entry.id, _external=True) }}"/>
<link rel="enclosure" href="{{ url_for('files', filename=entry.path, _external=True)}}" length="{{ entry.file_size }}"/> <link rel="enclosure" href="{{ url_for('files', filename=entry.path, _external=True)}}" length="{{ entry.file_size }}"/>
<id>{{ entry.atomid }}</id> <id>{{ entry.atomid }}</id>
<updated>{{ entry.updated|rfc3339 }}</updated> <updated>{{ entry.updated|rfc3339 }}</updated>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="panel-group"> <div class="panel-group">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h1 class="panel-title">Campus Import für <strong>{{course.title}}</strong> <span><a href="{{url_for('course_id', numid=course.id)}}" class="btn btn-default" >Zur Veranstaltungsseite</a><span> </h1> <h1 class="panel-title">Campus Import für <strong>{{course.title}}</strong> <span><a href="{{url_for('course', handle=course.handle)}}" class="btn btn-default" >Zur Veranstaltungsseite</a><span> </h1>
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div> <div>
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<div class="row" style="padding: 0px;"> <div class="row" style="padding: 0px;">
<div class="col-sm-6 col-xs-12" style="padding-bottom: 5px;"> <div class="col-sm-6 col-xs-12" style="padding-bottom: 5px;">
<span> <span>
<a href="{{url_for('course_id', numid=course.id)}}#lecture-{{lecture.id}}" class="btn btn-default" >Zur Veranstaltungsseite</a> <a href="{{url_for('course', handle=course.handle)}}#lecture-{{lecture.id}}" class="btn btn-default" >Zur Veranstaltungsseite</a>
<span> <span>
</div> </div>
<div class="col-sm-6 col-xs-12"> <div class="col-sm-6 col-xs-12">
......
{% macro preview(lecture) %} {% macro preview(lecture) %}
<li class="list-group-item"> <li class="list-group-item">
<a class="hidden-xs" href="{{url_for('play', id=lecture['id'])}}" title="{{ lecture['coursetitle'] }}"> <a class="hidden-xs" href="{{url_for('lecture', id=lecture['id'])}}" title="{{ lecture['coursetitle'] }}">
<div class="row"> <div class="row">
<img class="col-xs-4" src="{{ config.VIDEOPREFIX }}/{{ lecture['titlefile'] }}" alt="Vorschaubild"> <img class="col-xs-4" src="{{ config.VIDEOPREFIX }}/{{ lecture['titlefile'] }}" alt="Vorschaubild">
<div class="col-xs-4"> <div class="col-xs-4">
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</div> </div>
</div> </div>
</a> </a>
<a class="visible-xs" href="{{url_for('play', id=lecture['id'])}}" title="{{ lecture['coursetitle'] }}"> <a class="visible-xs" href="{{url_for('lecture', id=lecture['id'])}}" title="{{ lecture['coursetitle'] }}">
<div class="row"> <div class="row">
<img class="col-xs-12" src="{{ config.VIDEOPREFIX }}/{{ lecture['titlefile'] }}" alt="Vorschaubild"> <img class="col-xs-12" src="{{ config.VIDEOPREFIX }}/{{ lecture['titlefile'] }}" alt="Vorschaubild">
</div> </div>
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
{% macro course_list_item(course,show_semester=False) %} {% 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 %}"> <li class="list-group-item {% if (not course.visible) or (not course.listed) %}list-group-item-danger{% endif %}">
<div class="row"> <div class="row">
<a href="{{url_for('course_id', numid=course.id)}}"> <a href="{{url_for('course', handle=course.handle)}}">
{% if show_semester %} {% if show_semester %}
<span class="col-xs-1"> <span class="col-xs-1">
{{ course.semester }} {{ course.semester }}
...@@ -157,7 +157,7 @@ $('#embedcodebtn').popover( ...@@ -157,7 +157,7 @@ $('#embedcodebtn').popover(
<span> <span>
{{ video_download_btn(videos) }} {{ video_download_btn(videos) }}
</span> </span>
<a href="{{url_for('play', id=lecture.id)}}" class="btn btn-default {% if videos|length is equalto 0 %}disabled{% endif %}"> <a href="{{url_for('lecture', id=lecture.id)}}" class="btn btn-default {% if videos|length is equalto 0 %}disabled{% endif %}">
<span class="glyphicon glyphicon-play"></span> <span class="glyphicon glyphicon-play"></span>
Play Play
</a> </a>
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
{% for l in d.lectures|selectattr('schedule_col','equalto',i) if (((l.time.time() > t) and (l.time.time() < times[time_loop.index+1])) != (l.time.time() == t ) ) %} {% for l in d.lectures|selectattr('schedule_col','equalto',i) if (((l.time.time() > t) and (l.time.time() < times[time_loop.index+1])) != (l.time.time() == t ) ) %}
<td rowspan="{{l.duration / 15}}" style="background: lightgrey;"> <td rowspan="{{l.duration / 15}}" style="background: lightgrey;">
<p class="small"> <p class="small">
<strong><a href="{{url_for('course_id', numid=l['course_id'])}}#lecture-{{l.id}}">{{l.short}}</a></strong><br> <strong><a href="{{url_for('course', handle=l.handle)}}#lecture-{{l.id}}">{{l.short}}</a></strong><br>
{{l.time.strftime("%H:%M")}} - {{l.time_end.strftime("%H:%M")}}<br> {{l.time.strftime("%H:%M")}} - {{l.time_end.strftime("%H:%M")}}<br>
{{l.place}}</p> {{l.place}}</p>
</td> </td>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment