Files
tinker_tickets/migrations/MIGRATION_009_INSTRUCTIONS.md

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

  1. Updates any existing tickets with status "Resolved" to "Closed"
  2. Deletes all status transitions involving "Resolved"
  3. Creates new workflow with "Pending" status
  4. 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-Pending styling with purple color (#9c27b0) and pause icon
  • /assets/css/ticket.css - Added .status-Pending styling

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:

  1. 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';
    
  2. 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;
    
  3. 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';