2.11.0¶
Released: TBD
Highlights¶
- Manual journal entries can be unposted and reposted, making the ledger's
is_postedflag real. The last of the deferred Accounting Placeholder Audit feature builds.
Added¶
- Unpost / repost manual journal entries (audit #31). New
unpostLedgerEntry/postLedgerEntrymutations exclude a manual journal entry from the posted ledger (and every report) or restore it. Source-linked entries (invoices, payments, credits, …) are refused — they must be reversed. Both operations are recorded on the ledger audit chain. See Unpost / Repost Manual Journal Entries.
Changed¶
- The ~dozen
is_posted.is_(True)report filters are no longer vacuous — unposted manual entries are now correctly excluded from financial statements.
Fixed¶
- None.
Migrations¶
- None. No DB migration.
LedgerAuditOperationgains an appendedUNPOSTEDmember (stable smallint value, no reindex), and the additivepostLedgerEntry/unpostLedgerEntrymutations are new GraphQL fields.
Frontend impact¶
- A manual journal entry can be unposted (hidden from reports) and reposted. Unposting a source-linked entry returns a validation error directing the user to reverse it instead.
Versioning notes¶
- MINOR bump (
uv run python scripts/bump_version.py 2.11.0 --changelog-stub): additive GraphQL mutations and an additive audit-enum value, no breaking change.