upskill-event-manager/docs/TEMPLATE-AND-TICKETING-REQUIREMENTS.md
ben 7010b8a30e docs: add comprehensive UI/UX enhancement requirements for event creation form
- Added responsive field grouping requirements (same row -> columns)
- Rich text editor specifications for event description
- Featured image upload with preview/replace capabilities
- Virtual event toggle functionality
- Enhanced toggle controls for RSVP/Ticketing sections
- Advanced multi-select components for organizer/categories
- Single-select searchable venue field
- Modal popup forms for creating new entities
- Fixed missing form field labels documentation
- Implementation priority and technical considerations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 16:09:40 -03:00

14 KiB

Template and Ticketing System Requirements

Overview

This document outlines the requirements for integrating TEC ticketing system with the HVAC event creation form and updating the template system with real class templates.

TEC Ticketing Integration Requirements

Core Requirements

  • Connect form to TEC plugins' ticketing system
  • Same CRUD capabilities as regular TEC events
  • Support for tickets with prices, season passes, RSVPs
  • Mandatory collection of attendee information

Trainer Limitations

  • Trainers don't need to set SKUs (simplified interface)
  • Each ticket should have mandatory registration collection:
    • First name
    • Last name
    • Fields from TEC Ticket Fieldset Post ID 6235

Ticketing Features Needed

  • Ticket creation with pricing
  • Season pass support
  • RSVP functionality
  • Attendee information collection
  • Integration with TEC core ticketing system

Template System Updates

Current Issues

  • Modal popup not properly centered (positioned bottom-right, cropped)
  • Sample templates need replacement with real class templates

Required Templates

Based on cleaned template data from docs/reference/EVENT_TEMPLATES_2025-09-25.md:

  1. Transform Your HVAC Business with Manual J LiDAR

    • Source: Post ID 1658
    • Type: Half-day introductory training
    • Category: Business/Technology
    • Default Time: 8:00 AM - 12:00 PM
    • Default Price: $99 per person
  2. Master Static Pressure & Airflow: The Keys to Profitable Service

    • Source: Post ID 1661
    • Type: Half-day introductory training
    • Category: Technical/Performance
    • Default Time: 1:00 PM - 5:00 PM
    • Default Price: $99 per person
  3. Full-Day A/C and Heat Pump Commissioning & Diagnostics Mastery with measureQuick

    • Source: Post ID 5295
    • Type: Full-day advanced training
    • Category: Technical/Diagnostics
    • Default Time: 8:00 AM - 5:00 PM
    • Default Price: $99 per person
  4. ACCA QI5 Quality Installation Certificates - VSP and VEO

    • Source: Post ID 1663
    • Type: Full-day intermediate certification
    • Category: Certification/Standards
    • Default Time: 8:00 AM - 4:00 PM
    • Default Price: $129 per person
  5. Advanced Class: Building Science Meets HVAC Performance

    • Source: Post ID 1665
    • Type: Three-day advanced training
    • Category: Advanced/Building Science
    • Default Time: 8:00 AM - 5:00 PM (3 days)
    • Default Price: $1200 per person
  6. measureQuick for Gas Heating

    • Source: Post ID 5737
    • Type: Half-day product training
    • Category: Product Training/Gas Systems
    • Default Time: 8:00 AM - 2:00 PM
    • Default Price: $150 per person

Template Data Structure

Each template should include:

  • Title
  • Description (from source post)
  • Start time (time only, no date)
  • End time (time only, no date)
  • Default ticket structure
  • Category classification
  • Duration/type indicators

Implementation Plan

Phase 1: Analysis and Planning

  1. Analyze current TEC integration points
  2. Examine TEC Ticket Fieldset Post ID 6235 structure
  3. Review existing form builder capabilities
  4. Identify required modifications to HVAC_Event_Form_Builder

Phase 2: TEC Ticketing Integration

  1. Extend HVAC_Event_Form_Builder with TEC ticketing fields
  2. Implement mandatory attendee information collection
  3. Connect to TEC ticket creation API
  4. Add ticket pricing and management fields
  5. Integrate with TEC RSVP system

Phase 3: Template System Fixes

  1. Fix modal positioning CSS issues
  2. Fetch real template data from specified post IDs
  3. Create template data structure with proper categorization
  4. Update template modal with real class information
  5. Implement template application with ticket data

Phase 4: Testing and Validation

  1. Test TEC ticketing integration
  2. Validate attendee information collection
  3. Test template modal positioning
  4. Verify template application functionality
  5. End-to-end testing of event creation flow

Technical Considerations

TEC Integration Points

  • TEC Core ticketing API
  • TEC Community Events integration
  • TEC Tickets Plus (if applicable)
  • Custom field integration

Database Requirements

  • Integration with TEC events tables
  • Ticket information storage
  • Attendee data collection
  • Custom field mappings

UI/UX Considerations

  • Simplified trainer interface
  • Mandatory field validation
  • Modal positioning fixes
  • Responsive template selection

Implementation Plan

Analysis Results

Current Architecture

  • HVAC_Event_Form_Builder (1296 lines): Core form builder with template integration
  • HVAC_TEC_Integration (357 lines): URL routing and iframe embedding, lacks ticketing
  • page-tec-create-event.php: Contains modal with hardcoded sample templates and positioning issues

Key Findings

  1. Template System: Uses hardcoded JavaScript sample data instead of real posts
  2. TEC Integration: Handles iframe embedding but lacks ticketing system integration
  3. Modal Issues: CSS positioning causes bottom-right placement and cropping
  4. Missing Components: No direct TEC ticketing API integration, no fieldset integration

Phase-by-Phase Implementation

Phase 1: Modal Positioning Fix (Immediate - 30 minutes)

Files to modify:

  • templates/page-tec-create-event.php

Changes required:

/* Fix modal positioning in CSS section */
.template-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* Center the modal */
    z-index: 10000;
    max-height: 80vh;
    overflow-y: auto;
}

Phase 2: Template System Updates (1-2 hours)

Files to modify:

  • templates/page-tec-create-event.php (JavaScript section)
  • includes/class-hvac-event-form-builder.php (template loading methods)

Changes required:

  1. Replace hardcoded template JavaScript with real template data
  2. Create template data structure from cleaned template reference
  3. Update template loading to use standardized format
  4. Add template categorization and filtering

Template Data Format:

const templates = [
    {
        id: 'manual-j-lidar',
        title: 'Transform Your HVAC Business with Manual J LiDAR',
        category: 'Business/Technology',
        duration: 'Half Day',
        difficulty: 'Introductory',
        defaultTime: { start: '08:00', end: '12:00' },
        defaultPrice: 99,
        description: 'Master iPad-based Manual J calculations and measureQuick fundamentals...',
        requirements: 'No special Heating Cooling Equip. Needs, good Internet connection',
        maxStudents: null
    }
    // ... other templates
];

Phase 3: TEC Ticketing Integration (3-4 hours)

Files to modify:

  • includes/class-hvac-event-form-builder.php
  • includes/class-hvac-tec-integration.php
  • Create new: includes/class-hvac-tec-tickets.php

Changes required:

  1. Analyze TEC Ticket Fieldset Post ID 6235

    • Extract field definitions and requirements
    • Map mandatory fields: first name, last name, custom fields
  2. Extend HVAC_Event_Form_Builder with ticketing fields:

    // Add methods
    private function add_ticket_fields()
    private function add_tec_fieldset_integration()
    private function validate_ticket_requirements()
    
  3. Create TEC tickets integration class:

    class HVAC_TEC_Tickets {
        public function create_event_tickets($event_id, $ticket_data)
        public function get_fieldset_fields($fieldset_id = 6235)
        public function validate_attendee_data($attendee_data)
        private function integrate_with_tec_api()
    }
    
  4. Add ticket management UI elements:

    • Ticket pricing fields
    • Season pass options
    • RSVP configuration
    • Attendee information requirements

Phase 4: Fieldset Integration (1-2 hours)

Files to investigate:

  • TEC Ticket Fieldset Post ID 6235 structure
  • TEC Community Events ticket field mapping

Changes required:

  1. Extract fieldset field definitions from Post ID 6235
  2. Create dynamic form field generation based on fieldset
  3. Add validation for mandatory attendee information
  4. Integrate with TEC ticket creation workflow

Phase 5: Testing and Validation (2-3 hours)

Testing checklist:

  1. Modal positioning fixes across different screen sizes
  2. Template selection and form population
  3. TEC ticket creation with proper fieldset integration
  4. Attendee information collection and validation
  5. End-to-end event creation workflow
  6. Integration with existing TEC Community Events

Technical Implementation Details

Modal Fix Implementation

/* Replace existing modal CSS with: */
.template-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 800px;
    max-height: 80vh;
    background: white;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
    z-index: 10000;
    overflow-y: auto;
}

Template Data Integration

// In HVAC_Event_Form_Builder
private function get_real_templates() {
    return [
        [
            'id' => 'manual-j-lidar',
            'title' => 'Transform Your HVAC Business with Manual J LiDAR',
            'description' => $this->get_template_description('manual-j-lidar'),
            'default_start_time' => '08:00',
            'default_end_time' => '12:00',
            'default_price' => 99,
            'category' => 'Business/Technology',
            'difficulty' => 'Introductory',
            'duration' => 'Half Day'
        ]
        // ... other templates
    ];
}

TEC Ticketing Integration

// New class: HVAC_TEC_Tickets
class HVAC_TEC_Tickets {

    public function create_tickets_for_event($event_id, $tickets_data) {
        foreach ($tickets_data as $ticket) {
            $ticket_id = $this->create_tec_ticket($event_id, $ticket);
            $this->add_fieldset_requirements($ticket_id, 6235);
        }
    }

    private function get_tec_fieldset_fields($fieldset_id) {
        // Extract field definitions from TEC Ticket Fieldset
        $fieldset_post = get_post($fieldset_id);
        return $this->parse_fieldset_structure($fieldset_post);
    }
}

Priority Order

  1. IMMEDIATE: Fix modal positioning (30 minutes)
  2. HIGH: Replace sample templates with real data (1-2 hours)
  3. MEDIUM: Implement TEC ticketing integration (3-4 hours)
  4. LOW: Add fieldset integration (1-2 hours)
  5. FINAL: Comprehensive testing (2-3 hours)

Risk Assessment

  • Low Risk: Modal positioning fix, template data replacement
  • Medium Risk: TEC ticketing API integration (requires understanding TEC internals)
  • High Risk: Fieldset integration (depends on TEC Ticket Fieldset structure)

Success Metrics

  1. Modal centers properly on all screen sizes
  2. Real templates load with correct data and formatting
  3. TEC tickets can be created with mandatory attendee information
  4. Form maintains existing functionality while adding new features
  5. Integration works seamlessly with existing TEC Community Events

Additional UI/UX Enhancement Requirements (September 2025)

Form Layout Improvements

Field Grouping and Responsive Design

  • Same Row Fields (Desktop) → Column Layout (Mobile):
    • Ticket Price ($) & Ticket Capacity
    • Ticket Sales Start & Ticket Sales End
    • Start Date & Time & End Date & Time

Text Editor Enhancement

  • Event Description Field:
    • Increase size to 3x current dimensions
    • Add rich text editing toolbar (bold, italic, lists, links)
    • Support for formatted text input

Form Field Issues

  • Missing Label Issues: Fix blank/unlabeled form sections:
    • Blank box above "Enable Ticketing"
    • Blank box above "Ticket Name"
    • Two blank boxes above "Start Date & Time"

New Feature Requirements

  • Image Upload Component:
    • File upload interface with drag-and-drop
    • Image preview functionality
    • Replace/remove image capabilities
    • Proper image optimization and sizing

Virtual Event Capability

  • Virtual Event Toggle:
    • Enable/disable virtual event mode
    • When enabled, show virtual event specific fields
    • Integration with existing venue system

Enhanced Toggle Controls

  • Interactive Toggles (show/hide subsections):
    • Virtual Event toggle → Virtual event configuration fields
    • Enable RSVP toggle → RSVP configuration options
    • Enable Ticketing toggle → Ticketing subsection fields

Advanced Selection Components

  • Organizer Field:

    • Text input with autocomplete
    • Dynamic dropdown showing all available options on focus
    • Multi-select capability (up to 3 items)
    • "Create New Organizer" option → Modal popup with organizer creation form
  • Categories Field (New):

    • Same functionality as Organizer field
    • Text input with autocomplete search
    • Multi-select up to 3 categories
    • "Create New Category" option → Modal popup for category creation
  • Venue Field Enhancement:
    • Convert to searchable single-select
    • Text input with autocomplete
    • Dynamic dropdown on focus
    • Single selection only
    • "Create New Venue" option → Modal popup with venue creation form

Modal Creation Forms

  • New Organizer Modal:

    • Name, email, phone, organization fields
    • Save and apply to event functionality
  • New Category Modal:

    • Category name, description, parent category
    • Save and apply to event functionality
  • New Venue Modal:

    • Venue name, address, capacity, facilities
    • Save and apply to event functionality

Implementation Priority

  1. Phase 1: Fix existing form issues (missing labels, layout)
  2. Phase 2: Implement responsive field grouping
  3. Phase 3: Add rich text editor and featured image upload
  4. Phase 4: Implement toggle controls and virtual event features
  5. Phase 5: Create advanced selection components and modal forms

Technical Considerations

  • Maintain existing security measures and validation
  • Ensure mobile responsiveness across all new components
  • Integrate seamlessly with current TEC ticketing system
  • Preserve existing template and autosave functionality
  • Follow WordPress coding standards and accessibility guidelines

Implementation plan generated during TEC integration and template system improvement project Updated September 2025 with comprehensive UI/UX enhancement requirements