From 12c1c3c511514813aa86b2de83b11a88dad6cedc Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Tue, 24 Feb 2026 22:04:16 +0100 Subject: [PATCH] fix: loyalty sidebar menu label and active state highlighting - Rename menu item IDs to match URL last segments (terminal, cards, stats) so the sidebar active state comparison works correctly - Change "Dashboard" label to "Terminal" for the loyalty terminal page - Point menu route directly to /loyalty/terminal (skip redirect) - Add "terminal" translation key in all locale files (en, de, fr, lb) Co-Authored-By: Claude Opus 4.6 --- app/modules/loyalty/config.py | 2 +- app/modules/loyalty/definition.py | 10 +++++----- app/modules/loyalty/locales/de.json | 1 + app/modules/loyalty/locales/en.json | 1 + app/modules/loyalty/locales/fr.json | 1 + app/modules/loyalty/locales/lb.json | 1 + 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/modules/loyalty/config.py b/app/modules/loyalty/config.py index 0aa1438f..d8297eb3 100644 --- a/app/modules/loyalty/config.py +++ b/app/modules/loyalty/config.py @@ -43,7 +43,7 @@ class ModuleConfig(BaseSettings): # QR code settings qr_code_size: int = 300 # pixels - model_config = {"env_prefix": "LOYALTY_", "env_file": ".env", "extra": "ignore"} + model_config = {"env_prefix": "LOYALTY_"} # Export for auto-discovery diff --git a/app/modules/loyalty/definition.py b/app/modules/loyalty/definition.py index b01e4f36..60c23fe0 100644 --- a/app/modules/loyalty/definition.py +++ b/app/modules/loyalty/definition.py @@ -155,21 +155,21 @@ loyalty_module = ModuleDefinition( order=35, items=[ MenuItemDefinition( - id="loyalty", - label_key="loyalty.menu.dashboard", + id="terminal", + label_key="loyalty.menu.terminal", icon="gift", - route="/store/{store_code}/loyalty", + route="/store/{store_code}/loyalty/terminal", order=10, ), MenuItemDefinition( - id="loyalty-cards", + id="cards", label_key="loyalty.menu.customer_cards", icon="identification", route="/store/{store_code}/loyalty/cards", order=20, ), MenuItemDefinition( - id="loyalty-stats", + id="stats", label_key="loyalty.menu.statistics", icon="chart-bar", route="/store/{store_code}/loyalty/stats", diff --git a/app/modules/loyalty/locales/de.json b/app/modules/loyalty/locales/de.json index afd927f1..b5463020 100644 --- a/app/modules/loyalty/locales/de.json +++ b/app/modules/loyalty/locales/de.json @@ -75,6 +75,7 @@ "programs": "Programme", "analytics": "Analytik", "dashboard": "Dashboard", + "terminal": "Terminal", "customer_cards": "Kundenkarten", "statistics": "Statistiken" } diff --git a/app/modules/loyalty/locales/en.json b/app/modules/loyalty/locales/en.json index 15a2b1af..a0b40756 100644 --- a/app/modules/loyalty/locales/en.json +++ b/app/modules/loyalty/locales/en.json @@ -75,6 +75,7 @@ "programs": "Programs", "analytics": "Analytics", "dashboard": "Dashboard", + "terminal": "Terminal", "customer_cards": "Customer Cards", "statistics": "Statistics" } diff --git a/app/modules/loyalty/locales/fr.json b/app/modules/loyalty/locales/fr.json index 79c17c25..df018e27 100644 --- a/app/modules/loyalty/locales/fr.json +++ b/app/modules/loyalty/locales/fr.json @@ -75,6 +75,7 @@ "programs": "Programmes", "analytics": "Analytique", "dashboard": "Tableau de bord", + "terminal": "Terminal", "customer_cards": "Cartes clients", "statistics": "Statistiques" } diff --git a/app/modules/loyalty/locales/lb.json b/app/modules/loyalty/locales/lb.json index f0a0fe90..954c69f5 100644 --- a/app/modules/loyalty/locales/lb.json +++ b/app/modules/loyalty/locales/lb.json @@ -75,6 +75,7 @@ "programs": "Programmer", "analytics": "Analytik", "dashboard": "Dashboard", + "terminal": "Terminal", "customer_cards": "Clientekaarten", "statistics": "Statistiken" }