From 2a8c17633ec364ca750a310e4066160d0eecc798 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Mon, 26 Feb 2024 19:51:07 +0100 Subject: [PATCH] Add error page --- formula10/__init__.py | 7 +++++-- formula10/controller/error_controller.py | 17 +++++++++++++++++ formula10/templates/error.jinja | 14 ++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 formula10/controller/error_controller.py create mode 100644 formula10/templates/error.jinja diff --git a/formula10/__init__.py b/formula10/__init__.py index 738f4a2..d8e524a 100644 --- a/formula10/__init__.py +++ b/formula10/__init__.py @@ -4,6 +4,8 @@ from flask_sqlalchemy import SQLAlchemy app: Flask = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///formula10.db" app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False +app.config['SESSION_TYPE'] = 'memcached' +app.config['SECRET_KEY'] = 'ich stinke nach maggi' app.url_map.strict_slashes = False db: SQLAlchemy = SQLAlchemy() @@ -12,8 +14,9 @@ db.init_app(app) # NOTE: These imports are required to register the routes. They need to be imported after "app" is declared import formula10.controller.race_controller # type: ignore import formula10.controller.season_controller -import formula10.controller.admin_controller import formula10.controller.rules_controller +import formula10.controller.admin_controller +import formula10.controller.error_controller # TODO @@ -21,10 +24,10 @@ import formula10.controller.rules_controller # Date stuff: # - Date lock race guess entering + race result entering + season guess entering (frontend + backend) +# - Some info popup that can be populated # - Show timer until next race? # - Choose "place to guess" late before the race? Make a page for this? -# - Rules page # - Store currently active user inside cookie # - Make user order changeable using drag'n'drop? diff --git a/formula10/controller/error_controller.py b/formula10/controller/error_controller.py new file mode 100644 index 0000000..52f12b5 --- /dev/null +++ b/formula10/controller/error_controller.py @@ -0,0 +1,17 @@ +from typing import cast +from flask import redirect, render_template, session +from werkzeug import Response + +from formula10.frontend.template_model import TemplateModel +from formula10 import app + +def error_redirect(error_message: str) -> Response: + session["error_message"] = error_message + return redirect(f"/error") + +@app.route("/error") +def error_root() -> str: + model = TemplateModel(active_user_name=None, active_result_race_name=None) + message: str = cast(str, session["error_message"]) + + return render_template("error.jinja", model=model, error_message=message) diff --git a/formula10/templates/error.jinja b/formula10/templates/error.jinja new file mode 100644 index 0000000..a8c61e5 --- /dev/null +++ b/formula10/templates/error.jinja @@ -0,0 +1,14 @@ +{% extends 'base.jinja' %} + +{% block title %}Formula 10 - Error{% endblock title %} + +{% set active_page = "/error" %} + +{% block body %} +
+
+
Error
+
{{ error_message }}
+
+
+{% endblock body %}