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.
Rental orders no longer show the "Authorizer Required?" question or
the Authorizer field. The sale type is automatically set to 'Rentals'
when creating or confirming a rental order. Validation logic also
skips authorizer checks for rental sale type.
Made-with: Cursor
Setting privilege_id eval="False" forces Odoo to null out the existing
database value on upgrade. Simply omitting the field did not clear it.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove privilege_id from portal groups so they no longer appear in the
User settings dropdown (they are auto-assigned from Contact form).
Restrict Fusion Claims settings view to managers only.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Add portal gradient branding settings with 4 presets (Green/Teal,
Blue/Purple, Sunset Orange, Dark Slate) and custom color picker
- Live preview in settings, onchange updates colors reactively
- Dynamic gradient applied across portal home, CSS, and card elements
- Fix after photos visibility (conditional on resolved=yes)
- Fix technician section gating on portal repair form
- Move Create Sale Order button to form header for visibility
- Fix portal home row width inconsistency (xpath target change)
Co-authored-by: Cursor <cursoragent@cursor.com>