diff --git a/icalexport.py b/icalexport.py index f669d0fdfd5ed178957d13fa169674a742f6da64..b2a83989640cbbae780ec96560b8105d2b18c069 100644 --- a/icalexport.py +++ b/icalexport.py @@ -47,14 +47,18 @@ def calperm(func): @app.route('/internal/ical/semester/<semester>') @calperm def ical_semester(semester): - return export_lectures(query('SELECT lectures.* FROM lectures JOIN courses ON courses.id = lectures.course_id WHERE courses.semester = ? AND lectures.visible = 1', semester),'videoag_semester_'+semester+'.ics') + if semester == 'zeitlos': + semester_q = '' + else: + semester_q = semester + return export_lectures(query('SELECT lectures.* FROM lectures JOIN courses ON courses.id = lectures.course_id WHERE courses.semester = ? AND lectures.visible = 1', semester_q),'videoag_semester_'+semester+'.ics') @app.route('/internal/ical/all') @calperm def ical_all(): return export_lectures(query('SELECT lectures.* FROM lectures lectures.visible = 1', semester),'videoag_all.ics') -@app.route('/internal/ical/handle/<course>') +@app.route('/internal/ical/course/<course>') @calperm def ical_course(course): - return export_lectures(query('SELECT lectures.* FROM lectures JOIN handles ON courses.id = lectures.course_id WHERE courses.handle = ? AND lectures.visible = 1', course),'videoag_course_'+course+'.ics') + return export_lectures(query('SELECT lectures.* FROM lectures JOIN courses ON courses.id = lectures.course_id WHERE courses.handle = ? AND lectures.visible = 1', course),'videoag_course_'+course+'.ics') diff --git a/templates/course.html b/templates/course.html index 68aa9a4d11c411665cbcbb5e2e3f8814d25760cd..ac596e7ff5acbda3c216bfff9c4d95ed3326b44c 100644 --- a/templates/course.html +++ b/templates/course.html @@ -75,7 +75,21 @@ <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('create', table='lectures', time=datetime.now(), title='Noch kein Titel', visible='0', course_id=course.id, ref=url_for('course', id=course.id)) }}">Neuer Termin</a><a class="btn btn-default" style="margin-right: 5px;" href="{{url_for('list_import_sources', 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)}}" style="text-decoration: none"></a> </h1> + <h1 class="panel-title">Videos + {% if ismod() %} + <a class="btn btn-default" style="margin-right: 5px;" href="{{ url_for('create', table='lectures', time=datetime.now(), title='Noch kein Titel', visible='0', course_id=course.id, ref=url_for('course', id=course.id)) }}">Neuer Termin</a> + <a class="btn btn-default" style="margin-right: 5px;" href="{{url_for('list_import_sources', id=course['id'])}}">Campus Import</a> + {% endif %} + <ul class="list-inline pull-right"> + <li> + <a class="fa fa-rss-square" aria-hidden="true" href="{{url_for('feed', handle=course.handle)}}" style="text-decoration: none"></a> + </li> + {% if ismod() %} + <li> + <a class="fa fa-calendar" aria-hidden="true" href="{{url_for('ical_course', course=course.handle)}}" style="text-decoration: none"></a> + </li> + {% endif %} + </h1> </div> <ul class="list-group lectureslist"> {% for l in lectures %} diff --git a/templates/courses.html b/templates/courses.html index 70c0dd10b2fbb70d9b03065bb322e40fb6bd4572..f41f4434a379a48fd7c9fc91918515799aa9ad9e 100644 --- a/templates/courses.html +++ b/templates/courses.html @@ -8,6 +8,9 @@ <a class="fa fa-rss-square btn btn-default" aria-hidden="true" href="{{url_for('courses_feed')}}" style="text-decoration: none"></a> </li> {% if ismod() %} + <li> + <a class="fa fa-calendar btn btn-default" aria-hidden="true" href="{{url_for('ical_all')}}" style="text-decoration: none"></a> + </li> <li> {% set newhandle = 'new'+(randint(0,1000)|string) %} <a class="btn btn-default" href="{{ url_for('create', table='courses', handle=newhandle, title='Neue Veranstaltung', responsible=session.user.givenName, ref=url_for('course', handle=newhandle)) }}">Neue Veranstaltung</a> @@ -56,7 +59,16 @@ <div class="panel-heading"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion-{{ g.grouper|tagid }}" href="#{{g.grouper|tagid}}" style="color: #222;"> {% if groupedby == 'semester' %} - <h1 class="panel-title">{{g.grouper|semester(long=True)}} ({{g.list|length}} Veranstaltungen)</h1> + <h1 class="panel-title">{{g.grouper|semester(long=True)}} ({{g.list|length}} Veranstaltungen) + <ul class="list-inline pull-right"> + {% if ismod() %} + <li> + <a class="fa fa-calendar" aria-hidden="true" href="{{url_for('ical_semester', semester=g.grouper)}}" style="text-decoration: none"></a> + </li> + {% endif %} + </ul> + + </h1> {% else %} <h1 class="panel-title">{{g.grouper}}</h1> {% endif %} diff --git a/templates/timetable.html b/templates/timetable.html index f0dfa4d9f11142df8bb12fd797581fa659c9ca4d..319e322d1ca3b7d5ffe25773c80429e85ce379f6 100644 --- a/templates/timetable.html +++ b/templates/timetable.html @@ -3,7 +3,9 @@ <div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="hidden-print panel-heading"> - <h1 class="panel-title">Drehplan</h1> + <h1 class="panel-title">Drehplan + <a class="pull-right fa fa-calendar" aria-hidden="true" href="{{url_for('ical_all')}}" style="text-decoration: none"></a> + </h1> </div> <div class="row hidden-print"> <div style="margin-top: 10px;" class="col-xs-12">