Add FAQ page

This commit is contained in:
David Rodenkirchen
2026-05-27 13:04:33 +02:00
parent 1f6401d7b0
commit 38d0982e50
6 changed files with 113 additions and 2 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ from from_root import from_root
from rio import App, Theme, Color, Font, Icon, Session from rio import App, Theme, Color, Font, Icon, Session
from elm.components.RootComponent import RootComponent from elm.components.RootComponent import RootComponent
from elm.services import ConfigurationService, DatabaseService, UserService, LocalData, LocalDataService, MailingService, AccountingService from elm.services import ConfigurationService, DatabaseService, UserService, LocalData, LocalDataService, MailingService, AccountingService, PreloadService
from elm.types import UserSession from elm.types import UserSession
logger = logging.getLogger("ELM") logger = logging.getLogger("ELM")
@@ -79,7 +79,7 @@ app = App(
theme=theme, theme=theme,
assets_dir=Path(__file__).parent / "assets", assets_dir=Path(__file__).parent / "assets",
build=RootComponent, build=RootComponent,
default_attachments=[LocalData(), configuration_service, database_service, UserService(), LocalDataService(), mailing_service, AccountingService(configuration_service, mailing_service)], default_attachments=[LocalData(), configuration_service, database_service, UserService(), LocalDataService(), mailing_service, AccountingService(configuration_service, mailing_service), PreloadService()],
on_app_start=on_app_start, on_app_start=on_app_start,
on_session_start=on_session_start, on_session_start=on_session_start,
icon=from_root("src/elm/assets/img/favicon.png"), icon=from_root("src/elm/assets/img/favicon.png"),
@@ -0,0 +1,3 @@
# Preloaded content
The files in this directory are loaded upon app start, as they do not change during runtime.
+47
View File
@@ -0,0 +1,47 @@
Wie melde ich mich für die LAN an?
Registriere dich auf dieser Seite, lade dein Guthabenkonto auf und kaufe ein Ticket. Danach such dir einen freien Sitzplatz auf dem Sitzplan aus.
Wie lade ich mein Guthabenkonto auf?
Logge dich in deinen Account ein und klicke oben rechts auf dein Profilbild, von dort auf die Schaltfläche 'Guthaben' in der Navigationsleiste. Dort findest du alle weiteren Informationen.
Wie kann ich mein Ticket stornieren?
Schreibe uns eine Mail an tech@ezgg-ev.de, wir kümmern uns dann Zeitnah um die Stornierung.
Was soll ich zur LAN mitbringen?
Deinen PC inklusive aller zugehörigen Geräte (Maus, Tastatur, Monitor, Headset), sowie aller Anschlusskabel. Wir empfehlen ein LAN Kabel von mindestens 5 Metern Länge mitzubringen. Des weiteren benötigste du eine Mehrfachsteckdose, da dir an deinem Platz nur ein einzelner Steckplatz zugewiesen wird.
Wohin mit technischen Problemen?
Melde dich einfach am Einlass bzw in der Orga-Ecke, wir helfen gerne weiter.
Wo entsorge ich meinen Müll?
Im gesamten Gebäude findest du Mülltüten/Mülleimer.
Darf ich Cannabis konsumieren?
Generell verbieten wir den Konsum von Cannabis nicht. Beachte aber die allgemeine Gesetzeslage und ziehe ggf. die Bubatzkarte zu Rat.
Gibt es einen Discord oder TeamSpeak?
Du kannst gerne unseren Vereins-TeamSpeak3-Server unter ts3.ezgg-ev.de nutzen. Den Link zum offiziellen Discord findest du in der Kopfleiste.
Wo bleibt mein Essen?
Vermutlich ist es auf dem Weg. Du kannst auf der Catering-Seite den Status deiner Bestellung überprüfen. Hast du Bedenken das sie verloren gegangen sein könnte, sprich ein Team-Mitglied an der Theke darauf an.
Wie lange dauert eine Aufladung per Überweißung?
In der Regel wird das Guthaben deinem Konto innerhalb von 2 bis 3 Werktagen gutgeschrieben. In Ausnahmefällen kann es bis zu 7 Tagen dauern.
Wie melde ich meinen Clan an?
Wenn in deiner Gruppe mehr als 3 Personen sind, dann schreib uns bitte eine Mail mit dem Betreff 'Gruppenticket' an tech@ezgg-ev.de. Schreibe uns dort die Nutzer-ID's sowie die Sitzplätze deiner Gruppe auf. Gehe sicher das jede Person in deiner Gruppe entweder bereits ein passendes Ticket besitzt oder über genug Guthaben verfügt um ein Ticket zu kaufen.
Wo kann ich schlafen?
Im Gebäude sind offizielle Schlafbereiche ausgewiesen. Solange du keine Zugangs-, Durchgangs-, oder Rettungswege blockierst, darfst du überall schlafen.
+44
View File
@@ -0,0 +1,44 @@
from __future__ import annotations
from copy import copy
from typing import Any, Optional
from uuid import uuid4
from rio import Component, Column, Row, Text, Spacer, page, Color, Rectangle, TextInput, GuardEvent
from elm.types import UserSession, User
from elm.services import UserService, LocalData, LocalDataService, ConfigurationService, PreloadService
from elm.components import ElmButton
@page(name="FAQ", url_segment="faq")
class FaqPage(Component):
def build(self) -> Component:
return Row(
Rectangle(
content=Column(
Rectangle(
content=Rectangle(
content=Text("F.A.Q.", margin=0.5, selectable=False, overflow="wrap"),
fill=self.session.theme.header_box_background_color,
margin=0.4
),
stroke_width=0.1,
stroke_color=self.session.theme.box_border_color,
),
*[Column(
Text(q_a[0], font_weight="bold", overflow="wrap", fill=self.session.theme.primary_color),
Text(q_a[1], italic=True, overflow="wrap"),
spacing=0.5,
margin_bottom=1.5,
margin=1
) for q_a in self.session[PreloadService].faq],
Spacer()
),
fill=self.session.theme.box_color,
stroke_width=0.1,
stroke_color=self.session.theme.box_border_color
),
grow_x=True,
grow_y=True,
margin=0 if self.session.is_mobile() else 1
)
+16
View File
@@ -0,0 +1,16 @@
from from_root import from_root
class PreloadService:
def __init__(self) -> None:
self._faq: list[tuple[str, str]] = []
with open(from_root("src/elm/assets/preloaded_content/faq.txt"), "r") as faq_file:
faq = faq_file.read()
faq = faq.split("\n\n")
for i in range(0, len(faq), 2):
q, a = faq[i], faq[i + 1]
self._faq.append((q, a))
@property
def faq(self) -> list[tuple[str, str]]:
return self._faq
+1
View File
@@ -4,3 +4,4 @@ from .UserService import UserService, NameNotAllowedError, MailAlreadyInUseError
from .LocalDataService import LocalData, LocalDataService from .LocalDataService import LocalData, LocalDataService
from .MailingService import MailingService from .MailingService import MailingService
from .AccountingService import AccountingService from .AccountingService import AccountingService
from .PreloadService import PreloadService