gsinghpal d07159b9b5 fusion_authorizer_portal: wire accessibility assessments into MOD/ODSP/WSIB workflows (v19.0.2.8.0)
Audit found that fusion.accessibility.assessment._create_draft_sale_order
hardcoded x_fc_sale_type='direct_private' for ALL accessibility cases —
meaning MOD, ODSP, WSIB, and insurance projects never entered their
respective downstream workflows. The MOD workflow rework I shipped in
fusion_claims 19.0.8.0.3 was effectively unreachable from the portal.

Also: x_fc_authorizer_id never propagated from the assessment to the SO,
the new x_fc_mod_accessibility_specialist_id was orphaned, and there
was no back-reference from sale.order to the accessibility assessment.

Fixes:
- New required field x_fc_funding_source on fusion.accessibility.assessment
  (march_of_dimes / odsp / wsib / insurance / direct_private / other)
- _create_draft_sale_order now maps funding_source -> x_fc_sale_type,
  copies authorizer_id -> x_fc_authorizer_id, sets accessibility_assessment_id
  back-ref, and for MOD cases pre-populates
  x_fc_mod_accessibility_specialist_id from sales_rep_id.partner_id
- New accessibility_assessment_id field on sale.order so the back-link
  is queryable both directions (previously only assessment->SO existed)
- action_complete now guards against double-completion and missing
  funding_source: raises UserError instead of silently creating duplicates
- Expanded fusion.accessibility.assessment.state from 3 to 6 values
  (draft/scheduled/in_progress/pending_review/completed/cancelled),
  added copy=False, added _expand_states group_expand for kanban
- Booking form at /book-assessment now collects funding_source
  (required dropdown) so the path is known before the visit happens
- portal_assessment.py book_assessment_submit accepts funding_source
  with whitelist validation (defaults to direct_private if missing)

Deployed to odoo-westin (westin-v19) and odoo-mobility (mobility),
both verified at v19.0.2.8.0 with the new columns present.
2026-04-09 08:24:30 -04:00
2026-03-16 08:14:56 -04:00
2026-02-22 01:37:50 -05:00
2026-02-22 01:37:50 -05:00
2026-02-22 01:37:50 -05:00
2026-04-03 15:45:18 -04:00
2026-04-04 15:37:16 -04:00
2026-03-09 15:21:22 -04:00
2026-03-16 08:14:56 -04:00
2026-03-11 12:15:53 -04:00
2026-03-16 08:14:56 -04:00
2026-03-17 13:32:08 -04:00
2026-03-16 08:14:56 -04:00
2026-03-20 11:46:41 -04:00
2026-03-13 12:38:28 -04:00
2026-03-13 12:38:28 -04:00
2026-03-14 12:04:20 -04:00
2026-03-11 12:15:53 -04:00
2026-03-16 08:14:56 -04:00
2026-03-13 12:38:28 -04:00
2026-03-16 08:14:56 -04:00
2026-04-07 22:03:20 -04:00
2026-03-13 12:38:28 -04:00
2026-04-04 15:37:16 -04:00
2026-03-26 15:16:51 -04:00
2026-03-09 15:21:22 -04:00
2026-03-17 13:32:08 -04:00
2026-03-11 12:15:53 -04:00
2026-03-13 12:38:28 -04:00
2026-03-17 13:32:08 -04:00
2026-03-09 15:21:22 -04:00
2026-02-22 01:22:18 -05:00
2026-04-07 21:47:15 -04:00
2026-02-22 01:37:50 -05:00
2026-03-13 12:38:28 -04:00
2026-03-13 12:38:28 -04:00
2026-04-02 11:27:28 -04:00
2026-02-22 01:22:18 -05:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-03-16 08:14:56 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
2026-04-03 15:45:18 -04:00
Description
Odoo 19 custom modules
211 MiB
Languages
Python 55.9%
HTML 26.1%
JavaScript 14.9%
SCSS 1.8%
CSS 0.8%
Other 0.4%