Story: Currencies UI polish

Table of Contents

This page documents a story in Sprint 05. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Tidy up the currencies surface: matching JSON round-trip (XML was already there); collapse the create / update message split into a single save_currency message; ship a Qt dialog for XML import.

Status

Field Value
State DONE
Parent sprint Sprint 05
Now Completed 2025-11-28.
Waiting on None.
Next None.
Last touched 2025-11-28

Acceptance

  • Currencies round-trip through JSON.
  • Single save_currency_request/response message replaces the create/update pair (breaking protocol change; version bumped).
  • Qt XML-import dialog shipped for currencies.

Tasks

Task State Start End Description
Add JSON parsing support for currency DONE 2025-11-28 2025-11-28 Currencies can already round-trip through XML; add JSON round-trip via reflect-cpp for parity.
Merge update and create currency messages DONE 2025-11-28 2025-11-28 Bitemporal repositories always insert, so the create/update split was never semantically necessary. Collapse to a single save_currency message.
Implement import dialog for XML import in Qt DONE 2025-11-28 2025-11-28 Qt-side XML import: choose a file, parse, preview, commit. Wraps the existing XML import path with a GUI.

Decisions

Breaking protocol change is fine here
bitemporal repositories always insert new versions, so the create/update split was never semantically necessary. Protocol version bump signals the break.

Out of scope

  • Clone-a-currency (still deferred from sprint 04).

See also

Emacs 29.1 (Org mode 9.6.6)