From 2f255298dcf7487eff8cc7a729d7c43bfa6c7e1f Mon Sep 17 00:00:00 2001 From: Julian Rother <julianr@fsmpi.rwth-aachen.de> Date: Sun, 9 Apr 2017 22:09:01 +0200 Subject: [PATCH] Added panel type "courses" --- db_example.sql | 2 +- db_schema.sql | 1 + server.py | 7 ++++++- templates/index.html | 17 ++++++++++++++++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/db_example.sql b/db_example.sql index 9cdcded..659dd74 100644 --- a/db_example.sql +++ b/db_example.sql @@ -14642,7 +14642,7 @@ INSERT INTO "videos_data" VALUES(9680,7011,1,0,1,'','','','pub/16ss-dsal/16ss-ds INSERT INTO "videos_data" VALUES(9681,7012,1,0,1,'','','','pub/16ss-dsal/16ss-dsal-160715-1080p_1.mp4','2016-08-07 22:54:46','2016-08-07 21:02:37','2016-08-07 21:02:43',46,1402602183,4,'e036f7cbd51afd3ab7be10cf77747c00'); INSERT INTO "videos_data" VALUES(9682,7012,1,0,1,'','','','pub/16ss-dsal/16ss-dsal-160715-360p_1.mp4','2016-08-07 22:45:34','2016-08-07 21:02:38','2016-08-07 21:02:45',46,368611109,10,'fae2bda2da55a3005aa6329a2d0227c3'); INSERT INTO "videos_data" VALUES(9683,7012,1,0,1,'','','','pub/16ss-dsal/16ss-dsal-160715-720p_1.mp4','2016-08-07 22:46:00','2016-08-07 21:02:40','2016-08-07 21:02:44',46,721141077,5,'083c0b7693c82078c513707d1402096b'); -INSERT INTO "featured" VALUES(1,'Video AG','<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>','','plain','',0,1,0,'2017-04-09 19:00:00','2017-04-09 19:00:00',0); +INSERT INTO "featured" VALUES(1,'Video AG','<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>','','plain','','',0,1,0,'2017-04-09 19:00:00','2017-04-09 19:00:00',0); INSERT INTO "sqlite_sequence" VALUES('changelog',17859); INSERT INTO "sqlite_sequence" VALUES('courses_data',303); INSERT INTO "sqlite_sequence" VALUES('formats',30); diff --git a/db_schema.sql b/db_schema.sql index 8ec94a7..071ad92 100644 --- a/db_schema.sql +++ b/db_schema.sql @@ -222,6 +222,7 @@ CREATE TABLE IF NOT EXISTS `featured` ( `internal` text NOT NULL DEFAULT '', `type` varchar(32) NOT NULL DEFAULT '', `param` text NOT NULL DEFAULT '', + `param2` text NOT NULL DEFAULT '', `order` INTEGER NOT NULL, `visible` INTEGER NOT NULL DEFAULT 0, `deleted` INTEGER NOT NULL DEFAULT 0, diff --git a/server.py b/server.py index 3f5e424..d89caab 100644 --- a/server.py +++ b/server.py @@ -331,6 +331,11 @@ def index(): if featured: newfeatured = featured[-1]['order'] + 1 featured = list(filter(lambda x: not x['deleted'], featured)) + for item in featured: + if item['type'] == 'courses': + if item['param'] not in ['title', 'semester', 'organizer', 'subject']: + continue + item['courses'] = query('SELECT * FROM courses WHERE (? OR (visible AND listed)) AND `%s` = ? ORDER BY `%s`'%(item['param'], item['param']), ismod(), item['param2']) return render_template('index.html', latestvideos=livestreams+latestvideos, upcomming=upcomming, featured=featured, newfeatured=newfeatured) @app.route('/course') @@ -496,7 +501,7 @@ tabs = { 'announcements': ('announcements', 'id', ['text', 'level', 'visible', 'deleted', 'time_publish', 'time_expire'], ['created_by', 'time_created', 'time_updated']), - 'featured': ('featured', 'id', ['title', 'text', 'internal', 'visible', 'deleted', 'param', 'order'], + 'featured': ('featured', 'id', ['title', 'text', 'internal', 'visible', 'deleted', 'param', 'param2', 'order'], ['created_by', 'time_created', 'time_updated', 'type', 'order']), 'perm': ('perm', 'id', ['type', 'param1', 'param2', 'deleted'], ['course_id', 'lecture_id', 'video_id', 'created_by', 'time_created', 'time_updated']), diff --git a/templates/index.html b/templates/index.html index 15589a5..969a015 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,4 +1,4 @@ -{% from 'macros.html' import preview %} +{% from 'macros.html' import preview, course_list_item %} {% extends "base.html" %} {% set page_border = 0 %} {% if ismod() %} @@ -59,6 +59,7 @@ <ul class="dropdown-menu"> <li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='plain', ref=request.url, order=newfeatured) }}">Nur Text</a></li> <li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='image', ref=request.url, order=newfeatured) }}">Text mit Bild</a></li> + <li><a href="{{ url_for('create', table='featured', title='Neues Panel', type='courses', param='semester', param2='', ref=request.url, order=newfeatured) }}">Veranstaltungsliste</a></li> </ul> </div> </li> @@ -101,6 +102,20 @@ {{ moderator_editor(('featured',item.id,'text'), item.text) }} </div> {% endif %} + {% if item.type == 'courses' %} + <ul class="courses-list list-group"> + {% for i in item.courses %} + {{ course_list_item(i) }} + {% endfor %} + </ul> + <div class="panel-footer"> + {% if ismod() %} + <p>Kategorie: {{ moderator_editor(('featured',item.id,'param'), item.param) }}</p> + <p>Parameter: {{ moderator_editor(('featured',item.id,'param2'), item.param2) }}</p> + {% endif %} + Die vollständige Liste findest du <a href="{{ url_for('courses') }}">hier</a>. + </div> + {% endif %} </div> {% endfor %} </div> -- GitLab