fix seating plan info box not showing correct button
This commit is contained in:
parent
2f6e2b15aa
commit
dd8b79c254
@ -17,12 +17,21 @@ class SeatingPlanInfoBox(Component):
|
|||||||
seat_price: Decimal = Decimal("0")
|
seat_price: Decimal = Decimal("0")
|
||||||
is_blocked: bool = False
|
is_blocked: bool = False
|
||||||
has_user_ticket = False
|
has_user_ticket = False
|
||||||
|
booking_button_text = ""
|
||||||
|
|
||||||
@event.on_page_change
|
@event.on_populate
|
||||||
async def check_ticket(self) -> None:
|
async def check_ticket(self) -> None:
|
||||||
if self.session[SessionStorage].user_id:
|
if self.session[SessionStorage].user_id:
|
||||||
user_ticket = await self.session[TicketingService].get_user_ticket(self.session[SessionStorage].user_id)
|
user_ticket = await self.session[TicketingService].get_user_ticket(self.session[SessionStorage].user_id)
|
||||||
self.has_user_ticket = not (user_ticket is None)
|
self.has_user_ticket = not (user_ticket is None)
|
||||||
|
self.booking_button_text = "Buchen" if self.has_user_ticket else "Ticket kaufen"
|
||||||
|
self.force_refresh()
|
||||||
|
|
||||||
|
async def purchase_clicked(self):
|
||||||
|
if self.has_user_ticket:
|
||||||
|
await self.purchase_cb()
|
||||||
|
else:
|
||||||
|
self.session.navigate_to("./buy_ticket")
|
||||||
|
|
||||||
def build(self) -> Component:
|
def build(self) -> Component:
|
||||||
if not self.show:
|
if not self.show:
|
||||||
@ -47,7 +56,7 @@ class SeatingPlanInfoBox(Component):
|
|||||||
style=TextStyle(fill=self.session.theme.neutral_color), overflow="wrap", justify="center"),
|
style=TextStyle(fill=self.session.theme.neutral_color), overflow="wrap", justify="center"),
|
||||||
Button(
|
Button(
|
||||||
Text(
|
Text(
|
||||||
"Buchen" if self.has_user_ticket else "Ticket kaufen",
|
text=self.booking_button_text,
|
||||||
margin=1,
|
margin=1,
|
||||||
style=TextStyle(fill=self.session.theme.neutral_color, font_size=1.1),
|
style=TextStyle(fill=self.session.theme.neutral_color, font_size=1.1),
|
||||||
overflow="wrap",
|
overflow="wrap",
|
||||||
@ -59,7 +68,7 @@ class SeatingPlanInfoBox(Component):
|
|||||||
margin=1,
|
margin=1,
|
||||||
grow_y=False,
|
grow_y=False,
|
||||||
is_sensitive=not self.is_booking_blocked,
|
is_sensitive=not self.is_booking_blocked,
|
||||||
on_press=self.purchase_cb if self.has_user_ticket else partial(self.session.navigate_to, "./buy_ticket")
|
on_press=self.purchase_clicked
|
||||||
) if self.session[SessionStorage].user_id else Text(f"Du musst eingeloggt sein um einen Sitzplatz zu buchen", margin=1,
|
) if self.session[SessionStorage].user_id else Text(f"Du musst eingeloggt sein um einen Sitzplatz zu buchen", margin=1,
|
||||||
style=TextStyle(fill=self.session.theme.neutral_color), overflow="wrap", justify="center"),
|
style=TextStyle(fill=self.session.theme.neutral_color), overflow="wrap", justify="center"),
|
||||||
min_height=10
|
min_height=10
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user