From 5a0017cd9a09004d3a16763d36b6c9a0f30f82ab Mon Sep 17 00:00:00 2001 From: Cam Proudlock Date: Fri, 7 Aug 2026 14:30:18 -0400 Subject: [PATCH] backups plugin with NTLARS revision history; shopfloor dashboard upcoming cards and state chips --- frontend/src/views/ShopfloorDashboard.vue | 148 +++- plugins/backups/__init__.py | 5 + plugins/backups/api/__init__.py | 5 + plugins/backups/api/routes.py | 306 +++++++++ plugins/backups/frontend/routes.js | 21 + .../backups/frontend/views/BackupHistory.vue | 210 ++++++ plugins/backups/manifest.json | 14 + plugins/backups/migrations/env.py | 16 + plugins/backups/migrations/script.py.mako | 24 + .../versions/0001_backups_baseline.py | 61 ++ plugins/backups/models/__init__.py | 5 + plugins/backups/models/backup.py | 123 ++++ plugins/backups/plugin.py | 332 +++++++++ plugins/backups/services/__init__.py | 6 + plugins/backups/services/dncinfo.py | 161 +++++ plugins/backups/services/ntlars.py | 308 +++++++++ plugins/backups/services/registry.py | 237 +++++++ plugins/backups/services/retention.py | 68 ++ scripts/import_ntlars_backups.py | 137 ++++ shopdb/plugins/alembic_template.py | 1 + tests/test_plugin_migrations.py | 2 + tests/test_plugins/test_backups.py | 633 ++++++++++++++++++ 22 files changed, 2818 insertions(+), 5 deletions(-) create mode 100644 plugins/backups/__init__.py create mode 100644 plugins/backups/api/__init__.py create mode 100644 plugins/backups/api/routes.py create mode 100644 plugins/backups/frontend/routes.js create mode 100644 plugins/backups/frontend/views/BackupHistory.vue create mode 100644 plugins/backups/manifest.json create mode 100644 plugins/backups/migrations/env.py create mode 100644 plugins/backups/migrations/script.py.mako create mode 100644 plugins/backups/migrations/versions/0001_backups_baseline.py create mode 100644 plugins/backups/models/__init__.py create mode 100644 plugins/backups/models/backup.py create mode 100644 plugins/backups/plugin.py create mode 100644 plugins/backups/services/__init__.py create mode 100644 plugins/backups/services/dncinfo.py create mode 100644 plugins/backups/services/ntlars.py create mode 100644 plugins/backups/services/registry.py create mode 100644 plugins/backups/services/retention.py create mode 100644 scripts/import_ntlars_backups.py create mode 100644 tests/test_plugins/test_backups.py diff --git a/frontend/src/views/ShopfloorDashboard.vue b/frontend/src/views/ShopfloorDashboard.vue index 2527e33c..d182cb92 100644 --- a/frontend/src/views/ShopfloorDashboard.vue +++ b/frontend/src/views/ShopfloorDashboard.vue @@ -37,8 +37,10 @@ v-for="n in group.items" :key="n.notificationid" class="banner-strip" + :class="{ pending: n.upcoming || n.resolved }" :style="{ backgroundColor: getTypeColor(n.typecolor) }" > + {{ stateLabel(n) }} {{ n.notification }} @@ -47,14 +49,15 @@
{{ group.typename }}
+ +
{{ group.typename }} ({{ group.items.length }}) {{ gridRangeLabel(group) }} @@ -105,7 +132,7 @@ v-for="rec in gridPageItems(group)" :key="`grid-${rec.notificationid}-${rec.employeesso}`" class="recert-tile" - :class="{ 'message-tile': !hasEmployee(rec) }" + :class="{ 'message-tile': !hasEmployee(rec), pending: rec.upcoming || rec.resolved }" :style="{ '--accent': getTypeColor(rec.typecolor) }" >