Skip to content

Results: DNS rows for zero-lap entries + unique-riders header count - #75

Merged
mbuckaway merged 2 commits into
masterfrom
topic/show-zero-lap-riders
Sep 23, 2026
Merged

mbuckaway merged 2 commits into
masterfrom
topic/show-zero-lap-riders

Conversation

@mbuckaway

Copy link
Copy Markdown
Owner

What

On a FINISHED ride, any rider or team with 0 laps/crossings is now a DNS entry. DNS entries still appear in the results (Standings window, HTML, PDF, CSV) — appended unplaced at the bottom of their section, with a blank Place, Laps rendered as DNS, blank times and no tie-break draw — and are hidden entirely when the new Results check item Show DNS Riders is unchecked. They never reach the laps/time boards or the podium.

The Results menu gains Show DNS Riders (mi_show_dns_riders, AppSettings.show_dns_riders), on by default and FINISHED-gated (a live or REOPENED ride ranks its whole field, so the toggle does nothing there).

The full-results header (HTML page and PDF cover) gains a fourth counter, unique riders — individual riders riding solo or on a team, excluding the DNS entries.

Machine formats: the embedded race-data record keeps a numeric laps plus a sparse "dns": true; the standings CSV writes DNS for laps with a blank place and time.

Where

  • standings: ZeroLapMode (RANK/DNS/HIDE) + rank_by_kind(zero_laps=…) and Placed.dns; rank stays pure.
  • ui/presenters/{data_source,results,settings}.py, ui/views/{results_win,settings}.py, ui/app.py, ui/commands.py, ui/xrc/main.xrc, ui/ids.py.
  • htmlexport (ResultRow.dns, board/podium filtering, templates) · pdfexport · csvio.
  • Contract write-back: design/docs-md/{spec,xrc-windows}.md, docs/user-guide.md (and its regenerated HTML), design/exports/*.html.

Satisfies the results_dlg (1f) Standings window; spec §5/§6/§15/§15b updated.

Verification

nox (all default sessions) green — lint, typecheck, importlint, ids_drift, css_drift, assets_drift, userguide_drift, unit: 6773 passed, 1 skipped, 99.85% coverage (gate 90%).

…der — red

Add the failing tests first: ZeroLapMode DNS/HIDE/RANK partitioning in
standings.rank_by_kind; the FINISHED-gated Show DNS Riders toggle through
the data source, presenter and results window; blank-Place / "DNS"-laps
and blank-time rendering across HTML, PDF and CSV; the sparse race-data
dns flag; the DNS-excluded unique-riders header count; the poster filter
and the golden-fixture census.
…er count

On a FINISHED ride, any rider or team with 0 laps/crossings is a DNS
entry: it still appears in the results, appended unplaced at the bottom
of its section, with a blank Place cell, Laps rendered as "DNS", blank
times and no tie-break draw. The Results menu's new "Show DNS Riders"
check item (on by default, FINISHED-gated) hides those rows when off.

The full-results header (HTML page and PDF cover) gains a fourth counter,
"unique riders", counting individual riders and excluding DNS entries.
The embedded race-data JSON keeps numeric laps plus a sparse dns flag; the
standings CSV writes DNS for laps with a blank place and time.

Write the change back into the contract: design spec sections 5, 6, 15 and
15b, xrc-windows section D, the user guide (and its generated HTML) and the
sample results pages.
@mbuckaway
mbuckaway merged commit 5b80858 into master Sep 23, 2026
27 checks passed
@mbuckaway
mbuckaway deleted the topic/show-zero-lap-riders branch September 23, 2026 13:30
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.

1 participant