add tournament rules

This commit is contained in:
David Rodenkirchen 2026-02-02 09:13:41 +01:00
parent 1137a9e7c7
commit 02658aa049
4 changed files with 59 additions and 1 deletions

View File

@ -166,6 +166,11 @@ if __name__ == "__main__":
name="TournamentDetailsPage",
url_segment="tournament",
build=pages.TournamentDetailsPage,
),
ComponentPage(
name="TournamentRulesPage",
url_segment="tournament-rules",
build=pages.TournamentRulesPage,
)
],
theme=theme,

View File

@ -118,7 +118,7 @@ class TournamentDetailsPage(Component):
accept_rules_row = Row(
ThemeContextSwitcher(content=Checkbox(is_on=self.bind().rules_accepted, margin_left=4), color=self.session.theme.hud_color),
Text("Ich akzeptiere die ", margin_left=1, style=TextStyle(fill=self.session.theme.background_color, font_size=0.8), overflow="nowrap", justify="right"),
Link(Text("Turnierregeln", margin_right=4, style=TextStyle(fill=self.session.theme.background_color, font_size=0.8, italic=True), overflow="nowrap", justify="left"), "https://google.de") # ToDo: Add rules
Link(Text("Turnierregeln", margin_right=4, style=TextStyle(fill=self.session.theme.background_color, font_size=0.8, italic=True), overflow="nowrap", justify="left"), "./tournament-rules", open_in_new_tab=True)
)
button = Button(
content=button_text,

View File

@ -0,0 +1,52 @@
from rio import Column, Component, event, TextStyle, Text, Spacer
from src.ezgg_lan_manager import ConfigurationService
from src.ezgg_lan_manager.components.MainViewContentBox import MainViewContentBox
RULES: list[str] = [
"Den Anweisungen der Turnierleitung ist stets Folge zu leisten.",
"Teilnehmer müssen aktiv dafür sorgen, dass Spiele ohne Verzögerungen stattfinden.",
"Unvollständige Teams werden ggf. zum Turnierstart entfernt.",
"Verzögerungen und Ausfälle sind er Turnierleitung sofort zu melden.",
"Jeder Spieler erstellt Screenshots am Rundenende zur Ergebnisdokumentation.",
"Der Verlierer trägt das Ergebnis ein, der Gewinner überprüft es.",
"Bei fehlendem oder falschem Ergebnis, ist sofort die Turnierorganisation zu informieren.",
"Von 02:0011:00 Uhr besteht keine Spielpflicht",
"Täuschung, Falschangaben sowie Bugusing und Cheaten führen zur sofortigen Disqualifikation."
]
class TournamentRulesPage(Component):
@event.on_populate
async def on_populate(self) -> None:
await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Turnierregeln")
def build(self) -> Component:
return Column(
MainViewContentBox(
Column(
Text(
text="Turnierregeln",
style=TextStyle(
fill=self.session.theme.background_color,
font_size=1.2
),
margin_top=2,
margin_bottom=2,
align_x=0.5
),
*[Text(
f"{idx + 1}. {rule}",
style=TextStyle(
fill=self.session.theme.background_color,
font_size=0.9
),
margin_bottom=0.8,
margin_left=1,
margin_right=1,
overflow="wrap"
) for idx, rule in enumerate(RULES)],
Spacer(min_height=1)
)
),
Spacer(grow_y=True)
)

View File

@ -21,3 +21,4 @@ from .ManageCateringPage import ManageCateringPage
from .ManageTournamentsPage import ManageTournamentsPage
from .OverviewPage import OverviewPage
from .TournamentDetailsPage import TournamentDetailsPage
from .TournamentRulesPage import TournamentRulesPage