Files
flask-formula10/formula10/controller/admin_controller.py
Christoph Urlacher 628e2cd99a
All checks were successful
Build Formula10 Docker Image / build-docker (push) Successful in 14s
Update frontend for extended stats (sprint)
2024-03-09 23:22:18 +01:00

64 lines
2.2 KiB
Python

from typing import List
from urllib.parse import unquote
from flask import redirect, render_template, request
from werkzeug import Response
from formula10.database.update_queries import update_race_result, update_user
from formula10.domain.domain_model import Model
from formula10.domain.template_model import TemplateModel
from formula10 import app
@app.route("/result")
def result_root() -> Response:
return redirect("/result/Current")
@app.route("/result/<race_name>")
def result_active_race(race_name: str) -> str:
race_name = unquote(race_name)
model = TemplateModel(active_user_name=None,
active_result_race_name=race_name)
return render_template("result.jinja", model=model)
@app.route("/result-enter/<race_name>", methods=["POST"])
def result_enter_post(race_name: str) -> Response:
race_name = unquote(race_name)
pxxs: List[str] = request.form.getlist("pxx-drivers")
first_dnfs: List[str] = request.form.getlist("first-dnf-drivers")
dnfs: List[str] = request.form.getlist("dnf-drivers")
excluded: List[str] = request.form.getlist("excluded-drivers")
fastest_lap: str | None = request.form.get("fastest-lap")
sprint_pxxs: List[str] = request.form.getlist("sprint-pxx-drivers")
sprint_dnf_drivers: List[str] = request.form.getlist("sprint-dnf-drivers")
# @todo Integrate these into update_race_result()
print("Fastest lap:", fastest_lap)
print("Sprint:", sprint_pxxs)
print("Sprint DNFs:", sprint_dnf_drivers)
race_id: int = Model().race_by(race_name=race_name).id
return update_race_result(race_id, pxxs, first_dnfs, dnfs, excluded)
@app.route("/user")
def user_root() -> str:
model = TemplateModel(active_user_name=None,
active_result_race_name=None)
return render_template("users.jinja", model=model)
@app.route("/user-add", methods=["POST"])
def user_add_post() -> Response:
username: str | None = request.form.get("select-add-user")
return update_user(username, add=True)
@app.route("/user-delete", methods=["POST"])
def user_delete_post() -> Response:
username: str | None = request.form.get("select-delete-user")
return update_user(username, delete=True)