PCv5/app/utils/render.py

49 lines
1.4 KiB
Python

from flask import render_template
from flask_login import current_user
def render(*args, styles=[], scripts=[], **kwargs):
# Pour jouer sur les feuilles de style ou les scripts :
# render('page.html', styles=['-css/form.css', '+css/admin/forms.css'])
styles_ = [
'css/global.css',
'css/navbar.css',
'css/header.css',
'css/container.css',
'css/widgets.css',
'css/form.css',
'css/footer.css',
'css/flash.css',
'css/table.css',
'css/pagination.css',
'css/responsive.css',
'css/simplemde.min.css',
'css/pygments.css',
]
scripts_ = [
'scripts/trigger_menu.js',
'scripts/pc-utils.js',
'scripts/smartphone_patch.js',
'scripts/simplemde.min.js',
'scripts/filter.js'
]
# Apply theme from user settings
theme = current_user.theme if current_user.is_authenticated else ''
theme = theme if theme else 'default_theme'
styles_ = [f'css/themes/{theme}.css'] + styles_
for s in styles:
if s[0] == '-':
styles_.remove(s[1:])
if s[0] == '+':
styles_.append(s[1:])
for s in scripts:
if s[0] == '-':
scripts_.remove(s[1:])
if s[0] == '+':
scripts_.append(s[1:])
return render_template(*args, **kwargs, styles=styles_, scripts=scripts_)