Commit graph

10 commits

Author SHA1 Message Date
573765d51e feat: add Service Factory app icon to desk grid
- Added add_to_apps_screen hook in hooks.py with custom icon
- Created service_factory SVG icon (blue rounded square)
- Added permission check module (api/permission.py)
- Assets symlink instruction in deploy README
- Icon accessible at /assets/service_factory/icons/service_factory.svg
2026-07-15 21:57:52 +00:00
e24c3e2a72 feat: add fixture seed data for portability
- 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
2026-07-15 21:53:44 +00:00
6afe8c7d7a fix: add nginx proxy to unify web + SocketIO on port 8080
- 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
2026-07-15 21:16:50 +00:00
f0e6033cef chore: add --proxy flag and host_name config for Zoraxy reverse proxy
- 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
2026-07-15 20:51:21 +00:00
759fac5a67 chore: add deploy config with systemd services for auto-start on boot
- frappe-bench-web, worker, schedule, socketio, watch services
- frappe-bench.target to group all services
- bench-env.sh wrapper for proper PATH resolution
- deploy README with installation/management instructions
2026-07-15 20:44:59 +00:00
0b0cf7e4a2 feat: Milestone 5 - Test suite for Engagement Order
- test_execution_cards_generated_on_submit: verifies Execution
  Cards are created when Engagement Order is submitted
- test_cost_rollup_on_card_update: verifies 2h logged = 50
  actual_cost, 00 projected_billing_value at 5/50 rates
- test_recipe_step_auto_populate: verifies load_recipe_steps()
- test_capacity_warning_fires: verifies warning on overallocation
- Uses FrappeTestCase pattern with setUp/helper methods
2026-07-15 20:34:47 +00:00
7c20c56433 feat: Milestones 3+4 - Frontend widgets and role-based workspaces
- Execution Card JS: live timer with Start/Pause/Stop buttons
  polling get_active_time every second, HH:MM:SS display
- Engineer Workspace: My Active Deliverables cards,
  Execution Card links with employee-filtered shortcuts
- Manager Workspace: Engagement Order/Resource Center/Recipe
  navigation, Active/Stalled/Capacity filtered shortcuts
- Director Workspace: Financial Margin Ledger, Delivery
  Performance cards, KPI shortcuts for Revenue/Cost/Margin
- hooks.py: doctype_js for Execution Card, fixtures for
  workspace auto-sync during migrate
2026-07-15 20:15:17 +00:00
1fbbbb6e7d feat: Milestone 2 - Backend controllers with capacity warnings and cost rollup
- 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
2026-07-15 19:57:27 +00:00
6b44131abe feat: Milestone 1 - All 5 DocTypes with controllers
- 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
2026-07-15 19:54:41 +00:00
erpnext
7994bb2d17 feat: Initialize App 2026-07-15 19:39:05 +00:00