fix(fusion_portal): define visit._assessment_sale_type (ADP grouping key)

action_complete_visit referenced self._assessment_sale_type() to group ADP
devices by funding, but the method was never defined - any visit containing an
ADP device would have raised AttributeError. Mirrors
fusion.assessment._create_draft_sale_order: adp_odsp for ODSP client streams,
adp otherwise. Caught by the clone ADP-grouping smoke test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-06-02 08:48:16 -04:00
parent ed91135a3f
commit 837e7b09b7

View File

@@ -216,6 +216,15 @@ class FusionAssessmentVisit(models.Model):
if len(walkers) > 1: if len(walkers) > 1:
raise UserError(_('An ADP order can include only one walker / rollator.')) raise UserError(_('An ADP order can include only one walker / rollator.'))
def _assessment_sale_type(self, adp_assessment):
"""Funding workflow key for an ADP equipment assessment, mirroring
fusion.assessment._create_draft_sale_order: ADP+ODSP when the client
type is an ODSP stream, plain ADP otherwise. ADP devices that share a
key are grouped onto one sale order."""
if adp_assessment.client_type in ('ods', 'acs', 'owp'):
return 'adp_odsp'
return 'adp'
def action_complete_visit(self): def action_complete_visit(self):
"""Group the visit's accessibility assessments by funding workflow and """Group the visit's accessibility assessments by funding workflow and
create one draft SO per workflow. ADP equipment assessments keep their create one draft SO per workflow. ADP equipment assessments keep their