odoo-metatroncube/addons/mcs_operating_system/CEO_DASHBOARD_V2_IMPLEMENTATION_REPORT.md
2026-08-30 11:02:09 -04:00

12 KiB

CEO Dashboard V2 Implementation Report

Date: 2026-08-30
Addon: mcs_operating_system
Odoo version: 17
Latest deployed commit: 45a012b

Summary

CEO Dashboard V2 was implemented as an extension of the existing mcs_operating_system addon. The existing operating system models, menus, CRM extensions, project extensions, timesheet extensions, profitability records, and seeded records were preserved.

The implementation adds a visual Odoo client dashboard, client-account rollups, project health/priority fields, CEO action tracking, internal-bet separation, portfolio seeding, profitability recomputation, CRM delivery-project support, cron repair, and focused tests.

Files Added

  • addons/mcs_operating_system/hooks.py
  • addons/mcs_operating_system/models/ceo_action.py
  • addons/mcs_operating_system/models/res_partner.py
  • addons/mcs_operating_system/static/src/js/ceo_dashboard_v2.js
  • addons/mcs_operating_system/static/src/scss/ceo_dashboard_v2.scss
  • addons/mcs_operating_system/static/src/xml/ceo_dashboard_v2.xml
  • addons/mcs_operating_system/tests/__init__.py
  • addons/mcs_operating_system/tests/test_ceo_dashboard_v2.py
  • addons/mcs_operating_system/views/ceo_action_views.xml
  • addons/mcs_operating_system/views/res_partner_views.xml
  • addons/mcs_operating_system/CEO_DASHBOARD_V2_IMPLEMENTATION_REPORT.md

Files Modified

  • addons/mcs_operating_system/__init__.py
  • addons/mcs_operating_system/__manifest__.py
  • addons/mcs_operating_system/data/crm_data.xml
  • addons/mcs_operating_system/data/project_data.xml
  • addons/mcs_operating_system/models/__init__.py
  • addons/mcs_operating_system/models/crm_lead.py
  • addons/mcs_operating_system/models/dashboard.py
  • addons/mcs_operating_system/models/operating.py
  • addons/mcs_operating_system/models/project.py
  • addons/mcs_operating_system/security/ir.model.access.csv
  • addons/mcs_operating_system/views/crm_lead_views.xml
  • addons/mcs_operating_system/views/dashboard_views.xml
  • addons/mcs_operating_system/views/menu.xml
  • addons/mcs_operating_system/views/operating_views.xml
  • addons/mcs_operating_system/views/project_views.xml

Models Created

mcs.ceo.action

Tracks actions, decisions, approvals, blockers, and financial/business-impact items requiring CEO attention.

Fields include:

  • title
  • category
  • priority
  • priority_rank
  • state
  • date_due
  • responsible_user_id
  • partner_id
  • project_id
  • lead_id
  • expected_financial_impact
  • business_impact
  • next_action
  • blocker
  • notes
  • date_created
  • date_completed

Workflow actions:

  • Open
  • Waiting
  • Blocked
  • Completed
  • Cancelled

Models Extended

res.partner

Added lightweight client-account rollup fields:

  • mcs_is_client_account
  • mcs_account_status
  • mcs_account_health
  • mcs_currency_id
  • mcs_monthly_revenue
  • mcs_contracted_value
  • mcs_monthly_hours
  • mcs_effective_hourly_revenue
  • mcs_account_owner_id
  • mcs_next_account_action
  • mcs_account_risk_reason
  • mcs_project_ids

A defensive public maintenance action was added:

  • action_mcs_ensure_client_account_columns

This was needed to repair the live half-upgraded state where the registry saw the new partner fields before the database columns existed.

project.project

Added delivery, portfolio, priority, stale, and internal-bet fields:

  • mcs_delivery_type
  • mcs_portfolio_health
  • mcs_risk_score
  • mcs_last_meaningful_progress_date
  • mcs_days_since_meaningful_progress
  • mcs_stale
  • mcs_stale_threshold_days
  • mcs_launch_completion_date
  • mcs_revenue_impact_score
  • mcs_client_importance_score
  • mcs_urgency_score
  • mcs_completion_leverage_score
  • mcs_resource_cost_score
  • mcs_commercial_priority_score
  • mcs_internal_product_stage
  • mcs_internal_expected_revenue
  • mcs_internal_actual_revenue
  • mcs_next_milestone
  • mcs_next_decision_date

crm.lead

Added:

  • action_mcs_create_delivery_project

This supports creating or linking a delivery project from a won opportunity while preserving the standard customer/project relationship.

mcs.client.profitability

Added:

  • action_recompute_from_project
  • Project/period onchange recomputation

The recompute pulls project revenue and period timesheets into profitability fields.

mcs.operating.dashboard

Added:

  • get_ceo_dashboard_v2_data
  • action_mcs_seed_v2_operating_data

The dashboard payload contains company pulse, revenue, funnel, portfolio, project health, capacity, time distribution, allocation guardrail, CEO actions, internal bets, and drill-down actions.

Computed Fields

Client-account computed rollups:

  • Account health
  • Monthly revenue
  • Contracted value
  • Monthly hours
  • Effective hourly revenue

Project computed fields:

  • Commercial priority score
  • Last meaningful progress date
  • Days since meaningful progress
  • Stale flag
  • Risk score
  • Portfolio health

Dashboard computed payload:

  • Revenue coverage
  • Revenue coverage status
  • Revenue gap
  • Pipeline coverage
  • Pipeline coverage status
  • Team utilization
  • Billable utilization
  • Project health distribution
  • Capacity rows per employee
  • Time distribution by work category and billable class
  • Resource allocation guardrail

XML Views

Added:

  • CEO action tree/form/search/action views
  • Client account partner tree/form/action views
  • CEO Dashboard V2 client action

Extended:

  • Project form operating section
  • CRM lead header
  • Profitability form
  • MCS Operating System menu

JS / OWL Dashboard

Added Odoo client action:

  • Tag: mcs_ceo_dashboard_v2
  • JS component: McsCeoDashboardV2
  • Template: mcs_operating_system.CeoDashboardV2

Dashboard rows:

  • Company Pulse
  • Revenue Target vs Actual vs Forecast
  • CRM Funnel / Pipeline Coverage
  • Client Portfolio Health
  • Project Health Distribution
  • Team Capacity
  • Hours Distribution
  • CEO Attention Queue
  • Internal Bets
  • Resource Allocation Guardrail

Menus And Actions

Main CEO Dashboard menu now points to:

  • action_mcs_ceo_dashboard_v2

Added management menus:

  • Client Accounts
  • CEO Actions

The classic form dashboard still exists as:

  • action_mcs_operating_dashboard

Security Changes

Added access:

  • mcs.ceo.action read-only for Operating System User
  • mcs.ceo.action full access for Operating System Manager
  • mcs.operating.dashboard read-only for Operating System Manager

Changed:

  • Dashboard financial access is manager-only.

Cron Changes

The existing cron was preserved:

  • MCS: Schedule Missing CRM Follow-Ups

The live root cause was data/configuration drift: the cron existed but was inactive. The V2 setup hook now explicitly repairs this intended state without creating duplicate activities.

Live result:

  • Cron active: True

Data / Migration Changes

Static CRM and project seed files were marked noupdate to prevent upgrade conflicts with live records that had drifted from their original XML IDs.

Added idempotent setup logic for client accounts and portfolio workstreams.

Seeded client accounts:

  • ClicksToCart
  • Wallaceton
  • Maison de Treats
  • Lens and Frames
  • TNCSC
  • Infini
  • Organic Healthy Family
  • Hondavert
  • RaceNation
  • Racewerks
  • Internal

Seeded or linked workstreams:

  • ClicksToCart - ERP Implementation
  • ClicksToCart - App Development
  • ClicksToCart - Social Media Handling
  • Wallaceton - SEO
  • Wallaceton - Social Media Handling
  • Wallaceton - Ads Management
  • Maison de Treats - Social Media Handling
  • Lens and Frames - SEO
  • Lens and Frames - Social Media Handling
  • Lens and Frames - Ads Management
  • TNCSC - Ads Management
  • TNCSC - Videos
  • TNCSC - ERP
  • Infini - Social Media Handling
  • Organic Healthy Family - Shopify Store Development
  • Hondavert - Website Development
  • Hondavert - App Development
  • RaceNation - Website Development
  • Racewerks - Website Development
  • Internal - Shopify App for Revenue Generation
  • Internal - Custom Product Development

The hook does not overwrite live task/project data. It creates missing records and fills blank operating fields only.

Tests Added

Added transaction tests for:

  • Project commercial priority score
  • Client account rollup
  • CEO action workflow
  • Dashboard V2 payload sections
  • CRM follow-up idempotency

Test file:

  • addons/mcs_operating_system/tests/test_ceo_dashboard_v2.py

Tests / Validation Executed

Local validation executed:

  • Python syntax compile over mcs_operating_system Python files
  • XML parse validation over mcs_operating_system XML files

Local Odoo test execution was not possible because Docker Desktop was not running on this machine:

  • Docker API error: Docker daemon pipe not found

Live validation executed through XML-RPC:

  • Module upgrade succeeded
  • V2 seed action succeeded
  • Dashboard payload method succeeded
  • Client action exists
  • Client accounts created/linked
  • Delivery type projects created/linked
  • Internal bets separated
  • Follow-up cron active

Live Upgrade Result

Final live upgrade result:

  • Module: mcs_operating_system
  • State: installed
  • Version: 17.0.1.0.0
  • Upgrade action returned successfully

Live verification:

  • Client action mcs_ceo_dashboard_v2: exists
  • Client accounts: 11
  • Projects with delivery type: 21
  • Internal bets: 2
  • CRM follow-up cron active: True
  • Dashboard payload sections returned:
    • actions
    • allocation_guardrail
    • capacity
    • ceo_actions
    • company_pulse
    • internal_bets
    • kpis
    • period
    • portfolio
    • project_health
    • revenue
    • time_distribution

Dashboard payload counts:

  • Portfolio rows: 10
  • Capacity rows: 15
  • Internal bet rows: 2

Revenue coverage on verification:

  • Coverage: 0%
  • Status: critical

This is expected until monthly revenue/cost source data is populated in live records.

Known Limitations

  1. Browser screenshot and browser-console validation were not completed because no authenticated browser session was available through the current tool context.
  2. Local Odoo automated tests were added but not executed because Docker Desktop was not running.
  3. Operating cost is derived from open HR contract wages when hr.contract is available. It does not yet include other overhead categories such as rent, subscriptions, or infrastructure.
  4. Internal-bet estimated cost is currently returned as 0 because no employee/hourly-cost source model exists yet in this addon.
  5. CRM-to-project workflow supports delivery project creation, but automatic sale order creation/linking is not fully implemented.
  6. Portfolio stale calculation uses available signals: project write date, task write date, and timesheet dates. It does not yet detect milestone completion or formal project status updates separately.
  7. Dashboard visuals are implemented as an Odoo client action with cards, bars, and tables. It is not a spreadsheet-style BI dashboard and does not yet use external charting libraries.
  8. Some seeded legacy setup records had live drift. CRM/project static setup XML was marked noupdate to avoid duplicate/unique conflicts during upgrades.

Not Fully Implemented From Specification

  • Fully automatic opportunity-won sale order creation.
  • Dedicated configuration model for stale threshold and pipeline multiplier.
  • Real internal-product cost calculation from employee cost rates.
  • Browser-based screenshot validation.
  • Browser console validation.
  • Full performance optimization with read_group everywhere.
  • Full automated test execution in this environment.

Current Status

CEO Dashboard V2 is implemented, pushed, and upgraded on the live server. The dashboard backend payload is returning live data, drill-down action definitions exist, the visual client action is registered, portfolio rollup data is seeded without overwriting live work, internal products are separated, and the CRM follow-up cron is active.