Skip to content

Finance year page: readable figure strips, Holded docs behind the actual - #1791

Merged
peterdrier merged 2 commits into
mainfrom
claude/awesome-allen-1ea39a
Sep 22, 2026
Merged

peterdrier merged 2 commits into
mainfrom
claude/awesome-allen-1ea39a

Conversation

@peterdrier

Copy link
Copy Markdown
Owner

What

Two changes on /Finance (the budget year page):

  1. Legibility. The group/category figures (Planned spend · Actual · Remaining · Holded) sat inside the accordion's <h2>, so the display serif (Cormorant Garamond) leaked into them and .small shrank them to ~13px. They now render in the body face at 0.95rem, tabular numerals, with the label as a quiet uppercase caption and a hairline divider between figures. Holded's value moves off Bootstrap's text-info blue onto the palette's gold — "from the books", not "info".
  2. Holded lines. Expanding a category now lists, under the budget line items, the approved Holded purchase docs its Holded actual sums: doc number (linking to Holded), supplier, date, amount, plus the total. A figure that looks wrong is now traceable to the document that caused it.

Why

Peter: the figures are too small and in a weird font, the Holded blue is bad, and the Holded number needs its constituent lines visible for diagnosis.

Existing surface checked

No new contract method. GetActualsForYearAsync already loaded the docs it sums, so HoldedActualRow gained a Docs list rather than IHoldedFinanceServiceRead gaining a second method; BudgetAdminController is its only caller. The Holded doc URL was already built inline in GetUnmatchedAsync — it is now a private HoldedDocUrl helper used by both. Styling reuses the existing --h-font-body / --h-gold-dark / --h-sepia tokens in site.css.

UI changes / screenshots

No preview run from here — the change is visible on the PR's preview deploy.

Checklist

  • Section labeled — Finance/Budget; label is Peter's to set.
  • Targeting main on peterdrier/Humans (the QA fork).
  • Branched off origin/main.
  • Issue refs are qualified — none in this PR.
  • EF migrations — no schema change.
  • NuGet packages updated? — none.
  • New project rule? — none surfaced.
  • Reuse-first checked — see above.
  • Build + test pass locallydotnet build Humans.slnx -v quiet: 0 errors (13 pre-existing warnings); dotnet test Humans.slnx -v quiet: all green.
  • Nav coverage — no new page; the docs render inside the existing category panel.
  • No magic strings — admin-only route, so no localization keys (memory/code/localization-admin-exempt.md).
  • Dates/times via NodaTime, icons via Font Awesome 6.

Reviewer notes

The surface list touches three files but is one change: HoldedActualRow gains Docs, the Budget view model carries the row instead of the bare decimal, and the view renders it. Docs updated in Finance.md and Budget.md.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WSSBeC1Xg1X31oqgeWGdsw


Generated by Claude Code

The category/group figures sat inside the accordion's <h2>, so the display
serif leaked into them and <small> shrank them to ~13px. They now render in
the body face at 0.95rem with tabular numerals and a quiet uppercase label;
Holded's value moves off Bootstrap's text-info blue onto the palette's gold.

Expanding a category now also lists the approved Holded purchase docs its
actual sums (number linking to Holded, supplier, date, amount), so a figure
that looks wrong can be traced to the document that caused it.
GetActualsForYearAsync carries those docs on HoldedActualRow rather than
gaining a second contract method — the service already had them in hand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WSSBeC1Xg1X31oqgeWGdsw
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 22, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-22T11:38:18.768506Z 4f2861e PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@claude

claude Bot commented Sep 22, 2026

Copy link
Copy Markdown

Reviewed commit 4f2861e — no issues found.

@github-actions

github-actions Bot commented Sep 22, 2026

Copy link
Copy Markdown

PR Surface Report

Compared d6e4acce...07ec5882. Scored with reforge 0.29.0.

Summary: 9 changed file(s) | EF migrations: 0 added file(s), max 0/1 per context

Reforge Surface Score

metric base head delta
total 20482 20486 +4
surface 16868 16872 +4
internal complexity 3614 3614 0

Section Deltas

section base head delta
Finance 583 587 +4

Section Size & Complexity Deltas

section LOC delta files delta classes delta cognitive p95 delta
Budget +2 0 0 0
Finance +17 0 +1 0
Corpus +19 0 +1 0

Corpus is the solution-wide rollup (same source as Corpus Size & Complexity below), not a sum of the section rows above - cognitive p95 in particular doesn't compose across sections.

Rule Deltas

rule base head delta
dtoCollectionProperty 284 288 +4

Corpus Size & Complexity

metric base head delta
locProd 186266 186285 +19
classes 2934 2935 +1
methods 6766 6767 +1

At head: largest class SurveyService, most complex method DevelopmentDashboardSeeder.SeedAsync.

Published Write Surface

14 of 48 sections publish write capability, 23 interfaces (0).

Interface Surface

No new interfaces or interface methods.

Diff Size

bucket added deleted
code 100 23
tests 28 1
docs 2 1
other 52 0

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4f2861ef7c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/Sections/Humans.Budget/Views/_ViewImports.cshtml Outdated
Comment thread src/Sections/Humans.Finance/Services/Service.cs
Comment thread src/Humans.Web/wwwroot/css/site.css
No Budget view names a Humans.Finance.Contracts type: YearDetail reaches
HoldedActualRow through `var holded = ...GetValueOrDefault(cat.Id)`, so the
import only added an orphan using to every generated Budget view
(code-review-rules.md:107).

Codex's other two findings declined in-thread: the zero-net-actual case needs
offsetting signed totals Finance never ingests, and the figure strip's
text-nowrap predates this diff.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SR1xAMAXmCep675JvCSnoh
Review-round: 1
@peterdrier
peterdrier merged commit 001653f into main Sep 22, 2026
6 checks passed
@peterdrier
peterdrier deleted the claude/awesome-allen-1ea39a branch September 22, 2026 13:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants