1. 01 Oct, 2025 7 commits
    • Stefy Lanza (nextime / spora )'s avatar
      fix: correct drag and drop target detection for result association columns · eecc37f0
      Stefy Lanza (nextime / spora ) authored
      - Fix getDropTarget function to properly detect drops on column bodies
      - Allow dropping on any element within the column body area
      - Ensure drag and drop associations work correctly
      eecc37f0
    • Stefy Lanza (nextime / spora )'s avatar
      fix: update extraction page text for clarity · a1dda541
      Stefy Lanza (nextime / spora ) authored
      - Remove 'Drop outcomes here to create association columns' from Results area
      - Change 'Drag bets to UNDER/OVER or Results areas' to 'Drag bets to UNDER/OVER or Results associations area'
      a1dda541
    • Stefy Lanza (nextime / spora )'s avatar
      feat: enhance extraction page with available bets and result associations · 6939ce9e
      Stefy Lanza (nextime / spora ) authored
      - Rename 'Available Outcomes' to 'Available Bets' in admin interface
      - Add database tables for available_bets and result_options
      - Implement CRUD operations for managing bets and result options
      - Update extraction page UI with add/delete functionality
      - Implement drag-and-drop associations between bets and results
      - Add database persistence for all associations
      - Remove X buttons from result association columns for cleaner UI
      - Update terminology throughout for clarity
      6939ce9e
    • Stefy Lanza (nextime / spora )'s avatar
      Rename 'Available Outcomes' to 'Available Bets' in extraction page · 9fd38518
      Stefy Lanza (nextime / spora ) authored
      - Add AvailableBetModel with is_active and sort_order fields
      - Create Migration_023_AddAvailableBetsTable with default betting options
      - Add API endpoints for CRUD operations on available bets
      - Update extraction page UI with add/delete functionality
      - Update JavaScript to load from available_bets table instead of hardcoded outcomes
      - Add modal dialog for adding new bet options
      - Add delete buttons to each bet item in the UI
      9fd38518
    • Stefy Lanza (nextime / spora )'s avatar
      Fix database locking during ZIP file downloads · 7f1c1602
      Stefy Lanza (nextime / spora ) authored
      - Release database session before ZIP downloads to prevent locking
      - Process all match data first, then download ZIP files separately
      - This prevents database locks during potentially slow ZIP downloads
      - Allows other database operations to proceed between different ZIP downloads
      - Maintains proper error handling and heartbeat updates during downloads
      7f1c1602
    • Stefy Lanza (nextime / spora )'s avatar
      Update default API settings · 0a16e903
      Stefy Lanza (nextime / spora ) authored
      - Set default API access token to gtW82Ejr8LySk2PFVRefn-HEWG5NrowsHaDCht2yPGo
      - Change default FastAPI server URL to https://mbetter.nexlab.net/
      - Update default request interval to 600 seconds (10 minutes)
      - Update settings across config template, routes, and settings.py
      0a16e903
    • Stefy Lanza (nextime / spora )'s avatar
      Add QR code configuration section to admin dashboard · d7f28dfb
      Stefy Lanza (nextime / spora ) authored
      - Add new QR code settings section in admin/configurations page
      - QR codes disabled by default in database on creation
      - Include size, error correction level, and display options
      - Add API endpoints for QR code configuration management
      - Update barcode settings to be enabled by default
      - Add JavaScript handlers for QR code settings with validation
      - Create database migration for QR code configuration settings
      d7f28dfb
  2. 27 Sep, 2025 1 commit
  3. 26 Sep, 2025 2 commits
  4. 08 Sep, 2025 5 commits
  5. 05 Sep, 2025 18 commits
  6. 28 Aug, 2025 2 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Fix Qt player API connectivity issues for overlay templates · d419bb79
      Stefy Lanza (nextime / spora ) authored
      CRITICAL FIX: Resolved 'Failed to fetch' errors in overlay templates
      
      API CONNECTIVITY ENHANCEMENTS:
      - Modified fixtures template JavaScript to use configurable webServerBaseUrl instead of relative URLs
      - Enhanced Qt player WebChannel system to pass web server base URL (http://127.0.0.1:5001) to all overlay templates
      - Updated PlayerWindow._get_web_server_base_url() method to provide consistent API endpoint configuration
      - Enhanced QtVideoPlayer._get_web_server_base_url() method for cross-component consistency
      - Modified all overlay data updates (play_video, update_overlay_periodically, default overlay loading) to include webServerBaseUrl
      
      TEMPLATE SYSTEM IMPROVEMENTS:
      - Fixed API request URLs in fixtures template from relative (/api/endpoint) to absolute (http://127.0.0.1:5001/api/endpoint)
      - Enhanced template initialization to receive web server configuration via WebChannel updateOverlayData()
      - Improved fallback mechanism with proper API endpoint resolution
      
      ROOT CAUSE RESOLUTION:
      - Templates loaded via local schemes (file://, qrc://) cannot resolve relative API URLs
      - WebChannel system now provides absolute web server URLs to enable proper API communication
      - All overlay templates now have access to webServerBaseUrl for API requests
      
      This fix ensures Qt player overlay templates can successfully communicate with the Flask web dashboard API endpoints, eliminating 'TypeError: Failed to fetch' errors and enabling proper data display.
      d419bb79
    • Stefy Lanza (nextime / spora )'s avatar
      Version 1.2.11: Fix video loop functionality and fixtures template issues · 0c5c072b
      Stefy Lanza (nextime / spora ) authored
      Major fixes and improvements:
      
      VIDEO LOOP FUNCTIONALITY:
      - Fixed critical import scope error where Message class was locally imported in play_loop action but unavailable to stop_loop action
      - Implemented comprehensive EndOfMedia detection and auto-restart mechanisms in Qt player
      - Added ERROR-level diagnostic logging throughout video loop control system for precise issue identification
      - Enhanced loop control parameters with infinite_loop, loop_count, and continuous_playback flags
      - Fixed video playback state management with proper loop parameter processing
      
      FIXTURES TEMPLATE ENHANCEMENTS:
      - Removed hardcoded HTML content and implemented dynamic JavaScript data loading
      - Enhanced fallback data system with realistic fighter names (John Doe vs Mike Smith, Alex Johnson vs Chris Brown)
      - Improved template initialization with proper loading states and API error handling
      - Fixed template data display to show proper fallback when API endpoints are unavailable
      
      TECHNICAL IMPROVEMENTS:
      - Updated build configuration to version 1.2.11
      - Enhanced PyQt6 media player loop control with MediaStatus handling
      - Improved message bus architecture for cross-thread communication between web dashboard and Qt player
      - Enhanced Flask API development with better parameter handling and message publishing
      - Updated comprehensive project documentation (CHANGELOG.md and README.md)
      
      DIAGNOSTIC SYSTEMS:
      - Implemented comprehensive ERROR-level logging system throughout Qt player for high-visibility debugging
      - Added systematic issue identification capabilities
      - Enhanced video loop diagnostics with complete state tracking
      - Improved template loading architecture with timeout handling and graceful degradation
      
      All core functionality has been tested and validated with diagnostic systems in place for identifying any remaining edge cases.
      0c5c072b
  7. 26 Aug, 2025 5 commits
    • Stefy Lanza (nextime / spora )'s avatar
      v1.2.10: Fix critical betting system bugs and enhance stability · 638edd7e
      Stefy Lanza (nextime / spora ) authored
      Critical Fixes:
      - Fixed SQLite NOT NULL constraint violation in bet creation API by properly extracting fixture_id from match data
      - Resolved 500 error in bet details page route by implementing complete database data fetching and template variable population
      - Fixed moment() undefined template rendering error by removing server-side JavaScript calls and using client-side time handling
      - Corrected JavaScript API endpoint mismatches (POST /cancel vs DELETE /bets/{uuid}) and added missing event handlers
      
      Bug Fixes:
      - Enhanced bet creation logic to query MatchModel and extract fixture_id from first bet detail's match
      - Implemented comprehensive bet details route with database session management and statistics calculation
      - Fixed template compatibility issues by eliminating server-side/client-side JavaScript conflicts
      - Added proper event listeners for delete bet detail buttons in bet management interface
      
      Database & API Improvements:
      - Ensured proper foreign key relationships between bets, bet_details, and matches tables
      - Enhanced error handling with proper HTTP status codes and user-friendly messages
      - Fixed attribute reference from column_value to float_value in MatchOutcomeModel queries
      - Improved database constraint compliance and data consistency validation
      
      Documentation Updates:
      - Updated README.md with version 1.2.10 critical bug fixes and stability improvements
      - Enhanced CHANGELOG.md with detailed technical fixes and implementation details
      - Added comprehensive troubleshooting section to DOCUMENTATION.md with root cause analysis
      
      The betting system is now fully functional with:
       Complete CRUD operations without database constraint violations
       Proper bet details page display with comprehensive information
       Fixed JavaScript API interactions and event handling
       Stable template rendering without server-side JavaScript conflicts
       Enhanced error handling and user experience
      638edd7e
    • Stefy Lanza (nextime / spora )'s avatar
      fix: Correct attribute name in betting outcomes API · f22b4a1e
      Stefy Lanza (nextime / spora ) authored
      - Fixed 'MatchOutcomeModel' object has no attribute 'column_value' error
      - Changed outcome.column_value to outcome.float_value to match database model
      - API endpoint /api/cashier/available-matches now works correctly
      f22b4a1e
    • Stefy Lanza (nextime / spora )'s avatar
      feat: Implement dynamic betting outcomes and print functionality · 93ffae85
      Stefy Lanza (nextime / spora ) authored
      - Replace hardcoded WIN1/WIN2/X betting terminology with database-driven outcomes
      - Enhanced /cashier/available-matches API endpoint to query match_outcomes table
      - Added generateOutcomeOptionsHTML() function for dynamic betting option generation
      - Implemented graceful fallback to standard options when database outcomes unavailable
      - Added print button to bets list in cashier dashboard with placeholder functionality
      - Enhanced API response structure with outcome_id, outcome_name, outcome_value, display_name
      - Updated documentation with comprehensive betting system section
      - Added troubleshooting guides and performance optimization details
      - Version 1.2.9 changelog and README updates with new features
      93ffae85
    • Stefy Lanza (nextime / spora )'s avatar
      Version 1.2.8: Offline CDN Fallback & Enhanced Cashier Interface · e8012cdc
      Stefy Lanza (nextime / spora ) authored
      Features:
      - Added comprehensive offline CDN fallback system with local Bootstrap and FontAwesome
      - Enhanced cashier interface with streamlined navigation (logo + clock + user menu only)
      - Implemented automatic CDN-to-local resource switching for network environments
      - Added PyInstaller integration for offline functionality in executable builds
      
      Technical Improvements:
      - Fixed FontAwesome icon display issues with proper CDN priority and local fallback
      - Optimized cashier navbar layout for focused, distraction-free interface
      - Added local vendor directory with complete Bootstrap 5.3.0 and FontAwesome 6.0.0
      - Implemented JavaScript-based resource availability detection
      - Enhanced PyInstaller build configuration for automatic vendor file inclusion
      
      Documentation Updates:
      - Updated README.md with version 1.2.8 improvements
      - Enhanced CHANGELOG.md with detailed feature descriptions
      - Added comprehensive offline capabilities section to DOCUMENTATION.md
      - Documented cashier interface navigation and access control
      
      Files Modified:
      - mbetterclient/web_dashboard/templates/base.html (CDN fallback, navbar layout)
      - mbetterclient/web_dashboard/static/vendor/ (new directory with CDN resources)
      - CHANGELOG.md, README.md, DOCUMENTATION.md (documentation updates)
      - build.py (PyInstaller integration verified)
      
      This release ensures MbetterClient works seamlessly in offline network environments while providing a cleaner, more focused cashier interface.
      e8012cdc
    • Stefy Lanza (nextime / spora )'s avatar
      Version 1.2.7: Fix API client health monitoring and add betting mode configuration · 126fa697
      Stefy Lanza (nextime / spora ) authored
      - Fixed 'Unhealthy components detected: api_client' warning by implementing comprehensive heartbeat system
      - Added heartbeat calls in main loop, HTTP requests, database operations, and error handling
      - Added betting mode configuration UI in web dashboard with database persistence
      - Created Migration_015_AddBettingModeTable for betting_modes table
      - Added betting mode API endpoints (GET/POST /api/betting-mode)
      - Updated documentation with betting mode configuration and API client health monitoring
      - Enhanced error handling to prevent thread hangs and maintain health status
      - Added troubleshooting section for API client health issues
      126fa697