From ffad2ba1e937b10d813bafac7ea472d05c061f2c Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Mon, 1 Jan 2018 23:57:55 +0100
Subject: [PATCH] Implemented user-specific ical exports

---
 icalexport.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/icalexport.py b/icalexport.py
index 2f5c3ad..af40aed 100644
--- a/icalexport.py
+++ b/icalexport.py
@@ -52,6 +52,28 @@ def ical_all():
 				FROM lectures JOIN courses ON courses.id = lectures.course_id
 				WHERE NOT norecording AND NOT external ORDER BY time DESC LIMIT 1000'''),'videoag_all.ics')
 
+@app.route('/internal/ical/user/<int:user>')
+@calperm
+def ical_user(user):
+	username = query('SELECT name FROM users WHERE users.id = ?', user)[0]['name']
+	return export_lectures(query('''SELECT lectures.*, "course" AS sep, courses.*
+				FROM lectures
+				JOIN courses ON courses.id = lectures.course_id
+				JOIN responsible ON responsible.course_id = courses.id
+				WHERE NOT norecording AND NOT external AND responsible.user_id = ?
+				ORDER BY time DESC LIMIT 1000''', user),'videoag_%s.ics'%username)
+
+@app.route('/internal/ical/notuser/<int:user>')
+@calperm
+def ical_notuser(user):
+	username = query('SELECT name FROM users WHERE users.id = ?', user)[0]['name']
+	return export_lectures(query('''SELECT lectures.*, "course" AS sep, courses.*
+				FROM lectures
+				JOIN courses ON courses.id = lectures.course_id
+				LEFT JOIN responsible ON (responsible.course_id = courses.id AND responsible.user_id = ?)
+				WHERE NOT norecording AND NOT external AND responsible.user_id IS NULL
+				ORDER BY time DESC LIMIT 1000''', user),'videoag_not_%s.ics'%username)
+
 @app.route('/internal/ical/course/<course>')
 @calperm
 def ical_course(course):
-- 
GitLab