add placeholder pages, cleanup imports and set window titles dynamically
This commit is contained in:
parent
446956f721
commit
f2dfaa78f3
@ -1,10 +1,8 @@
|
|||||||
from __future__ import annotations
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from pathlib import Path
|
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 from_root import from_root
|
||||||
|
|
||||||
from src.ez_lan_manager import pages, init_services
|
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])
|
logger = logging.getLogger(__name__.split(".")[-1])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
theme = rio.Theme.from_colors(
|
theme = Theme.from_colors(
|
||||||
primary_color=rio.Color.from_hex("ffffff"),
|
primary_color=Color.from_hex("ffffff"),
|
||||||
secondary_color=rio.Color.from_hex("018786"),
|
secondary_color=Color.from_hex("018786"),
|
||||||
neutral_color=rio.Color.from_hex("1e1e1e"),
|
neutral_color=Color.from_hex("1e1e1e"),
|
||||||
background_color=rio.Color.from_hex("121212"),
|
background_color=Color.from_hex("121212"),
|
||||||
hud_color=rio.Color.from_hex("02dac5"),
|
hud_color=Color.from_hex("02dac5"),
|
||||||
text_color=rio.Color.from_hex("018786"),
|
text_color=Color.from_hex("018786"),
|
||||||
mode="dark",
|
mode="dark",
|
||||||
corner_radius_small=0,
|
corner_radius_small=0,
|
||||||
corner_radius_medium=0,
|
corner_radius_medium=0,
|
||||||
corner_radius_large=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(
|
services = init_services()
|
||||||
name='',
|
|
||||||
|
app = App(
|
||||||
|
name="EZ LAN Manager",
|
||||||
pages=[
|
pages=[
|
||||||
rio.Page(
|
Page(
|
||||||
name="News",
|
name="News",
|
||||||
page_url='',
|
page_url="",
|
||||||
build=pages.NewsPage,
|
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,
|
theme=theme,
|
||||||
assets_dir=Path(__file__).parent / "assets",
|
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()
|
app.run_as_web_server()
|
||||||
|
|||||||
@ -44,7 +44,7 @@ class DesktopNavigation(Component):
|
|||||||
DesktopNavigationButton("Teilnehmer", "./guests"),
|
DesktopNavigationButton("Teilnehmer", "./guests"),
|
||||||
DesktopNavigationButton("Turniere", "./tournaments"),
|
DesktopNavigationButton("Turniere", "./tournaments"),
|
||||||
DesktopNavigationButton("FAQ", "./faq"),
|
DesktopNavigationButton("FAQ", "./faq"),
|
||||||
DesktopNavigationButton("Regeln & AGB", "./rules-and-agb"),
|
DesktopNavigationButton("Regeln & AGB", "./rules-gtc"),
|
||||||
Spacer(min_height=1),
|
Spacer(min_height=1),
|
||||||
DesktopNavigationButton("Die EZ GG e.V.", "https://ezgg-ev.de/about", open_new_tab=True),
|
DesktopNavigationButton("Die EZ GG e.V.", "https://ezgg-ev.de/about", open_new_tab=True),
|
||||||
DesktopNavigationButton("Kontakt", "./contact"),
|
DesktopNavigationButton("Kontakt", "./contact"),
|
||||||
|
|||||||
@ -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.components.NewsPost import NewsPost
|
||||||
from src.ez_lan_manager.pages import BasePage
|
from src.ez_lan_manager.pages import BasePage
|
||||||
|
|
||||||
class NewsPage(Component):
|
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:
|
def build(self) -> Component:
|
||||||
return BasePage(
|
return BasePage(
|
||||||
content=Column(
|
content=Column(
|
||||||
|
|||||||
24
src/ez_lan_manager/pages/PlaceholderPage.py
Normal file
24
src/ez_lan_manager/pages/PlaceholderPage.py
Normal file
@ -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,
|
||||||
|
)
|
||||||
|
)
|
||||||
@ -1,2 +1,3 @@
|
|||||||
from .BasePage import BasePage
|
from .BasePage import BasePage
|
||||||
from .NewsPage import NewsPage
|
from .NewsPage import NewsPage
|
||||||
|
from .PlaceholderPage import PlaceholderPage
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user