3.1 KiB
3.1 KiB
Migration 009: Simplify Status Workflow
This migration removes the "Resolved" status and adds a "Pending" status to the ticket system.
Status Changes
Before (4 statuses):
- Open
- In Progress
- Resolved ❌ (being removed)
- Closed
After (4 statuses):
- Open
- Pending ✅ (new)
- In Progress
- Closed
What "Pending" Means
Pending status indicates a ticket is waiting on:
- External dependencies
- Third-party responses
- Parts/equipment to arrive
- Customer information
- Approval from another team
Unlike "In Progress" which means active work is happening, "Pending" means the ticket is blocked and waiting.
Running the Migration
On the tinkertickets server, run:
cd /var/www/html/tinkertickets/migrations
mysql -h 10.10.10.50 -u tinkertickets -p'&*woX!5R$x8Tyrm7zNxC' ticketing_system < 009_simplify_status_workflow.sql
What the Migration Does
- Updates any existing tickets with status "Resolved" to "Closed"
- Deletes all status transitions involving "Resolved"
- Creates new workflow with "Pending" status
- Sets up the following allowed transitions:
New Workflow Transitions:
From Open:
- → Pending (no comment required)
- → In Progress (no comment required)
- → Closed (requires comment)
From Pending:
- → Open (no comment required)
- → In Progress (no comment required)
- → Closed (requires comment)
From In Progress:
- → Open (no comment required)
- → Pending (no comment required)
- → Closed (requires comment)
From Closed:
- → Open (requires comment - explain why reopening)
- → In Progress (no comment required)
CSS Updates
The following CSS files have been updated:
- ✅
/assets/css/dashboard.css- Added.status-Pendingstyling with purple color (#9c27b0) and pause icon - ✅
/assets/css/ticket.css- Added.status-Pendingstyling
Visual Appearance
The Pending status will display as:
[⏸ PENDING]
- Purple color border and text
- Pause icon (⏸) to indicate waiting state
- Terminal-style glow effect
Verification
After running the migration, verify:
-
Check that all tickets previously marked "Resolved" are now "Closed":
SELECT COUNT(*) FROM tickets WHERE status = 'Resolved'; -- Should be 0 SELECT COUNT(*) FROM tickets WHERE status = 'Closed'; -
Check new transitions exist:
SELECT from_status, to_status FROM status_transitions WHERE from_status = 'Pending' OR to_status = 'Pending' ORDER BY from_status, to_status; -
Test creating a new ticket and changing its status to Pending in the UI
Rollback (if needed)
If you need to rollback this migration:
-- Restore Resolved status transitions
DELETE FROM status_transitions WHERE from_status = 'Pending' OR to_status = 'Pending';
INSERT INTO status_transitions (from_status, to_status, requires_comment) VALUES
('In Progress', 'Resolved', FALSE),
('Resolved', 'Closed', FALSE),
('Resolved', 'In Progress', TRUE),
('Open', 'Resolved', FALSE);
-- Update any Pending tickets to Open
UPDATE tickets SET status = 'Open' WHERE status = 'Pending';