From 02658aa0497c16f0ca81bf20687e29fc800f8bec Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Mon, 2 Feb 2026 09:13:41 +0100 Subject: [PATCH] add tournament rules --- src/EzggLanManager.py | 5 ++ .../pages/TournamentDetailsPage.py | 2 +- .../pages/TournamentRulesPage.py | 52 +++++++++++++++++++ src/ezgg_lan_manager/pages/__init__.py | 1 + 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/ezgg_lan_manager/pages/TournamentRulesPage.py diff --git a/src/EzggLanManager.py b/src/EzggLanManager.py index 3fdb22e..c4d060b 100644 --- a/src/EzggLanManager.py +++ b/src/EzggLanManager.py @@ -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, diff --git a/src/ezgg_lan_manager/pages/TournamentDetailsPage.py b/src/ezgg_lan_manager/pages/TournamentDetailsPage.py index 031f02a..04314ff 100644 --- a/src/ezgg_lan_manager/pages/TournamentDetailsPage.py +++ b/src/ezgg_lan_manager/pages/TournamentDetailsPage.py @@ -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, diff --git a/src/ezgg_lan_manager/pages/TournamentRulesPage.py b/src/ezgg_lan_manager/pages/TournamentRulesPage.py new file mode 100644 index 0000000..9be50aa --- /dev/null +++ b/src/ezgg_lan_manager/pages/TournamentRulesPage.py @@ -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:00–11: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) + ) diff --git a/src/ezgg_lan_manager/pages/__init__.py b/src/ezgg_lan_manager/pages/__init__.py index 0788905..d20bffc 100644 --- a/src/ezgg_lan_manager/pages/__init__.py +++ b/src/ezgg_lan_manager/pages/__init__.py @@ -21,3 +21,4 @@ from .ManageCateringPage import ManageCateringPage from .ManageTournamentsPage import ManageTournamentsPage from .OverviewPage import OverviewPage from .TournamentDetailsPage import TournamentDetailsPage +from .TournamentRulesPage import TournamentRulesPage