Story: Commission: portfolio
Table of Contents
This page documents a story in Sprint 23. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Commission portfolio across the full stack: regenerate api/core/sql
(and shell/cli/qt/wt/http where the codegen entity already supports
them) from the current codegen templates against
ores.refdata.portfolio.org, updating the model as needed; reconcile
any codegen drift the same way book was remediated in
Book codegen drift remediation (compass codegen entity show
all-✅, no silently-dropped SQL validations); and add the entity
chapter to the user manual, following the pattern of the book and
counterparty chapters.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 23 |
| Now | Both tasks DONE. Manual chapter's 4 screenshots captured and verified in the Qt client and PDF. Two non-blocking follow-ups split into Portfolio display follow-ups in the product backlog. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-07-18 |
Acceptance
[X]compass codegen entity showreports all-✅ for portfolio (fully regenerated against current templates, api/core/sql at minimum).[X]Any SQL validations (soft FKs, value checks, insert triggers) present before regeneration are confirmed still present afterwards, via paste blocks or variability knobs in the .org model — not hand-patched post-generation.[X]portfolio builds cleanly on the configured preset; no regressions in existing tests.[X]The portfolio entity chapter is added to the user manual, covering its Qt windows and behaviours (list, detail, history) as applicable.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Codegen full stack for portfolio and address codegen drift | DONE | 2026-07-16 | 2026-07-17 | Regenerate portfolio's api/core/sql (and shell/cli/qt/wt/http as applicable) from current codegen templates against ores.refdata.portfolio.org, updating the model as needed. Drive compass codegen entity show to all-✅. Restore any silently-dropped SQL validations via paste blocks/variability knobs, following the book_codegen_drift_remediation pattern (sprint_23). |
| Add portfolio entity chapter to the user manual | DONE | 2026-07-17 | 2026-07-18 | Chapter written, screenshot scenario scaffolded; unblocked now that Improve badge colour scheme support's mapping-browser task fixed the Portfolios badge-colour bug (PR #1622). Resuming screenshot capture. |
Decisions
- Followed book's full migration pattern, not just codegen: moved
PortfolioControllerout ofTradingPluginintoRefdataPlugin(owning construction and menus) as part of this task rather than deferring to a separate "move portfolio to refdata" story, since the codegen regen already produced duplicate Qt classes in both plugins and leaving the old ones would risk cross-plugin symbol conflicts. - Where regeneration surfaced a real UX gap (
purpose_type=/ =aggregation_ccyas free-text fields once FK validation was added), fixed it inline (dynamic/flagged combo) rather than leaving a validation trap for the Add dialog's default state. - Two display-quality issues found while capturing manual-chapter
screenshots (
portfolio.statusis a hardcoded static_combo rather than a real lookup entity likebook_status; Purpose Type's combo shows raw codes instead of a proper label) were spun off as separate BACKLOG tasks rather than fixed inline — both are cosmetic, neither blocks this story's acceptance, and both need real modeling work (a new lookup entity; a new display-label column) rather than a quick fix.
Out of scope
- New portfolio functionality beyond what the current model/codegen templates already support — this story is about commissioning the existing model full-stack, not adding new fields or behaviours.