Task: Migrate currency's synthetic-currency tracking onto the generic client model

Table of Contents

This page documents a task in the Commission: currency story. It captures the goal, current status, acceptance, and any notes or results.

Goal

ClientCurrencyModel is the last of the 12 Qt output files still hand-written after the "Sync Qt codegen for currency" task (EA647CBC). It carries a currency-specific feature — generated-but-unsaved rows shown in blue (add_synthetic_currencies=/=is_synthetic=/=mark_as_saved=/ =clear_synthetic_markers, woven into the data() override's Qt::ForegroundRole colouring) — with no equivalent in AbstractClientModel or the client_model codegen template. Either generalise it as a template capability (if other entities would plausibly want the same "synthetic row" highlighting), or migrate it onto AbstractClientModel as a protected extension point entities opt into, or document a reason it should stay entity-specific hand-written code long-term.

Landing this unblocks regenerating ClientCurrencyModel for real, which currently means currency's list view is missing 5 columns already configured in the model (spot_days=/=deliverable=/=day_basis=/=base_precedence=/ =holiday_calendar) but never surfaced because regeneration has been deferred.

Status

Field Value
State ABANDONED
Parent story Commission: currency
Now Nothing.
Waiting on Nothing.
Next Nothing — see Rethink synthetic reference-data generation across entities instead.
Last touched 2026-07-08

Acceptance

  • ClientCurrencyModel.{hpp,cpp} regenerates with zero diff (or every delta classified/decided), same as the other 11 currency Qt files.
  • The 5 new list-view columns appear in the regenerated output.
  • Synthetic-row highlighting behaviour is preserved (verified live or by careful code comparison, not just compilation).
  • Build passes.

Plan

(Implementation strategy. Written when work starts; key decisions are distilled into the parent story's * Decisions at close, but the plan itself stays — it is the historical record of what we did.)

Notes

PRs

PR Title
   

Review

Comment summary File Decision Notes
       

Result

Emacs 29.3 (Org mode 9.6.15)