From 456510186444a31c6842ba5221bcaf360df5bea3 Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Wed, 7 Sep 2016 00:38:21 +0200
Subject: [PATCH] Added backend support for featured articles

---
 db_schema.sql | 11 +++++++++++
 server.py     | 12 +++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/db_schema.sql b/db_schema.sql
index 29ef180..452a4ed 100644
--- a/db_schema.sql
+++ b/db_schema.sql
@@ -194,6 +194,17 @@ CREATE TABLE IF NOT EXISTS `announcements` (
   `time_updated` datetime NOT NULL,
   `created_by` INTEGER NOT NULL
 );
+CREATE TABLE IF NOT EXISTS `featured` (
+`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+	`title` text NOT NULL DEFAULT "Neuer Artikel",
+	`text` text NOT NULL DEFAULT "",
+	`internal` text NOT NULL DEFAULT "",
+	`visible` INTEGER NOT NULL DEFAULT 0,
+	`deleted` INTEGER NOT NULL DEFAULT 0,
+  `time_created` datetime NOT NULL,
+  `time_updated` datetime NOT NULL,
+  `created_by` INTEGER NOT NULL
+);
 
 CREATE VIEW IF NOT EXISTS `courses` AS select * from `courses_data` where (not(`courses_data`.`deleted`));
 CREATE VIEW IF NOT EXISTS `lectures` AS select * from `lectures_data` where (not(`lectures_data`.`deleted`));
diff --git a/server.py b/server.py
index dd4b172..3b9e713 100755
--- a/server.py
+++ b/server.py
@@ -144,7 +144,8 @@ def index():
 		GROUP BY videos.lecture_id
 		ORDER BY lastvidtime DESC
 		LIMIT 6	''',ismod())
-	return render_template('index.html', latestvideos=latestvideos, upcomming=upcomming)
+	featured = query('SELECT * FROM featured WHERE NOT deleted AND (? OR visible)', ismod())
+	return render_template('index.html', latestvideos=latestvideos, upcomming=upcomming, featured=featured)
 
 @app.route('/course')
 @register_navbar('Videos', icon='film')
@@ -384,6 +385,15 @@ def new_announcement():
 		return redirect(request.values['ref'])
 	return id,  200
 
+@app.route('/newfeatured', methods=['POST', 'GET'])
+@mod_required
+def new_featured():
+	id = query('INSERT INTO featured (time_created, time_updated, created_by) VALUES (?, ?, ?)',
+			datetime.now(), datetime.now(), session.get('user', {'dbid':None})['dbid'])
+	if 'ref' in request.values:
+		return redirect(request.values['ref'])
+	return id,  200
+
 import feeds
 import importer
 import schedule
-- 
GitLab