Add css misc functions

A function to list all possible themes and a list to load the css from
the cookie
This commit is contained in:
Jan-Pieter Baert 2019-12-17 19:53:34 +01:00
parent 7d6b9a2755
commit b8c15e5cf3
No known key found for this signature in database
GPG key ID: B19186932178234A

View file

@ -5,7 +5,7 @@ from datetime import datetime, timedelta
import yaml import yaml
from flask import Flask, render_template, make_response from flask import Flask, render_template, make_response
from flask import request from flask import request, jsonify
from flask import Blueprint, abort from flask import Blueprint, abort
from flask import current_app as app from flask import current_app as app
from flask import send_from_directory, url_for from flask import send_from_directory, url_for
@ -30,17 +30,8 @@ def home() -> str:
) )
@general_bp.route("/css") def get_css_dict(css_path):
def css(): themes_dict = dict()
"Generate the css"
if request.cookies.get('performance', '') == 'highPerformance':
cssPath = 'static/css/themes/highPerformance/'
else:
cssPath = 'static/css/themes/lowPerformance/'
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. # Open the YAML file with all the themes.
path = os.path.join(app.root_path, "views/themes.yml") path = os.path.join(app.root_path, "views/themes.yml")
@ -57,7 +48,9 @@ def css():
current_year = current_date.year current_year = current_date.year
# Check each theme in the dictionary and return the first one that is "correct" # Check each theme in the dictionary and return the first one that is "correct"
for theme in themes.values(): for key, theme in themes.items():
print(key)
print(theme)
if theme['type'] == 'static-date': if theme['type'] == 'static-date':
start_day, start_month = theme['start'].split('/') start_day, start_month = theme['start'].split('/')
start_date = datetime(year=current_year, day=int( start_date = datetime(year=current_year, day=int(
@ -70,15 +63,39 @@ def css():
year=current_year, day=int(end_day), month=int(end_month)) year=current_year, day=int(end_day), month=int(end_month))
if start_date <= current_date <= end_date: if start_date <= current_date <= end_date:
path = os.path.join(app.root_path, cssPath, theme['file']) path = os.path.join(app.root_path, css_path, theme['file'])
break themes_dict[key] = path
elif cookie_theme == 'darkmode': themes_dict['darkmode'] = os.path.join(
path = os.path.join(
app.root_path, "static/css/themes/lowPerformance/darkmode.css") app.root_path, "static/css/themes/lowPerformance/darkmode.css")
else: themes_dict['lightmode'] = os.path.join(
path = os.path.join(
app.root_path, "static/css/themes/lowPerformance/lightmode.css") app.root_path, "static/css/themes/lowPerformance/lightmode.css")
return themes_dict
@general_bp.route("/css-list")
def css_list():
if request.cookies.get('performance', '') == 'highPerformance':
css_path = 'static/css/themes/highPerformance/'
else:
css_path = 'static/css/themes/lowPerformance/'
return jsonify(list(get_css_dict(css_path).keys()))
@general_bp.route("/css")
def css():
"Generate the css"
if request.cookies.get('performance', '') == 'highPerformance':
css_path = 'static/css/themes/highPerformance/'
else:
css_path = 'static/css/themes/lowPerformance/'
cookie_theme = request.cookies.get('theme', '')
themes_dict = get_css_dict(css_path)
path = themes_dict[cookie_theme]
f = open(path) f = open(path)
response = make_response(f.read()) response = make_response(f.read())
response.headers['Content-Type'] = 'text/css' response.headers['Content-Type'] = 'text/css'