From 25683ada57ff5e2bfc84096a9dad611a73f57d5e Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Wed, 26 Apr 2017 04:17:35 +0200
Subject: [PATCH] Added norecording property to lectures, closes #213

---
 db_schema.sql         | 3 ++-
 edit.py               | 3 ++-
 server.py             | 2 +-
 templates/macros.html | 3 ++-
 timetable.py          | 2 +-
 5 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/db_schema.sql b/db_schema.sql
index 85036ec..f47c8b9 100644
--- a/db_schema.sql
+++ b/db_schema.sql
@@ -98,7 +98,8 @@ CREATE TABLE IF NOT EXISTS `lectures_data` (
   `time_updated` datetime NOT NULL,
   `jumplist` text NOT NULL DEFAULT '',
   `titlefile` varchar(255) NOT NULL DEFAULT '',
-  `live` INTEGER NOT NULL DEFAULT 0
+  `live` INTEGER NOT NULL DEFAULT 0,
+  `norecording` INTEGER NOT NULL DEFAULT 0
 );
 CREATE TABLE IF NOT EXISTS `places` (
   `place` varchar(20) NOT NULL PRIMARY KEY,
diff --git a/edit.py b/edit.py
index a00f7a6..77c8d92 100644
--- a/edit.py
+++ b/edit.py
@@ -41,7 +41,8 @@ editable_tables = {
 			'duration':	{'type': 'duration'},
 			'jumplist':	{'type': ''},
 			'deleted':	{'type': 'boolean'},
-			'live': {'type': 'boolean'}},
+			'live': {'type': 'boolean'},
+			'norecording': {'type': 'boolean'}},
 		'creationtime_fields': ['course_id', 'time_created', 'time_updated'] },
 	'videos': {
 		'table': 'videos_data',
diff --git a/server.py b/server.py
index 288b462..1e7bcab 100644
--- a/server.py
+++ b/server.py
@@ -331,7 +331,7 @@ def index():
 		SELECT lectures.*, "course" AS sep, courses.*
 		FROM lectures
 		JOIN courses ON (lectures.course_id = courses.id)
-		WHERE (time > ?) AND (time < ?) and lectures.visible and courses.visible and courses.listed
+		WHERE (time > ?) AND (time < ?) and lectures.visible and courses.visible and courses.listed and not lectures.norecording
 		ORDER BY time ASC LIMIT 30''',start,end)
 	for i in upcomming:
 		i['date'] = i['time'].date()
diff --git a/templates/macros.html b/templates/macros.html
index c57cb0b..7ea2068 100644
--- a/templates/macros.html
+++ b/templates/macros.html
@@ -165,7 +165,7 @@ $('#embedcodebtn').popover(
 {% endmacro %}
 
 {% macro lecture_list_item(lecture,videos,global_permissions) %}
-<li class="list-group-item" id="lecture-{{lecture.id}}">
+<li class="list-group-item{% if lecture.norecording %} text-muted{% endif %}" id="lecture-{{lecture.id}}">
 	<div class="row">
 		<div style="background-image: url('{{ config.VIDEOPREFIX }}/thumbnail/l_{{lecture.id}}.jpg')" class="col-sm-2 col-xs-12 thumbnailimg">
 		{% if not videos|length is equalto 0 %}
@@ -189,6 +189,7 @@ $('#embedcodebtn').popover(
 			<li>{{ moderator_editor(['lectures',lecture.id,'internal'], lecture.internal) }}</li>
 			<li>Sichtbar: {{ moderator_checkbox(['lectures',lecture.id,'visible'], lecture.visible) }}</li>
 			<li>Livestream geplant: {{ moderator_checkbox(['lectures',lecture.id,'live'], lecture.live) }}</li>
+			<li>Wird nicht aufgenommen: {{ moderator_checkbox(['lectures',lecture.id,'norecording'], lecture.norecording) }}</li>
 			<li>Hörsaal: {{ moderator_editor(['lectures',lecture.id,'place'], lecture.place) }} </li>
 			{% endif %}
 		</ul>
diff --git a/timetable.py b/timetable.py
index 2ccb548..1fee5bb 100644
--- a/timetable.py
+++ b/timetable.py
@@ -26,7 +26,7 @@ def timetable():
 					SELECT lectures.*, courses.short, "course" AS sep, courses.*
 					FROM lectures 
 					JOIN courses ON (lectures.course_id = courses.id) 
-					WHERE time < ? and time > ?
+					WHERE time < ? AND time > ? AND NOT norecording
 					ORDER BY time ASC''', i['date']+timedelta(weeks=2), i['date']-timedelta(weeks=2)):
 			# we can not use the where clause of sql to match against the time, because sqlite and mysql use a different syntax -.-
 			# we still use it to only get the lectures for a 3 week periode
-- 
GitLab