Add FAQ page
This commit is contained in:
+2
-2
@@ -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.
|
||||||
@@ -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.
|
||||||
@@ -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
|
||||||
|
)
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user