prerelease/0.6.0 #1

Merged
Typhus merged 29 commits from prerelease/0.6.0 into main 2026-05-27 23:17:52 +00:00
3 changed files with 57 additions and 9 deletions
Showing only changes of commit 4803607e3b - Show all commits
+3 -3
View File
@@ -23,15 +23,15 @@
[tickets]
[tickets."NORMAL"]
total_tickets=24
price="20.00"
total_tickets=38
price="25.00"
description="Normales Ticket"
additional_info="Berechtigt zur Nutzung eines regulären Platzes für die gesamte Dauer der LAN"
can_be_sold=true
[tickets."DELUXE"]
total_tickets=30
price="25.00"
price="30.00"
description="Deluxe Ticket"
additional_info="Wie das normale Ticket, aber mit doppelt so breitem Tisch (160cm)"
can_be_sold=true
+12 -6
View File
@@ -1,9 +1,10 @@
from typing import Optional
from bson import ObjectId
from rio import Component, Rectangle, Column, Text, Row, PointerEventListener, TextInput
from rio.event import on_populate
from elm.types import UserSession, Ticket
from elm.types import UserSession, Ticket, Seat
from elm.components import ElmButton
from elm.services import UserService
@@ -16,6 +17,7 @@ class AccountInfoBox(Component):
password_input_blocked: bool = False
password_change_in_progress: bool = False
ticket: Optional[Ticket] = None
seat: Optional[Seat] = None
@on_populate
async def on_populate(self) -> None:
@@ -24,6 +26,7 @@ class AccountInfoBox(Component):
if user:
self.mail = user.user_mail
self.ticket = await Ticket.find_one({"owner.$id": user.id})
self.seat = await Seat.find_one({"user.$id": ObjectId(user.id)})
else:
self.session.navigate_to("./login")
except KeyError:
@@ -63,8 +66,11 @@ class AccountInfoBox(Component):
def build(self) -> Component:
row_col = Row
ticket_text = "-"
seat_text = "-"
if self.ticket:
ticket_text = self.ticket.category
if self.seat:
seat_text = self.seat.seat_id
if self.session.is_mobile():
row_col = Column
@@ -99,13 +105,13 @@ class AccountInfoBox(Component):
),
PointerEventListener(
Rectangle(
content=Row(Text("Sitzplatz:", margin=1, overflow="wrap", justify="left"), Text("-", margin=1, overflow="wrap", justify="right")),
fill=self.session.theme.danger_color_dark,
content=Row(Text("Sitzplatz:", margin=1, overflow="wrap", justify="left"), Text(seat_text, margin=1, overflow="wrap", justify="right")),
fill=self.session.theme.success_color if self.seat else self.session.theme.danger_color_dark,
stroke_width=0.1,
stroke_color=self.session.theme.danger_color,
hover_fill=self.session.theme.danger_color,
stroke_color=self.session.theme.success_color if self.seat else self.session.theme.danger_color,
hover_fill=self.session.theme.success_color if self.seat else self.session.theme.danger_color,
hover_stroke_width=0.1,
hover_stroke_color=self.session.theme.danger_color_dark,
hover_stroke_color=self.session.theme.success_color if self.seat else self.session.theme.danger_color_dark,
transition_time=0.2,
cursor="pointer"
),
+42
View File
@@ -0,0 +1,42 @@
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
from elm.components import ElmButton
@page(name="Tournaments", url_segment="tournaments")
class TournamentsPage(Component):
def build(self) -> Component:
return Row(
Rectangle(
content=Column(
Rectangle(
content=Rectangle(
content=Text("Turniere", 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("Es wurde noch kein Turnierbaum hinterlegt", fill=self.session.theme.text_color, overflow="wrap", justify="center"),
margin=1,
spacing=1
),
Spacer()
),
fill=self.session.theme.box_color,
stroke_width=0.1,
stroke_color=self.session.theme.box_border_color
),
align_x=0.5,
align_y=0.5
)