From 6bb2fe36f8749e20b5dfde622a20d73cbc997fb7 Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Sun, 4 Sep 2016 16:30:46 +0200
Subject: [PATCH] Implemented fancy semester naming

---
 server.py             | 18 +++++++++++++++---
 templates/course.html |  4 ++++
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/server.py b/server.py
index c98b620..e42c6f9 100755
--- a/server.py
+++ b/server.py
@@ -7,7 +7,7 @@ import os
 import hashlib
 import locale
 
-locale.setlocale(locale.LC_ALL, 'de_DE')
+locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
 
 app = Flask(__name__)
 
@@ -94,8 +94,20 @@ def handle_not_found(e):
 	return render_endpoint('index', 'Diese Seite existiert nicht!'), 404
 
 @app.template_filter(name='semester')
-def human_semester(s):
-	return s
+def human_semester(s, long=False):
+	if not s or s == 'zeitlos' or len(s) != 6:
+		return 'Zeitlos'
+	year = s[0:4]
+	semester = s[4:6].upper()
+	if not year.isdigit() or semester not in ['SS', 'WS']:
+		print('Invalid semester string "%s"'%s)
+		return '??'
+	if not long:
+		return semester+year[2:]
+	elif semester == 'SS':
+		return 'Sommersemester %s'%year
+	else:
+		return 'Wintersemester %s/%s'%(year, str(int(year)+1)[2:])
 
 @app.template_filter(name='date')
 def human_date(d):
diff --git a/templates/course.html b/templates/course.html
index 61c93b5..196946a 100644
--- a/templates/course.html
+++ b/templates/course.html
@@ -20,7 +20,11 @@
 <div class="row panel-group">
 	<div class="col-xs-12"><div class="panel panel-default">
 		<div class="panel-heading">
+			{% if groupedby == 'semester' %}
+			<h1 class="panel-title">{{g.grouper|semester(long=True)}}</h1>
+			{% else %}
 			<h1 class="panel-title">{{g.grouper}}</h1>
+			{% endif %}
 		</div>
 		<ul class="{% if not ismod() %}courses-list {% endif %}list-group">
 			{% for i in g.list %}
-- 
GitLab