feat(fusion_portal): funding-source selector on accessibility forms

Reps can now mark an accessibility assessment's funding source on the web form
(Private / March of Dimes / ODSP / WSIB / Hardship / Insurance / Other) so the
generated draft sale order routes to the correct funding pipeline instead of
always defaulting to private pay. Adds Hardship to the x_fc_funding_source
selection + sale_type_map; the new form <select> is auto-serialised by the
existing FormData submit, and accessibility_assessment_save now maps
funding_source -> x_fc_funding_source. The model + SO routing were already in
place (2026-04 audit fix) — this closes the form + controller gap.

Plan: docs/superpowers/plans/2026-06-02-accessibility-funding-selector.md
Spec: docs/superpowers/specs/2026-06-02-assessment-visit-funding-design.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-06-02 01:33:24 -04:00
parent aafc2db8a8
commit 37efc5b858
4 changed files with 61 additions and 0 deletions

View File

@@ -2507,6 +2507,7 @@ class AuthorizerPortal(CustomerPortal):
'client_address_postal': post.get('client_address_postal', '').strip(),
'client_phone': post.get('client_phone', '').strip(),
'client_email': post.get('client_email', '').strip(),
'x_fc_funding_source': post.get('funding_source') or 'direct_private',
'notes': post.get('notes', '').strip(),
}

View File

@@ -73,6 +73,7 @@ class FusionAccessibilityAssessment(models.Model):
('march_of_dimes', 'March of Dimes'),
('odsp', 'ODSP'),
('wsib', 'WSIB'),
('hardship', 'Hardship Funding'),
('insurance', 'Private Insurance'),
('direct_private', 'Private Pay (Direct)'),
('other', 'Other'),
@@ -772,6 +773,7 @@ class FusionAccessibilityAssessment(models.Model):
'march_of_dimes': 'march_of_dimes',
'odsp': 'odsp',
'wsib': 'wsib',
'hardship': 'hardship',
'insurance': 'insurance',
'direct_private': 'direct_private',
'other': 'other',

View File

@@ -373,6 +373,21 @@
<input type="email" name="client_email" class="form-control" placeholder="email@example.com"/>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label class="form-label">Funding Source <span class="text-danger">*</span></label>
<select name="funding_source" class="form-select" required="required">
<option value="direct_private" selected="selected">Private Pay (Direct)</option>
<option value="march_of_dimes">March of Dimes</option>
<option value="odsp">ODSP</option>
<option value="wsib">WSIB</option>
<option value="hardship">Hardship Funding</option>
<option value="insurance">Private Insurance</option>
<option value="other">Other</option>
</select>
<small class="text-muted">Determines which sale order / funding workflow this case enters.</small>
</div>
</div>
</div>
</div>
</template>