diff --git a/app/views/general.py b/app/views/general.py
index 635386c..ba160c7 100644
--- a/app/views/general.py
+++ b/app/views/general.py
@@ -2,6 +2,8 @@
import os
from datetime import datetime, timedelta
+import yaml
+
from flask import Flask, render_template, make_response
from flask import request
from flask import Blueprint, abort
@@ -9,8 +11,6 @@ from flask import current_app as app
from flask import send_from_directory, url_for
from flask_login import login_required
-import yaml
-
from models import Location, Order
# import views
from views.order import get_orders
@@ -33,70 +33,52 @@ def home() -> str:
@general_bp.route("/css")
def css():
"Generate the css"
- if (request.cookies.get('performance') and request.cookies.get('performance') == 'highPerformance'):
+ if request.cookies.get('performance', '') == 'highPerformance':
cssPath = 'static/css/themes/highPerformance/'
else:
cssPath = 'static/css/themes/lowPerformance/'
- if request.cookies.get('theme'):
- if request.cookies['theme'] == 'customTheme':
- #TODO: The custom theme is hardcoded :(. Make the server auto select a custom team.
- # Here seasonal themes will be returned; matching the current date.
+ cookie_theme = request.cookies.get('theme', '')
+ if cookie_theme == 'customTheme':
+ # Here seasonal themes will be returned; matching the current date.
- # Open the YAML file with all the themes.
- path = os.path.join(str(app.root_path), "views/themes.yml")
- with open(path, 'r') as stream:
- data = yaml.safe_load(stream)
- # Build a dictionary from the YAML file with all the themes and there attributes.
- themes = {}
- for item in data:
- key = list(item.keys())[0]
- themes[key] = item[key]
-
- # Get the current date.
- current_day = datetime.now().day
- current_month = datetime.now().month
+ # Open the YAML file with all the themes.
+ path = os.path.join(app.root_path, "views/themes.yml")
+ with open(path, 'r') as stream:
+ data = yaml.safe_load(stream)
+ # Build a dictionary from the YAML file with all the themes and there attributes.
+ themes = {}
+ for item in data:
+ key = list(item.keys())[0]
+ themes[key] = item[key]
- # Check each theme in the dictionary and return the first one that is "correct"
- for theme in themes.values():
- if theme['type'] == 'static-date':
- start_day, start_month = theme['start'].split('/')
- start_day = int(start_day)
- start_month = int(start_month)
-
- end_day, end_month = theme['end'].split('/')
- end_day = int(end_day)
- end_month = int(end_month)
-
- if end_month < start_month:
- # Hacky (werkt nu maar kan beter)
- end_month += 12
+ # Get the current date.
+ current_date = datetime.now()
+ current_year = current_date.year
- if theme['type'] == 'static-date':
+ # Check each theme in the dictionary and return the first one that is "correct"
+ for theme in themes.values():
+ if theme['type'] == 'static-date':
+ start_day, start_month = theme['start'].split('/')
+ start_date = datetime(year=current_year, day=int(
+ start_day), month=int(start_month))
- if (((start_month == current_month) and
- (start_day <= current_day)) or
- (start_month <= current_month)):
+ end_day, end_month = theme['end'].split('/')
+ if int(start_month) > int(end_month):
+ current_year += 1
+ end_date = datetime(
+ year=current_year, day=int(end_day), month=int(end_month))
- if (((end_month == current_month) and
- (end_day >= current_day)) or
- (end_month > current_month)):
- path = os.path.join(str(app.root_path), cssPath, theme['file'])
- break
- else:
- if request.cookies['theme'] == 'darkmode' :
- path = os.path.join(str(app.root_path), "static/css/themes/lowPerformance/darkmode.css")
- else:
- path = os.path.join(str(app.root_path), "static/css/themes/lowPerformance/lightmode.css")
-
- # Tijdelijk ongebruikt tot bewezen dat het veilig is
- #try:
- # path = os.path.join(str(app.root_path), "static/css/themes/lowPerformance/", request.cookies['theme']+".css")
- # f = open(path)
- #except IOError:
- # f = open(cssPath+"lightmode.css")
+ if start_date <= current_date <= end_date:
+ path = os.path.join(app.root_path, cssPath, theme['file'])
+ break
+ elif cookie_theme == 'darkmode':
+ path = os.path.join(
+ app.root_path, "static/css/themes/lowPerformance/darkmode.css")
else:
- path = os.path.join(str(app.root_path), "static/css/themes/lowPerformance/lightmode.css")
+ path = os.path.join(
+ app.root_path, "static/css/themes/lowPerformance/lightmode.css")
+
f = open(path)
response = make_response(f.read())
response.headers['Content-Type'] = 'text/css'
@@ -146,13 +128,13 @@ def favicon() -> str:
# pylint: disable=R1705
if not get_orders((Order.stoptime > datetime.now())):
return send_from_directory(
- os.path.join(str(app.root_path), "static"),
+ os.path.join(app.root_path, "static"),
"favicon.ico",
mimetype="image/x-icon",
)
else:
return send_from_directory(
- os.path.join(str(app.root_path), "static"),
+ os.path.join(app.root_path, "static"),
"favicon_orange.ico",
mimetype="image/x-icon",
)
diff --git a/app/zeus.py b/app/zeus.py
index 043f110..4b49d74 100644
--- a/app/zeus.py
+++ b/app/zeus.py
@@ -31,7 +31,7 @@ def authorized() -> typing.Any:
request.args["error_description"],
)
if isinstance(resp, OAuthException):
- return "Access denied: %s" % resp.message + "
" + str(resp.data)
+ return f"Access denied: {resp.message}
{resp.data}"
session["zeus_token"] = (resp["access_token"], "")
me = current_app.zeus.get("current_user/")