- Created boxes_crates table with 8-digit auto-generated box numbers
- Added manage_boxes route and full CRUD operations
- Implemented box status tracking (open/closed)
- Added location assignment functionality
- Integrated QZ Tray printing with barcode labels
- Created manage_boxes.html with table, preview, and print features
- Added 'Manage Boxes/Crates' card to warehouse main page
- Boxes can be created without location and assigned later
- Includes delete functionality for admin/management roles
- Added box statistics display
- Enhanced maintenance card with dark mode support
- Added system storage information display (logs, database, backups)
- Implemented per-table backup and restore functionality
- Added database table management with drop capability
- Restructured backup management UI with split layout:
- Quick action buttons for full/data-only backups
- Collapsible per-table backup/restore section
- Split schedule creation (1/3) and active schedules list (2/3)
- Fixed database config loading to use mariadb module
- Fixed SQL syntax for reserved 'rows' keyword
- Removed System Information card
- All database operations use correct config keys from external_server.conf
- Added daily_mirror module to permissions system
- Fixed user module management - updates now work correctly
- Implemented dashboard module filtering based on user permissions
- Fixed warehouse create_locations page (config parser and delete)
- Implemented POST-Redirect-GET pattern to prevent duplicate entries
- Added application license system with validation middleware
- Cleaned up debug logging code
- Improved user module selection with fetch API instead of form submit
- Added compact table styling to print_lost_labels page (smaller fonts, reduced padding)
- Fixed production data import missing fields (production_order_line, line_number)
- Added better error handling and logging for Excel file imports
- Skip empty rows in production data import
- Log all columns and columns with data for debugging
- Created comprehensive dashboard with Chart.js visualizations
- Added API endpoint /api/dashboard_data for aggregated data
- Implemented weekly tracking for orders, production, and deliveries
- Added interactive pivot table for customer × week analysis
- Fixed collation issues in database joins
- Includes 4 summary cards with key metrics
- Charts display orders, production finished, and deliveries by week
- Click-to-expand data tables for detailed view
- Time range filter (4-52 weeks)
- Data sources: scanfg_orders (finished), dm_orders, dm_deliveries
- Auto-detect mysqldump vs mariadb-dump command
- Conditional SSL flag based on Docker environment detection
- Works in both Docker containers and standard systemd deployments
- No breaking changes to existing functionality
✨ New Features:
- Implemented comprehensive help/documentation system with Markdown support
- Added floating help buttons throughout the application
- Created modular CSS architecture for better maintainability
- Added theme-aware help pages (light/dark mode support)
🎨 UI/UX Improvements:
- Implemented 25%/75% card layout consistency across printing module pages
- Fixed barcode display issues (removed black rectangles, proper barcode patterns)
- Enhanced print method selection with horizontal layout (space-saving)
- Added floating back button in help pages
- Improved form controls styling (radio buttons, dropdowns)
🔧 Technical Enhancements:
- Modularized CSS: Created print_module.css with 779 lines of specialized styles
- Enhanced base.css with floating button components and dark mode support
- Updated routes.py with help system endpoints and Markdown processing
- Fixed JsBarcode integration with proper CDN fallback
- Removed conflicting inline styles from templates
📚 Documentation:
- Created dashboard.md with comprehensive user guide
- Added help viewer template with theme synchronization
- Set up documentation image system with proper Flask static serving
- Implemented docs/images/ folder structure
🐛 Bug Fixes:
- Fixed barcode positioning issues (horizontal/vertical alignment)
- Resolved CSS conflicts between inline styles and modular CSS
- Fixed radio button oval display issues
- Removed borders from barcode frames while preserving label info borders
- Fixed theme synchronization between main app and help pages
📱 Responsive Design:
- Applied consistent 25%/75% layout across print_module, print_lost_labels, upload_data, view_orders
- Added responsive breakpoints for tablet (30%/70%) and mobile (stacked) layouts
- Improved mobile-friendly form layouts and button sizing
The application now features a professional, consistent UI with comprehensive help system and improved printing module functionality.
- Modernized UI with simple, clean design
- Fixed logo sizing and positioning
- Improved fg_scan page layout with side-by-side cards
- Enhanced base template with theme toggle and user info
- Added simple.css and simple.js for clean styling
- Updated database configuration for Docker integration
- Organized project structure and moved old files
- Added printed_labels column (INT(1) DEFAULT 0) for print tracking
- Added data_livrare column (DATE NULL) for delivery dates from CSV
- Added dimensiune column (VARCHAR(20) NULL) for product dimensions
- Updated documentation to explain new columns and their purpose
This keeps the setup script synchronized with the actual database structure
that has been modified during development and testing.
✨ New Features:
- Added view_orders route with proper table display
- Implemented CSV upload with preview workflow and date parsing
- Added production WSGI server configuration with Gunicorn
- Created comprehensive production management scripts
🔧 Bug Fixes:
- Fixed upload_data route column mapping for actual CSV structure
- Resolved print module database queries and template rendering
- Fixed view orders navigation routing (was pointing to JSON API)
- Corrected barcode display width constraints in print module
- Added proper date format parsing for MySQL compatibility
🎨 UI/UX Improvements:
- Updated view_orders template with theme-compliant styling
- Hidden barcode text in print module preview for cleaner display
- Enhanced CSV upload with two-step preview-then-save workflow
- Improved error handling and debugging throughout upload process
🚀 Production Infrastructure:
- Added Gunicorn WSGI server with proper configuration
- Created systemd service for production deployment
- Implemented production management scripts (start/stop/status)
- Added comprehensive logging setup
- Updated requirements.txt with production dependencies
📊 Database & Data:
- Enhanced order_for_labels table compatibility
- Fixed column mappings for real CSV data structure
- Added proper date parsing and validation
- Improved error handling with detailed debugging
🔧 Technical Debt:
- Reorganized database setup documentation
- Added proper error handling throughout upload workflow
- Enhanced debugging capabilities for troubleshooting
- Improved code organization and documentation
- Created virtual environment and installed requirements
- Set up MariaDB database with user 'sa' and database 'recticel'
- Created order_for_labels table for printing functionality
- Implemented role-based permissions system with admin role
- Added admin access to print label modules and etichete functionality
- Fixed template routing issues in main_page_etichete.html
- Updated app to run on port 8781 with network access (0.0.0.0)
- Added systemd service file for background deployment
- Created installation documentation