From 844a28111a3f40d207db59bdb486f84650b86551 Mon Sep 17 00:00:00 2001 From: Cam Proudlock Date: Tue, 21 Jul 2026 09:49:14 -0400 Subject: [PATCH] displays: IP-driven display role (dashboard/lobby/kiosk) --- .../views/settings/DashboardDefaultsList.vue | 33 +++++++-- .../7d28_dashboarddefault_displayrole.py | 63 +++++++++++++++++ shopdb/core/api/dashboarddefaults.py | 68 +++++++++++++++++-- shopdb/core/models/dashboarddefault.py | 30 ++++++-- tests/test_core/test_dashboarddefaults.py | 45 ++++++++++++ 5 files changed, 218 insertions(+), 21 deletions(-) create mode 100644 migrations/versions/7d28_dashboarddefault_displayrole.py diff --git a/frontend/src/views/settings/DashboardDefaultsList.vue b/frontend/src/views/settings/DashboardDefaultsList.vue index 17a9b64a..04fd157d 100644 --- a/frontend/src/views/settings/DashboardDefaultsList.vue +++ b/frontend/src/views/settings/DashboardDefaultsList.vue @@ -6,9 +6,9 @@

- Map a kiosk/lobby display's IP address to the business unit it should show. - The shopfloor dashboard auto-selects this business unit by the display's IP - when none is chosen. + Map a display PC's IP address to what it should show: the shopfloor + dashboard (and which business unit), the lobby slideshow, or the 3D parts + kiosk. A single "display" image resolves its role from its own IP.

@@ -20,6 +20,7 @@ IP Address + Display Business Unit Description Actions @@ -28,6 +29,7 @@ {{ d.ipaddress }} + {{ roleLabel(d.displayrole) }} {{ d.businessunit || '-' }} {{ d.description || '-' }} @@ -36,7 +38,7 @@ - + No mappings yet @@ -60,8 +62,15 @@ placeholder="e.g., 10.20.30.40" required />
+ + +
+
-