diff --git a/canaille/__init__.py b/canaille/__init__.py index 5d42f7b3..a6a05fd8 100644 --- a/canaille/__init__.py +++ b/canaille/__init__.py @@ -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 diff --git a/canaille/app/themes.py b/canaille/app/themes.py index f5139b1a..db37483d 100644 --- a/canaille/app/themes.py +++ b/canaille/app/themes.py @@ -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