- Added fixture config in hooks.py for Workspace, Resource Center,
Engagement Recipe, and Engagement Order
- Exported workspace.json (3 Service Factory workspaces)
- Created resource_center.json seed data (Engineering Team,
Solutions Consulting)
- All configuration is now version-controlled and portable
via 'bench migrate' on any server
- Nginx routes /socket.io/ to port 9000 (SocketIO)
- Nginx routes everything else to port 8000 (Frappe web)
- Sitename path prefix rewrite for socket.io compatibility
- Update: Zoraxy should now proxy to port 8080 instead of 8000
- Added --proxy to bench serve for proper proxy header handling
- Set host_name: http://erp.lohmar.co.uk in site_config
- Added dns_multitenant: false in common_site_config
- Updated deploy systemd service file
- Engagement Order: auto-populate steps on recipe change via validate()
- Engagement Order: capacity warning validator on before_save/before_submit
- Execution Card: push actual_hours to parent run step on update/submit/cancel
- Execution Card: proper time tracking with start/pause/stop workflow
- Refined per-step cost rollup from Resource Center rates
- Resource Center + Resource Center Member child table
- Engagement Recipe + Engagement Recipe Step child table
- Engagement Order (submittable) + Engagement Order Run Step child table
- Execution Card (submittable) + Execution Card Log child table
- Server-side actions: start_work, pause_work, stop_work on Execution Card
- Cost rollup logic from Execution Card to Engagement Order
- Auto-generation of Execution Cards on Engagement Order submit
- Total duration calculation on Engagement Recipe