prerelease/0.6.0 #1
+3
-3
@@ -23,15 +23,15 @@
|
|||||||
|
|
||||||
[tickets]
|
[tickets]
|
||||||
[tickets."NORMAL"]
|
[tickets."NORMAL"]
|
||||||
total_tickets=24
|
total_tickets=38
|
||||||
price="20.00"
|
price="25.00"
|
||||||
description="Normales Ticket"
|
description="Normales Ticket"
|
||||||
additional_info="Berechtigt zur Nutzung eines regulären Platzes für die gesamte Dauer der LAN"
|
additional_info="Berechtigt zur Nutzung eines regulären Platzes für die gesamte Dauer der LAN"
|
||||||
can_be_sold=true
|
can_be_sold=true
|
||||||
|
|
||||||
[tickets."DELUXE"]
|
[tickets."DELUXE"]
|
||||||
total_tickets=30
|
total_tickets=30
|
||||||
price="25.00"
|
price="30.00"
|
||||||
description="Deluxe Ticket"
|
description="Deluxe Ticket"
|
||||||
additional_info="Wie das normale Ticket, aber mit doppelt so breitem Tisch (160cm)"
|
additional_info="Wie das normale Ticket, aber mit doppelt so breitem Tisch (160cm)"
|
||||||
can_be_sold=true
|
can_be_sold=true
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from bson import ObjectId
|
||||||
from rio import Component, Rectangle, Column, Text, Row, PointerEventListener, TextInput
|
from rio import Component, Rectangle, Column, Text, Row, PointerEventListener, TextInput
|
||||||
from rio.event import on_populate
|
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.components import ElmButton
|
||||||
from elm.services import UserService
|
from elm.services import UserService
|
||||||
|
|
||||||
@@ -16,6 +17,7 @@ class AccountInfoBox(Component):
|
|||||||
password_input_blocked: bool = False
|
password_input_blocked: bool = False
|
||||||
password_change_in_progress: bool = False
|
password_change_in_progress: bool = False
|
||||||
ticket: Optional[Ticket] = None
|
ticket: Optional[Ticket] = None
|
||||||
|
seat: Optional[Seat] = None
|
||||||
|
|
||||||
@on_populate
|
@on_populate
|
||||||
async def on_populate(self) -> None:
|
async def on_populate(self) -> None:
|
||||||
@@ -24,6 +26,7 @@ class AccountInfoBox(Component):
|
|||||||
if user:
|
if user:
|
||||||
self.mail = user.user_mail
|
self.mail = user.user_mail
|
||||||
self.ticket = await Ticket.find_one({"owner.$id": user.id})
|
self.ticket = await Ticket.find_one({"owner.$id": user.id})
|
||||||
|
self.seat = await Seat.find_one({"user.$id": ObjectId(user.id)})
|
||||||
else:
|
else:
|
||||||
self.session.navigate_to("./login")
|
self.session.navigate_to("./login")
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@@ -63,8 +66,11 @@ class AccountInfoBox(Component):
|
|||||||
def build(self) -> Component:
|
def build(self) -> Component:
|
||||||
row_col = Row
|
row_col = Row
|
||||||
ticket_text = "-"
|
ticket_text = "-"
|
||||||
|
seat_text = "-"
|
||||||
if self.ticket:
|
if self.ticket:
|
||||||
ticket_text = self.ticket.category
|
ticket_text = self.ticket.category
|
||||||
|
if self.seat:
|
||||||
|
seat_text = self.seat.seat_id
|
||||||
if self.session.is_mobile():
|
if self.session.is_mobile():
|
||||||
row_col = Column
|
row_col = Column
|
||||||
|
|
||||||
@@ -99,13 +105,13 @@ class AccountInfoBox(Component):
|
|||||||
),
|
),
|
||||||
PointerEventListener(
|
PointerEventListener(
|
||||||
Rectangle(
|
Rectangle(
|
||||||
content=Row(Text("Sitzplatz:", margin=1, overflow="wrap", justify="left"), Text("-", margin=1, overflow="wrap", justify="right")),
|
content=Row(Text("Sitzplatz:", margin=1, overflow="wrap", justify="left"), Text(seat_text, margin=1, overflow="wrap", justify="right")),
|
||||||
fill=self.session.theme.danger_color_dark,
|
fill=self.session.theme.success_color if self.seat else self.session.theme.danger_color_dark,
|
||||||
stroke_width=0.1,
|
stroke_width=0.1,
|
||||||
stroke_color=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.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_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,
|
transition_time=0.2,
|
||||||
cursor="pointer"
|
cursor="pointer"
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user