From d7df5161d4be452fd0443bdaabea94367c377505 Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Fri, 20 Feb 2026 07:16:39 +0100 Subject: [PATCH] Feature: Inform user that he needs to be logged in to purchase a ticket --- VERSION | 2 +- src/ezgg_lan_manager/pages/BuyTicketPage.py | 32 +++++++++++++++------ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/VERSION b/VERSION index a2268e2..9fc80f9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.1 \ No newline at end of file +0.3.2 \ No newline at end of file diff --git a/src/ezgg_lan_manager/pages/BuyTicketPage.py b/src/ezgg_lan_manager/pages/BuyTicketPage.py index 9b01180..4ae6a6f 100644 --- a/src/ezgg_lan_manager/pages/BuyTicketPage.py +++ b/src/ezgg_lan_manager/pages/BuyTicketPage.py @@ -19,14 +19,18 @@ class BuyTicketPage(Component): popup_message: str = "" is_popup_success: bool = False is_buying_enabled: bool = False + is_user_logged_in: bool = False @event.on_populate async def on_populate(self) -> None: + self.session[SessionStorage].subscribe_to_logged_in_or_out_event(str(self.__class__), self.on_populate) await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Ticket kaufen") self.user = await self.session[UserService].get_user(self.session[SessionStorage].user_id) if self.user is None: # No user logged in self.is_buying_enabled = False + self.is_user_logged_in = False else: # User is logged in + self.is_user_logged_in = True possible_ticket = await self.session[TicketingService].get_user_ticket(self.user.user_id) self.user_ticket = possible_ticket if possible_ticket is not None: # User already has a ticket @@ -67,17 +71,29 @@ class BuyTicketPage(Component): def build(self) -> Component: ticket_infos = self.session[ConfigurationService].get_ticket_info() - header = Text( - "Tickets & Preise", - style=TextStyle( - fill=self.session.theme.background_color, - font_size=1.2 + header = Column( + Text( + "Tickets & Preise", + style=TextStyle( + fill=self.session.theme.background_color, + font_size=1.2 + ), + margin_top=2, + align_x=0.5 ), - margin_top=2, - margin_bottom=2, - align_x=0.5 + spacing=0.2 ) + if not self.is_user_logged_in: + header.add(Text( + "Du musst eingeloggt sein\num ein Ticket zu kaufen", + style=TextStyle( + fill=self.session.theme.background_color, + font_size=0.6 + ), + align_x=0.5 + )) + return Column( MainViewContentBox( Column(