From 3949ad8f04b6eb1edea593fcd582035f6e492aa6 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Mon, 26 Feb 2024 19:02:32 +0100 Subject: [PATCH] Add rules page --- formula10/__init__.py | 12 +++- formula10/controller/rules_controller.py | 10 +++ formula10/templates/rules.jinja | 88 ++++++++++++++++++++++++ 3 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 formula10/controller/rules_controller.py create mode 100644 formula10/templates/rules.jinja diff --git a/formula10/__init__.py b/formula10/__init__.py index d1d203d..738f4a2 100644 --- a/formula10/__init__.py +++ b/formula10/__init__.py @@ -11,20 +11,26 @@ 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 # type: ignore -import formula10.controller.admin_controller # type: ignore +import formula10.controller.season_controller +import formula10.controller.admin_controller +import formula10.controller.rules_controller # TODO # General -# - Show date for race name, also store time in database +# Date stuff: +# - Date lock race guess entering + race result entering + season guess entering (frontend + backend) +# - 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? # - Show place when entering race result (would require updating the drag'n'drop code...) # - Show cards of previous race results, like with season guesses? +# - Don't write full 2024 date, just 24 or leave out completely, to make column smaller # Statistics # - Rename "Statistics" to "Leaderboard" diff --git a/formula10/controller/rules_controller.py b/formula10/controller/rules_controller.py new file mode 100644 index 0000000..c57965d --- /dev/null +++ b/formula10/controller/rules_controller.py @@ -0,0 +1,10 @@ +from flask import render_template + +from formula10 import app +from formula10.frontend.template_model import TemplateModel + +@app.route("/rules") +def rules_root() -> str: + model = TemplateModel(active_user_name=None, active_result_race_name=None) + + return render_template("rules.jinja", model=model) \ No newline at end of file diff --git a/formula10/templates/rules.jinja b/formula10/templates/rules.jinja new file mode 100644 index 0000000..65b8bc4 --- /dev/null +++ b/formula10/templates/rules.jinja @@ -0,0 +1,88 @@ +{% extends 'base.jinja' %} + +{% block title %}Formula 10 - Rules{% endblock title %} + +{% set active_page = "/rules" %} + +{% block body %} +
+
+
Format
+ +

+ Das Tippspiel wird dieses Jahr in zwei Teile aufgespalten: Renntips (für jedes Rennen) und Bonustipps + (für die ganze Saison). + Renntipps müssen bis Rennstart, Bonustipps bis 1. März abgegeben werden. + Tipps können entweder selbst eingetragen werden, oder in die Gruppe geschrieben werden, um gültig zu + sein. +

+ +
+
+ +
+
+
Renntipps
+ +

+ Jedes Rennen besteht aus zwei Tipps. + Einem Platzierungstipp (PX-Tipp) und einem Tipp welcher Fahrer als Erstes das Rennen abbricht + (DNF-Tipp). + Anders als beim P10-Tipp letztes Jahr wird dieses Mal jedes Rennen eine andere Platzierung getippt. + Die zu tippende Platzierung wird auf der Tabellen-Übersichtsseite und im Fahrer-Auswahlmenü angezeigt. +

+ +

+ DNS zählt hierbei nicht als DNF, außerdem besteht die Möglichkeit zu tippen, dass kein Fahrer DNF't oder + das Rennen auf PX beendet. +

+
+
+ +
+
+
Punkte
+ +

+ Für einen korrekten Tipp werden 10 Punkte vergeben. + Beim PX-Tipp werden 6 Punkte für einen Platz Abweichung, 3 Punkte für zwei plätze Abweichung und 1 Punkt + für 3 Plätze Abweichung vergeben. +

+ +

+ Beim DNF-Tipp werden keine Abweichungspunkte vergeben, ebensowenig wie bei der Auswahl "Keiner" für den + PX-Tipp. +

+
+
+ +
+
+
Bonustipps
+ +

+ Zusätzlich gibt es dieses Jahr auch Tipps, die sich auf die ganze Saison beziehen und verschieden + bepunktet werden. +

+ +
    +
  • Welches Team wird P2 in der constructors championship? (10 Punkte für die + richtige Antwort / 0 Punkte für eine falsche Antwort) +
  • +
  • Welcher Fahrer verbessert am meisten seine Platzierung in der drivers + championship im Vergleich zum Vorjahr? (10/0) +
  • +
  • Welcher Fahrer verschlechtert am meisten seine Platzierung in der drivers + championship im Vergleich zum Vorjahr? (10/0) +
  • +
  • Welcher Fahrer hat die meisten DNFs? (10/0)
  • +
  • Welcher Fahrer hat die meisten Überholungen? (10/0)
  • +
  • Nenne alle Fahrer, die mindestens einmal auf dem Podium stehen werden. + (3/-2, nicht-gegebene Antworten zählen als falsch) +
  • +
  • Nenne für alle Teams den Sieger des teaminternen Duells. (3/-3)
  • +
  • Nenne einen hot-take für die Saison (10/0, "hotness" wird vorher abgesegnet)
  • +
+
+
+{% endblock body %} \ No newline at end of file