From 530efcd286018a162f9c272aef2b0381ec9aa780 Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Tue, 13 May 2025 07:10:24 +0200 Subject: [PATCH 1/4] make portrait mode optional --- src/ez_lan_manager/components/LoginBox.py | 9 +++--- src/ez_lan_manager/components/NewsPost.py | 12 +++---- src/ez_lan_manager/pages/BasePage.py | 32 ++++++++++++++----- src/ez_lan_manager/pages/ManageNewsPage.py | 8 ++--- .../services/DatabaseService.py | 1 - 5 files changed, 37 insertions(+), 25 deletions(-) diff --git a/src/ez_lan_manager/components/LoginBox.py b/src/ez_lan_manager/components/LoginBox.py index b397b6b..6dceaa4 100644 --- a/src/ez_lan_manager/components/LoginBox.py +++ b/src/ez_lan_manager/components/LoginBox.py @@ -9,7 +9,6 @@ from src.ez_lan_manager.types.User import User class LoginBox(Component): status_change_cb: EventHandler = None - TEXT_STYLE = TextStyle(fill=Color.from_hex("02dac5"), font_size=0.9) user_name_input_text: str = "" password_input_text: str = "" user_name_input_is_valid = True @@ -57,7 +56,7 @@ class LoginBox(Component): is_valid=self.password_input_is_valid ) login_button = Button( - Text("LOGIN", style=self.TEXT_STYLE, justify="center"), + Text("LOGIN", fill=Color.from_hex("02dac5"), style=TextStyle(font_size=0.9), justify="center"), shape="rectangle", style="minor", color="secondary", @@ -65,14 +64,14 @@ class LoginBox(Component): on_press=self._on_login_pressed ) register_button = Button( - Text("REG", style=self.TEXT_STYLE, justify="center"), + Text("REG", fill=Color.from_hex("02dac5"), style=TextStyle(font_size=0.9), justify="center"), shape="rectangle", style="minor", color="secondary", on_press=lambda: self.session.navigate_to("./register") ) forgot_password_button = Button( - Text("LST PWD", style=self.TEXT_STYLE, justify="center"), + Text("LST PWD", fill=Color.from_hex("02dac5"), style=TextStyle(font_size=0.9), justify="center"), shape="rectangle", style="minor", color="secondary", @@ -95,7 +94,7 @@ class LoginBox(Component): ), margin_bottom=0.5 ), - Text(text="Dieses Konto\nist gesperrt", style=TextStyle(fill=self.session.theme.danger_color, font_size=0.9 if self.is_account_locked else 0), align_x=0.5), + Text(text="Dieses Konto\nist gesperrt", fill=self.session.theme.danger_color, style=TextStyle(font_size=0.9 if self.is_account_locked else 0), align_x=0.5), spacing=0.4 ), fill=Color.TRANSPARENT, diff --git a/src/ez_lan_manager/components/NewsPost.py b/src/ez_lan_manager/components/NewsPost.py index 7d814bd..fe92888 100644 --- a/src/ez_lan_manager/components/NewsPost.py +++ b/src/ez_lan_manager/components/NewsPost.py @@ -21,8 +21,8 @@ class NewsPost(Component): grow_x=True, margin=2, margin_bottom=0, + fill=self.session.theme.background_color, style=TextStyle( - fill=self.session.theme.background_color, font_size=1.3 ), overflow="ellipsize" @@ -31,8 +31,8 @@ class NewsPost(Component): self.date, margin=2, align_x=1, + fill=self.session.theme.background_color, style=TextStyle( - fill=self.session.theme.background_color, font_size=0.6 ), overflow="wrap" @@ -44,8 +44,8 @@ class NewsPost(Component): margin=2, margin_top=0, margin_bottom=0, + fill=self.session.theme.background_color, style=TextStyle( - fill=self.session.theme.background_color, font_size=0.8 ), overflow="ellipsize" @@ -53,9 +53,7 @@ class NewsPost(Component): Text( self.text, margin=2, - style=TextStyle( - fill=self.session.theme.background_color - ), + fill=self.session.theme.background_color, overflow="wrap" ), Text( @@ -65,8 +63,8 @@ class NewsPost(Component): margin=2, margin_top=0, margin_bottom=1, + fill=self.session.theme.background_color, style=TextStyle( - fill=self.session.theme.background_color, font_size=0.5, italic=True ), diff --git a/src/ez_lan_manager/pages/BasePage.py b/src/ez_lan_manager/pages/BasePage.py index e5af87d..82add88 100644 --- a/src/ez_lan_manager/pages/BasePage.py +++ b/src/ez_lan_manager/pages/BasePage.py @@ -2,7 +2,7 @@ from __future__ import annotations from typing import * # type: ignore -from rio import Component, event, Spacer, Card, Container, Column, Row, TextStyle, Color, Text, PageView +from rio import Component, event, Spacer, Card, Container, Column, Row, TextStyle, Color, Text, PageView, Button from src.ez_lan_manager import ConfigurationService, DatabaseService from src.ez_lan_manager.components.DesktopNavigation import DesktopNavigation @@ -11,6 +11,7 @@ class BasePage(Component): color = "secondary" corner_radius = (0, 0.5, 0, 0) footer_size = 53.1 + force_portrait_mode = False @event.periodic(60) async def check_db_conn(self) -> None: @@ -32,6 +33,10 @@ class BasePage(Component): self.footer_size = 53.1 self.force_refresh() + def enforce_portrait_mode(self) -> None: + self.force_portrait_mode = True + self.force_refresh() + def build(self) -> Component: content = Card( PageView(), @@ -39,7 +44,7 @@ class BasePage(Component): min_width=38, corner_radius=(0, 0.5, 0, 0) ) - if self.session.window_width > 28: + if self.session.window_width > 28 or self.force_portrait_mode: return Container( content=Column( Column( @@ -53,7 +58,7 @@ class BasePage(Component): Row( Spacer(grow_x=True, grow_y=False), Card( - content=Text(f"EZ LAN Manager Version {self.session[ConfigurationService].APP_VERSION} © EZ GG e.V.", align_x=0.5, align_y=0.5, style=TextStyle(fill=self.session.theme.primary_color, font_size=0.5)), + content=Text(f"EZ LAN Manager Version {self.session[ConfigurationService].APP_VERSION} © EZ GG e.V.", align_x=0.5, align_y=0.5, fill=self.session.theme.primary_color, style=TextStyle(font_size=0.5)), color=self.session.theme.neutral_color, corner_radius=(0, 0, 0.5, 0.5), grow_x=False, @@ -72,10 +77,21 @@ class BasePage(Component): grow_y=True ) else: - return Text( - "Der EZ LAN Manager wird\nauf mobilen Endgeräten nur\nim Querformat unterstützt.\nBitte drehe dein Gerät.", - align_x=0.5, - align_y=0.5, - style=TextStyle(fill=Color.from_hex("FFFFFF"), font_size=0.8) + return Column( + Text( + "Wir empfehlen auf\nmobilen Endgeräten im\nQuerformat zu arbeiten.\n\nBitte drehe dein Gerät.", + fill=Color.from_hex("FFFFFF"), + align_x=0.5, + align_y=0.5, + style=TextStyle(font_size=0.8) + ), + Button( + content=Text("Ohne drehen fortfahren", margin=0.2), + style="minor", + shape="rounded", + align_x=0.5, + align_y=0, + on_press=self.enforce_portrait_mode + ) ) diff --git a/src/ez_lan_manager/pages/ManageNewsPage.py b/src/ez_lan_manager/pages/ManageNewsPage.py index aa41017..d8d8886 100644 --- a/src/ez_lan_manager/pages/ManageNewsPage.py +++ b/src/ez_lan_manager/pages/ManageNewsPage.py @@ -78,8 +78,8 @@ class ManageNewsPage(Component): Column( Text( text="News Verwaltung", + fill=self.session.theme.background_color, style=TextStyle( - fill=self.session.theme.background_color, font_size=1.2 ), margin_top=2, @@ -88,8 +88,8 @@ class ManageNewsPage(Component): ), Text( text="Neuen News Post erstellen", + fill=self.session.theme.background_color, style=TextStyle( - fill=self.session.theme.background_color, font_size=1.1 ), margin_top=2, @@ -106,8 +106,8 @@ class ManageNewsPage(Component): ), Text( text="Post erfolgreich erstellt", + fill=self.session.theme.success_color, style=TextStyle( - fill=self.session.theme.success_color, font_size=0.7 if self.show_success_message else 0 ), margin_top=0.1, @@ -116,8 +116,8 @@ class ManageNewsPage(Component): ), Text( text="Bisherige Posts", + fill=self.session.theme.background_color, style=TextStyle( - fill=self.session.theme.background_color, font_size=1.1 ), margin_top=2, diff --git a/src/ez_lan_manager/services/DatabaseService.py b/src/ez_lan_manager/services/DatabaseService.py index 7f6c532..e155fe2 100644 --- a/src/ez_lan_manager/services/DatabaseService.py +++ b/src/ez_lan_manager/services/DatabaseService.py @@ -232,7 +232,6 @@ class DatabaseService: except aiomysql.InterfaceError: pool_init_result = await self.init_db_pool() if not pool_init_result: - print(self._connection_pool) raise NoDatabaseConnectionError return await self.get_news(dt_start, dt_end) except Exception as e: From 1091179492d51406f34d87fbfc8d86361ce09283 Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Sun, 13 Jul 2025 23:37:17 +0200 Subject: [PATCH 2/4] upgrade rio to 0.11.2rc6 --- requirements.txt | Bin 222 -> 228 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/requirements.txt b/requirements.txt index c63e3374d90eb92e397afc80f29683f72e17fe0c..2a749b4f5ef783a7645599d1596d7db63e3b2a89 100644 GIT binary patch delta 17 Ycmcb|_=Isn61x#Y5koSA*~H{(05l*4Y5)KL delta 11 ScmaFDc#m;H5~Jb7%xVA|yaZkV From 29caadaca28dcfe75a9a876c0e4f8ef25930f299 Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Sat, 26 Jul 2025 14:16:09 +0200 Subject: [PATCH 3/4] rename lan --- 502.html | 4 +-- README.md | 12 ++++---- config/config.example.toml | 4 +-- docker-compose.yml | 10 +++---- sql/create_database.sql | 6 ++-- src/{EzLanManager.py => EzggLanManager.py} | 20 +++++++------- .../__init__.py | 26 +++++++++--------- .../assets/fonts/joystix.otf | Bin .../assets/img/anon_pfp.png | Bin .../assets/img/favicon.png | Bin .../components/AnimatedText.py | 0 .../components/CateringCartItem.py | 2 +- .../CateringManagementOrderDisplay.py | 6 ++-- .../components/CateringOrderItem.py | 2 +- .../components/CateringSelectionItem.py | 2 +- .../components/DesktopNavigation.py | 14 +++++----- .../components/DesktopNavigationButton.py | 0 .../components/LoginBox.py | 8 +++--- .../components/MainViewContentBox.py | 0 .../components/NewTransactionForm.py | 4 +-- .../components/NewsPost.py | 0 .../components/SeatingPlan.py | 4 +-- .../components/SeatingPlanInfoBox.py | 4 +-- .../components/SeatingPlanPixels.py | 4 +-- .../components/SeatingPurchaseBox.py | 0 .../components/ShoppingCartAndOrders.py | 12 ++++---- .../components/TicketBuyCard.py | 6 ++-- .../components/UserEditForm.py | 10 +++---- .../components/UserInfoAndLoginBox.py | 6 ++-- .../components/UserInfoBox.py | 20 +++++++------- .../components/UserInfoBoxButton.py | 0 .../components/__init__.py | 0 .../helpers/LoggedInGuard.py | 4 +-- .../helpers/create_demo_database_content.py | 10 +++---- .../pages/Account.py | 10 +++---- .../pages/BasePage.py | 6 ++-- .../pages/BuyTicketPage.py | 16 +++++------ .../pages/CateringPage.py | 12 ++++---- .../pages/ContactPage.py | 8 +++--- .../pages/DbErrorPage.py | 10 +++---- .../pages/EditProfile.py | 10 +++---- .../pages/FaqPage.py | 4 +-- .../pages/ForgotPassword.py | 4 +-- .../pages/GuestsPage.py | 8 +++--- .../pages/ImprintPage.py | 4 +-- .../pages/ManageCateringPage.py | 10 +++---- .../pages/ManageNewsPage.py | 10 +++---- .../pages/ManageTournamentsPage.py | 4 +-- .../pages/ManageUsersPage.py | 16 +++++------ .../pages/NewsPage.py | 6 ++-- .../pages/OverviewPage.py | 4 +-- .../pages/PlaceholderPage.py | 4 +-- .../pages/RegisterPage.py | 6 ++-- .../pages/RulesPage.py | 4 +-- .../pages/SeatingPlanPage.py | 18 ++++++------ .../pages/TEMPLATE.py | 4 +-- .../pages/TournamentsPage.py | 4 +-- .../pages/__init__.py | 0 .../services/AccountingService.py | 4 +-- .../services/CateringService.py | 12 ++++---- .../services/ConfigurationService.py | 2 +- .../services/DatabaseService.py | 18 ++++++------ .../services/LocalDataService.py | 2 +- .../services/MailingService.py | 2 +- .../services/NewsService.py | 4 +-- .../services/ReceiptPrintingService.py | 8 +++--- .../services/SeatingService.py | 8 +++--- .../services/TicketingService.py | 8 +++--- .../services/UserService.py | 4 +-- .../services/__init__.py | 0 .../types/CateringMenuItem.py | 0 .../types/CateringOrder.py | 4 +-- .../types/ConfigurationTypes.py | 0 .../types/News.py | 2 +- .../types/Seat.py | 2 +- .../types/SessionStorage.py | 0 .../types/Ticket.py | 2 +- .../types/Transaction.py | 0 .../types/User.py | 0 .../types/__init__.py | 0 testing/unittests/AccountingServiceTests.py | 4 +-- 81 files changed, 234 insertions(+), 234 deletions(-) rename src/{EzLanManager.py => EzggLanManager.py} (89%) rename src/{ez_lan_manager => ezgg_lan_manager}/__init__.py (63%) rename src/{ez_lan_manager => ezgg_lan_manager}/assets/fonts/joystix.otf (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/assets/img/anon_pfp.png (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/assets/img/favicon.png (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/AnimatedText.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/CateringCartItem.py (95%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/CateringManagementOrderDisplay.py (95%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/CateringOrderItem.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/CateringSelectionItem.py (98%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/DesktopNavigation.py (89%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/DesktopNavigationButton.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/LoginBox.py (93%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/MainViewContentBox.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/NewTransactionForm.py (95%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/NewsPost.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/SeatingPlan.py (98%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/SeatingPlanInfoBox.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/SeatingPlanPixels.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/SeatingPurchaseBox.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/ShoppingCartAndOrders.py (94%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/TicketBuyCard.py (94%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/UserEditForm.py (95%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/UserInfoAndLoginBox.py (65%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/UserInfoBox.py (87%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/UserInfoBoxButton.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/components/__init__.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/helpers/LoggedInGuard.py (85%) rename src/{ez_lan_manager => ezgg_lan_manager}/helpers/create_demo_database_content.py (97%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/Account.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/BasePage.py (89%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/BuyTicketPage.py (88%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/CateringPage.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/ContactPage.py (94%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/DbErrorPage.py (84%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/EditProfile.py (68%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/FaqPage.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/ForgotPassword.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/GuestsPage.py (92%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/ImprintPage.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/ManageCateringPage.py (94%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/ManageNewsPage.py (93%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/ManageTournamentsPage.py (87%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/ManageUsersPage.py (95%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/NewsPage.py (80%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/OverviewPage.py (98%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/PlaceholderPage.py (83%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/RegisterPage.py (96%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/RulesPage.py (98%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/SeatingPlanPage.py (88%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/TEMPLATE.py (89%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/TournamentsPage.py (89%) rename src/{ez_lan_manager => ezgg_lan_manager}/pages/__init__.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/AccountingService.py (95%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/CateringService.py (92%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/ConfigurationService.py (97%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/DatabaseService.py (98%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/LocalDataService.py (89%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/MailingService.py (93%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/NewsService.py (91%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/ReceiptPrintingService.py (85%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/SeatingService.py (86%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/TicketingService.py (91%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/UserService.py (95%) rename src/{ez_lan_manager => ezgg_lan_manager}/services/__init__.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/CateringMenuItem.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/CateringOrder.py (91%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/ConfigurationTypes.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/News.py (83%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/Seat.py (78%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/SessionStorage.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/Ticket.py (82%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/Transaction.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/User.py (100%) rename src/{ez_lan_manager => ezgg_lan_manager}/types/__init__.py (100%) diff --git a/502.html b/502.html index c0bf0c9..9867746 100644 --- a/502.html +++ b/502.html @@ -1,6 +1,6 @@ - EZ LAN Manager - Wartungsmodus + EZGG LAN Manager - Wartungsmodus