refactor: move errorhandlers out of the theming module

This commit is contained in:
Éloi Rivard 2024-12-22 11:42:47 +01:00
parent 527869b6dd
commit 7493ce3c35
No known key found for this signature in database
GPG key ID: 7EDA204EA57DD184
2 changed files with 22 additions and 27 deletions

View file

@ -53,6 +53,8 @@ def setup_blueprints(app):
def setup_flask(app):
from canaille.app.themes import render_template
csrf.init_app(app)
@app.before_request
@ -76,6 +78,26 @@ def setup_flask(app):
"features": app.features,
}
@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):
from canaille.app.flask import redirect_to_bp_handlers
return redirect_to_bp_handlers(app, error) or 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
def setup_flask_converters(app):
from canaille.app import models

View file

@ -30,33 +30,6 @@ if flask_themer:
# if config['THEME'] may be a theme name or a path
return app.config["CANAILLE"]["THEME"].split("/")[-1]
@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):
from canaille.app.flask import redirect_to_bp_handlers
return redirect_to_bp_handlers(app, error) or 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
else: # pragma: no cover
render_template = flask.render_template
def setup_themer(app):
@app.errorhandler(404)
def page_not_found(error):
from canaille.app.flask import redirect_to_bp_handlers
if not redirect_to_bp_handlers(app, error):
raise error