diff --git a/src/EzLanManager.py b/src/EzLanManager.py index f24e660..ad6bc88 100644 --- a/src/EzLanManager.py +++ b/src/EzLanManager.py @@ -1,10 +1,8 @@ -from __future__ import annotations import logging from pathlib import Path -from typing import * # type: ignore -import rio +from rio import App, Theme, Color, Font, Page from from_root import from_root from src.ez_lan_manager import pages, init_services @@ -12,32 +10,90 @@ from src.ez_lan_manager import pages, init_services logger = logging.getLogger(__name__.split(".")[-1]) if __name__ == "__main__": - theme = rio.Theme.from_colors( - primary_color=rio.Color.from_hex("ffffff"), - secondary_color=rio.Color.from_hex("018786"), - neutral_color=rio.Color.from_hex("1e1e1e"), - background_color=rio.Color.from_hex("121212"), - hud_color=rio.Color.from_hex("02dac5"), - text_color=rio.Color.from_hex("018786"), + theme = Theme.from_colors( + primary_color=Color.from_hex("ffffff"), + secondary_color=Color.from_hex("018786"), + neutral_color=Color.from_hex("1e1e1e"), + background_color=Color.from_hex("121212"), + hud_color=Color.from_hex("02dac5"), + text_color=Color.from_hex("018786"), mode="dark", corner_radius_small=0, corner_radius_medium=0, corner_radius_large=0, - font=rio.Font(from_root("src/ez_lan_manager/assets/fonts/joystix.otf")) + font=Font(from_root("src/ez_lan_manager/assets/fonts/joystix.otf")) ) - app = rio.App( - name='', + services = init_services() + + app = App( + name="EZ LAN Manager", pages=[ - rio.Page( + Page( name="News", - page_url='', + page_url="", build=pages.NewsPage, ), + Page( + name="News", + page_url="news", + build=pages.NewsPage, + ), + Page( + name="Overview", + page_url="overview", + build=lambda: pages.PlaceholderPage(placeholder_name="LAN Übersicht"), + ), + Page( + name="BuyTicket", + page_url="buy_ticket", + build=lambda: pages.PlaceholderPage(placeholder_name="Tickets kaufen"), + ), + Page( + name="SeatingPlan", + page_url="seating", + build=lambda: pages.PlaceholderPage(placeholder_name="Sitzplan"), + ), + Page( + name="Catering", + page_url="catering", + build=lambda: pages.PlaceholderPage(placeholder_name="Catering"), + ), + Page( + name="Guests", + page_url="guests", + build=lambda: pages.PlaceholderPage(placeholder_name="Teilnehmer"), + ), + Page( + name="Tournaments", + page_url="tournaments", + build=lambda: pages.PlaceholderPage(placeholder_name="Turniere"), + ), + Page( + name="FAQ", + page_url="faq", + build=lambda: pages.PlaceholderPage(placeholder_name="FAQ"), + ), + Page( + name="RulesGTC", + page_url="rules-gtc", + build=lambda: pages.PlaceholderPage(placeholder_name="Regeln & AGB"), + ), + Page( + name="Contact", + page_url="contact", + build=lambda: pages.PlaceholderPage(placeholder_name="Kontakt"), + ), + Page( + name="Imprint", + page_url="imprint", + build=lambda: pages.PlaceholderPage(placeholder_name="Impressum & DSGVO"), + ) ], theme=theme, assets_dir=Path(__file__).parent / "assets", - default_attachments=init_services() + default_attachments=services, + on_session_start= lambda s: s.set_title(services[2].get_lan_info().name) ) app.run_as_web_server() diff --git a/src/ez_lan_manager/components/DesktopNavigation.py b/src/ez_lan_manager/components/DesktopNavigation.py index 6067368..58842e5 100644 --- a/src/ez_lan_manager/components/DesktopNavigation.py +++ b/src/ez_lan_manager/components/DesktopNavigation.py @@ -44,7 +44,7 @@ class DesktopNavigation(Component): DesktopNavigationButton("Teilnehmer", "./guests"), DesktopNavigationButton("Turniere", "./tournaments"), DesktopNavigationButton("FAQ", "./faq"), - DesktopNavigationButton("Regeln & AGB", "./rules-and-agb"), + DesktopNavigationButton("Regeln & AGB", "./rules-gtc"), Spacer(min_height=1), DesktopNavigationButton("Die EZ GG e.V.", "https://ezgg-ev.de/about", open_new_tab=True), DesktopNavigationButton("Kontakt", "./contact"), diff --git a/src/ez_lan_manager/pages/NewsPage.py b/src/ez_lan_manager/pages/NewsPage.py index ab000dd..a187c15 100644 --- a/src/ez_lan_manager/pages/NewsPage.py +++ b/src/ez_lan_manager/pages/NewsPage.py @@ -1,9 +1,14 @@ -from rio import Text, Column, Rectangle, TextStyle, Component +from rio import Text, Column, Rectangle, TextStyle, Component, event +from src.ez_lan_manager import ConfigurationService from src.ez_lan_manager.components.NewsPost import NewsPost from src.ez_lan_manager.pages import BasePage class NewsPage(Component): + @event.on_populate + async def on_populate(self) -> None: + await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Neuigkeiten") + def build(self) -> Component: return BasePage( content=Column( diff --git a/src/ez_lan_manager/pages/PlaceholderPage.py b/src/ez_lan_manager/pages/PlaceholderPage.py new file mode 100644 index 0000000..ee54c88 --- /dev/null +++ b/src/ez_lan_manager/pages/PlaceholderPage.py @@ -0,0 +1,24 @@ +from rio import Column, Component, event + +from src.ez_lan_manager import ConfigurationService +from src.ez_lan_manager.components.NewsPost import NewsPost +from src.ez_lan_manager.pages import BasePage + +class PlaceholderPage(Component): + placeholder_name: str + + @event.on_populate + async def on_populate(self) -> None: + await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - {self.placeholder_name}") + + def build(self) -> Component: + return BasePage( + content=Column( + NewsPost( + title="Platzhalter", + text=f"Dies ist die Platzhalterseite für {self.placeholder_name}.", + date="99.99.9999" + ), + align_y=0, + ) + ) diff --git a/src/ez_lan_manager/pages/__init__.py b/src/ez_lan_manager/pages/__init__.py index 8ba84d0..34f617e 100644 --- a/src/ez_lan_manager/pages/__init__.py +++ b/src/ez_lan_manager/pages/__init__.py @@ -1,2 +1,3 @@ from .BasePage import BasePage from .NewsPage import NewsPage +from .PlaceholderPage import PlaceholderPage