2023-08-16 15:14:11 +00:00
|
|
|
import os
|
|
|
|
|
|
|
|
import flask
|
|
|
|
|
|
|
|
try:
|
|
|
|
import flask_themer
|
2023-09-01 08:46:56 +00:00
|
|
|
except ImportError:
|
2023-08-16 15:14:11 +00:00
|
|
|
flask_themer = None
|
|
|
|
|
|
|
|
|
|
|
|
if flask_themer:
|
|
|
|
render_template = flask_themer.render_template
|
|
|
|
|
|
|
|
def setup_themer(app):
|
|
|
|
additional_themes_dir = (
|
2023-12-22 17:00:07 +00:00
|
|
|
os.path.abspath(os.path.dirname(app.config["THEME"]))
|
2023-08-16 15:14:11 +00:00
|
|
|
if app.config.get("THEME") and os.path.exists(app.config["THEME"])
|
|
|
|
else None
|
|
|
|
)
|
|
|
|
themer = flask_themer.Themer(
|
|
|
|
app,
|
|
|
|
loaders=[flask_themer.FileSystemThemeLoader(additional_themes_dir)]
|
|
|
|
if additional_themes_dir
|
|
|
|
else None,
|
|
|
|
)
|
|
|
|
|
|
|
|
@themer.current_theme_loader
|
|
|
|
def get_current_theme():
|
|
|
|
# if config['THEME'] may be a theme name or an absolute path
|
|
|
|
return app.config.get("THEME", "default").split("/")[-1]
|
|
|
|
|
2023-12-15 10:58:25 +00:00
|
|
|
@app.errorhandler(400)
|
|
|
|
def bad_request(error):
|
|
|
|
return render_template("error.html", description=error, error_code=400), 400
|
|
|
|
|
|
|
|
@app.errorhandler(403)
|
|
|
|
def unauthorized(error):
|
|
|
|
return render_template("error.html", description=error, error_code=403), 403
|
|
|
|
|
|
|
|
@app.errorhandler(404)
|
|
|
|
def page_not_found(error):
|
|
|
|
return render_template("error.html", description=error, error_code=404), 404
|
|
|
|
|
|
|
|
@app.errorhandler(500)
|
|
|
|
def server_error(error): # pragma: no cover
|
|
|
|
return render_template("error.html", description=error, error_code=500), 500
|
|
|
|
|
2023-08-16 15:14:11 +00:00
|
|
|
else: # pragma: no cover
|
|
|
|
render_template = flask.render_template
|
|
|
|
|
|
|
|
def setup_themer(app):
|
|
|
|
return
|