@@ -51,6 +51,55 @@ Business responsibility clarification:
|
||||
|
||||
This architectural reference builds on those business concepts but does not replace the more detailed terminology guide in `context/business-domain-overview.md`.
|
||||
|
||||
## CRM Display Infrastructure Status (2026-07-01)
|
||||
|
||||
### Stream status
|
||||
|
||||
**CRM Display Infrastructure: COMPLETE**
|
||||
|
||||
### Shared helper introduced
|
||||
|
||||
- `lib/i18n/crmDisplay/resolveCrmDisplayValue.js`
|
||||
|
||||
### Helper contract
|
||||
|
||||
The shared CRM display resolver should be understood as handling the standard CRM formatted/display-value translation concern only.
|
||||
|
||||
Current contract:
|
||||
|
||||
- missing CRM display value -> return `fallbackValue`
|
||||
- English -> return CRM display value
|
||||
- Welsh -> return translated value when available
|
||||
- Welsh without translation -> return CRM display value
|
||||
|
||||
### Architectural responsibility
|
||||
|
||||
This helper centralises the standard CRM formatted/display-value translation pattern used across portal presentation surfaces.
|
||||
|
||||
It should be treated as the shared compatibility seam for:
|
||||
|
||||
- CRM formatted values
|
||||
- CRM display values
|
||||
- standard EN/CY display translation lookup
|
||||
- existing consumer-specific absent-value fallback handling
|
||||
|
||||
### Boundary exclusions
|
||||
|
||||
The helper boundary intentionally excludes the following concerns:
|
||||
|
||||
- keyed lookup translation
|
||||
- project-type list translation
|
||||
- hyperlink / website rendering
|
||||
- mixed presentation rows
|
||||
- lifecycle interpretation
|
||||
- status interpretation
|
||||
- post-decision interpretation
|
||||
- other presentation-specific derived values
|
||||
|
||||
These are separate architectural concerns and should not be folded into `resolveCrmDisplayValue(...)`.
|
||||
|
||||
If future work is needed in those areas, it should introduce a separate abstraction rather than broadening the helper.
|
||||
|
||||
## Portal API Platform Assessment Status (2026-06-20)
|
||||
|
||||
### Stream status
|
||||
|
||||
@@ -148,6 +148,27 @@ The adoption target should be explicit, such as:
|
||||
|
||||
Do not attempt mass adoption by default.
|
||||
|
||||
### CRM Display Infrastructure Rule
|
||||
|
||||
When rendering a standard CRM formatted/display value:
|
||||
|
||||
- `resolveCrmDisplayValue(...)` should be used.
|
||||
|
||||
Developers should not introduce new inline JSONPath lookups for the standard CRM formatted/display-value translation pattern.
|
||||
|
||||
If the translation concern does not match the helper boundary, it should be treated as a separate abstraction rather than extending the helper.
|
||||
|
||||
This includes concerns such as:
|
||||
|
||||
- keyed lookup translation
|
||||
- list translation
|
||||
- hyperlink / website rendering
|
||||
- mixed presentation rows
|
||||
- lifecycle interpretation
|
||||
- status interpretation
|
||||
- post-decision interpretation
|
||||
- other derived presentation values
|
||||
|
||||
---
|
||||
|
||||
## 4. Branching Governance
|
||||
|
||||
@@ -190,10 +190,13 @@ Create a clearer single source of truth for CRM-driven bilingual display behavio
|
||||
|
||||
#### Current Maturity
|
||||
|
||||
- characterized
|
||||
- repeated dominant pattern identified
|
||||
- several partial abstractions already present
|
||||
- suitable for incremental implementation
|
||||
- completed
|
||||
- shared resolver introduced
|
||||
- helper test coverage added
|
||||
- helper contract verified and corrected
|
||||
- compatible consumers adopted across admin, search, My Portal, and summary types
|
||||
- stale JSONPath import cleanup completed where safe
|
||||
- behaviour-preserving migration completed
|
||||
|
||||
#### Implementation Strategy
|
||||
|
||||
@@ -202,6 +205,34 @@ Create a clearer single source of truth for CRM-driven bilingual display behavio
|
||||
- adopt first in bounded, read-only display families
|
||||
- preserve current fallback behaviour per consumer unless an explicit standardization decision is approved
|
||||
|
||||
#### Status
|
||||
|
||||
Completed.
|
||||
|
||||
Delivered in this workstream:
|
||||
|
||||
- shared resolver introduced
|
||||
- helper test coverage
|
||||
- helper contract verified and corrected
|
||||
- adoption across:
|
||||
- admin
|
||||
- search
|
||||
- My Portal
|
||||
- summary types
|
||||
- stale JSONPath import cleanup
|
||||
- behaviour-preserving migration
|
||||
|
||||
Remaining JSONPath usage in adopted areas is intentional where it falls outside the helper boundary.
|
||||
|
||||
That includes concerns such as:
|
||||
|
||||
- keyed lookup translation
|
||||
- project-type list translation
|
||||
- hyperlink / website rendering
|
||||
- mixed presentation rows
|
||||
- lifecycle / status / post-decision interpretation
|
||||
- other presentation-specific derived values
|
||||
|
||||
#### Expected Maintenance Benefit
|
||||
|
||||
- reduced duplication of display-resolution logic
|
||||
|
||||
Reference in New Issue
Block a user