Add USB, Notifications, Network plugins and reusable EmployeeSearch component
New Plugins: - USB plugin: Device checkout/checkin with employee lookup, checkout history - Notifications plugin: Announcements with types, scheduling, shopfloor display - Network plugin: Network device management with subnets and VLANs - Equipment and Computers plugins: Asset type separation Frontend: - EmployeeSearch component: Reusable employee lookup with autocomplete - USB views: List, detail, checkout/checkin modals - Notifications views: List, form with recognition mode - Network views: Device list, detail, form - Calendar view with FullCalendar integration - Shopfloor and TV dashboard views - Reports index page - Map editor for asset positioning - Light/dark mode fixes for map tooltips Backend: - Employee search API with external lookup service - Collector API for PowerShell data collection - Reports API endpoints - Slides API for TV dashboard - Fixed AppVersion model (removed BaseModel inheritance) - Added checkout_name column to usbcheckouts table Styling: - Unified detail page styles - Improved pagination (page numbers instead of prev/next) - Dark/light mode theme improvements Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
88
scripts/migration/fix_legacy_schema.sql
Normal file
88
scripts/migration/fix_legacy_schema.sql
Normal file
@@ -0,0 +1,88 @@
|
||||
-- =============================================================================
|
||||
-- Legacy Schema Migration Script
|
||||
-- Adds missing columns to make VBScript ShopDB compatible with Flask ShopDB
|
||||
-- =============================================================================
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- appowners table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE appowners
|
||||
ADD COLUMN IF NOT EXISTS email VARCHAR(100) NULL,
|
||||
ADD COLUMN IF NOT EXISTS phone VARCHAR(50) NULL,
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- pctypes / computertypes alignment
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- The Flask app uses pctype table but expects certain columns
|
||||
ALTER TABLE pctype
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW();
|
||||
|
||||
-- Ensure isactive is correct type
|
||||
ALTER TABLE pctype MODIFY COLUMN isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- statuses table (if needed - Flask uses assetstatuses)
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- assetstatuses already populated earlier
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- subnets table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE subnets
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- vlans table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE vlans
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- usbdevices table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE usbdevices
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS isactive TINYINT(1) DEFAULT 1;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- usbcheckouts table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE usbcheckouts
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW();
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- notifications table
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE notifications
|
||||
ADD COLUMN IF NOT EXISTS createddate DATETIME DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS modifieddate DATETIME DEFAULT NOW();
|
||||
|
||||
-- Copy dates from existing columns if they exist
|
||||
UPDATE notifications SET createddate = startdate WHERE createddate IS NULL;
|
||||
UPDATE notifications SET modifieddate = startdate WHERE modifieddate IS NULL;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- Verify key counts
|
||||
-- -----------------------------------------------------------------------------
|
||||
SELECT 'Migration complete. Record counts:' as status;
|
||||
SELECT 'vendors' as tbl, COUNT(*) as cnt FROM vendors
|
||||
UNION ALL SELECT 'models', COUNT(*) FROM models
|
||||
UNION ALL SELECT 'machinetypes', COUNT(*) FROM machinetypes
|
||||
UNION ALL SELECT 'operatingsystems', COUNT(*) FROM operatingsystems
|
||||
UNION ALL SELECT 'businessunits', COUNT(*) FROM businessunits
|
||||
UNION ALL SELECT 'applications', COUNT(*) FROM applications
|
||||
UNION ALL SELECT 'machines', COUNT(*) FROM machines
|
||||
UNION ALL SELECT 'printers', COUNT(*) FROM printers
|
||||
UNION ALL SELECT 'assets', COUNT(*) FROM assets
|
||||
UNION ALL SELECT 'knowledgebase', COUNT(*) FROM knowledgebase
|
||||
UNION ALL SELECT 'notifications', COUNT(*) FROM notifications;
|
||||
Reference in New Issue
Block a user