- Re-enabled HVAC_Event_Edit_Comprehensive class initialization
- Added proper file includes for event edit classes
- Updated JavaScript to wait for TEC form to fully load via AJAX
- Fixed field selectors to match actual form structure
- Increased timeouts to handle AJAX form rendering
- Prioritized correct selectors for form fields
The comprehensive fix now properly loads event data and populates fields
when editing events from the trainer dashboard.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
		
	
			
		
			
				
	
	
		
			140 lines
		
	
	
		
			No EOL
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			No EOL
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env node
 | |
| 
 | |
| const { chromium } = require('@playwright/test');
 | |
| 
 | |
| process.env.DISPLAY = ':0';
 | |
| 
 | |
| (async () => {
 | |
|     console.log('Testing manage event form population...\n');
 | |
|     
 | |
|     const browser = await chromium.launch({ 
 | |
|         headless: true,
 | |
|         args: ['--no-sandbox'] 
 | |
|     });
 | |
|     const page = await browser.newPage();
 | |
|     
 | |
|     try {
 | |
|         // Login
 | |
|         console.log('1. Logging in...');
 | |
|         await page.goto('https://upskill-staging.measurequick.com/wp-login.php');
 | |
|         await page.fill('#user_login', 'test_admin');
 | |
|         await page.fill('#user_pass', 'TestAdmin2025!');
 | |
|         await page.click('#wp-submit');
 | |
|         await page.waitForTimeout(3000);
 | |
|         
 | |
|         // Go to manage event page with event_id
 | |
|         console.log('2. Going to manage event page with event_id=6161...');
 | |
|         await page.goto('https://upskill-staging.measurequick.com/trainer/event/manage/?event_id=6161');
 | |
|         await page.waitForLoadState('networkidle');
 | |
|         
 | |
|         // Check if hvac_event_comprehensive object exists
 | |
|         const hasComprehensiveData = await page.evaluate(() => {
 | |
|             return typeof hvac_event_comprehensive !== 'undefined';
 | |
|         });
 | |
|         
 | |
|         console.log('\n3. Checking for comprehensive data object:');
 | |
|         console.log('   Has hvac_event_comprehensive:', hasComprehensiveData);
 | |
|         
 | |
|         if (hasComprehensiveData) {
 | |
|             const eventData = await page.evaluate(() => hvac_event_comprehensive);
 | |
|             console.log('\n4. Event data structure:');
 | |
|             console.log('   Event ID:', eventData.event_id);
 | |
|             console.log('   Has event_data:', !!eventData.event_data);
 | |
|             
 | |
|             if (eventData.event_data) {
 | |
|                 console.log('   Core data:', eventData.event_data.core);
 | |
|                 console.log('   Venue data:', eventData.event_data.venue);
 | |
|                 console.log('   Organizer data:', eventData.event_data.organizer);
 | |
|             }
 | |
|         }
 | |
|         
 | |
|         // Check actual form fields
 | |
|         console.log('\n5. Checking form fields:');
 | |
|         const fields = await page.evaluate(() => {
 | |
|             const results = {};
 | |
|             
 | |
|             // Try multiple selectors for title
 | |
|             const titleSelectors = [
 | |
|                 '#title',
 | |
|                 'input[name="post_title"]',
 | |
|                 '#event-title',
 | |
|                 'input[name="EventTitle"]'
 | |
|             ];
 | |
|             
 | |
|             for (const selector of titleSelectors) {
 | |
|                 const field = document.querySelector(selector);
 | |
|                 if (field) {
 | |
|                     results.title = {
 | |
|                         found: true,
 | |
|                         selector: selector,
 | |
|                         value: field.value
 | |
|                     };
 | |
|                     break;
 | |
|                 }
 | |
|             }
 | |
|             
 | |
|             if (!results.title) {
 | |
|                 results.title = { found: false };
 | |
|             }
 | |
|             
 | |
|             // Try multiple selectors for description
 | |
|             const descSelectors = [
 | |
|                 '#description',
 | |
|                 'textarea[name="post_content"]',
 | |
|                 '#event-description',
 | |
|                 'textarea[name="EventDescription"]'
 | |
|             ];
 | |
|             
 | |
|             for (const selector of descSelectors) {
 | |
|                 const field = document.querySelector(selector);
 | |
|                 if (field) {
 | |
|                     results.description = {
 | |
|                         found: true,
 | |
|                         selector: selector,
 | |
|                         value: field.value
 | |
|                     };
 | |
|                     break;
 | |
|                 }
 | |
|             }
 | |
|             
 | |
|             if (!results.description) {
 | |
|                 results.description = { found: false };
 | |
|             }
 | |
|             
 | |
|             // Check for TEC shortcode
 | |
|             const shortcodeDiv = document.querySelector('[data-tribe-shortcode]');
 | |
|             results.hasTECShortcode = !!shortcodeDiv;
 | |
|             
 | |
|             // Check for any tribe forms
 | |
|             const tribeForms = document.querySelectorAll('form[id*="tribe"], form[class*="tribe"]');
 | |
|             results.tribeForms = tribeForms.length;
 | |
|             
 | |
|             return results;
 | |
|         });
 | |
|         
 | |
|         console.log('   Title field:', fields.title);
 | |
|         console.log('   Description field:', fields.description);
 | |
|         console.log('   Has TEC shortcode:', fields.hasTECShortcode);
 | |
|         console.log('   Tribe forms found:', fields.tribeForms);
 | |
|         
 | |
|         // Check if the comprehensive JS ran
 | |
|         console.log('\n6. Checking if population script ran:');
 | |
|         const populationStatus = await page.evaluate(() => {
 | |
|             // Check if there's any indication the script tried to run
 | |
|             const notifications = document.querySelectorAll('.hvac-field-notification');
 | |
|             return {
 | |
|                 notifications: notifications.length,
 | |
|                 consoleErrors: window.hvacErrors || []
 | |
|             };
 | |
|         });
 | |
|         
 | |
|         console.log('   Field notifications:', populationStatus.notifications);
 | |
|         
 | |
|     } catch (error) {
 | |
|         console.error('Error:', error.message);
 | |
|     } finally {
 | |
|         console.log('\nKeeping browser open for 10 seconds...');
 | |
|         await page.waitForTimeout(10000);
 | |
|         await browser.close();
 | |
|     }
 | |
| })(); |