Story: Portfolio display follow-ups
Table of Contents
This page documents a story in Product backlog — next. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Fix the two display-quality issues Commission: portfolio (Sprint 23, DONE) spun off rather than fixed inline: model portfolio_status as a proper lookup entity, and fix the Purpose Type combo to show display labels instead of raw codes.
Status
| Field | Value |
|---|---|
| State | BACKLOG |
| Parent sprint | None (product backlog) |
| Now | Not yet started. Split out of the Sprint 23 story at its close — both are cosmetic and don't block commissioning. |
| Waiting on | Nothing. |
| Next | Either task is independently startable when pulled into a sprint. |
| Last touched | 2026-07-20 |
Acceptance
- portfolio_status modelled the same way as book_status: table, seed data, codegen regen, dynamic combo + badge wiring.
- Purpose Type combo shows a proper short display label instead of raw codes.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Model portfolio_status as a proper lookup entity | BACKLOG | portfolio.status is a hardcoded static_combo (literal string list), unlike book_status which is a real codegen'd lookup entity (own table, seeded descriptions, dynamic combo, badge colours). Model portfolio_status the same way as book_status: table, seed data, codegen regen, dynamic combo + badge wiring. | ||
| Purpose Type combo shows raw codes, not display labels | BACKLOG | The Purpose Type dynamic combo shows raw codes (Risk, Regulatory, ClientReporting, Internal) instead of a readable label – ClientReporting reads as a code, not a label. purpose_type's description field is a full sentence (too long for a combo item), so the fix needs a proper short display-label column, not swapping to description. Compare to book_status, whose codes already double as readable labels. |