[E08] Import Results
Actor & Context
Actor: event organiser, results officer, tenant admin.
Frequency: per event (initial result import, corrections during the verification window).
Precondition: event has finished; EPs exist; user has EVENT_MANAGER or RESULTS_OFFICER permission.
Entry point: Import results button on E04 Event Results; from E05's Results unverified pill click.
Main Flow
-
Upload screen. File picker (CSV/XLSX), result-import-specific options:
-
registrationIdresolution mode (per US #457). -
DNF / DNS / Drop status handling toggle (per US #457).
-
Repeated header tolerance (per Bug #453).
-
-
User clicks Upload — write
localStorage.importCaller = 'e08', thenPOST /api/imports. -
Redirect to C05 for column / cell mapping + progress.
-
C05 redirects back on completion to the summary screen.
-
Summary screen. Per-row reconciliation:
-
Created / updated result counts.
-
Unresolved EPs surfaced as actionable issues (US #456).
-
DNF / DNS / Drop entries reported separately (US #457).
-
Non-data-line counts (US #455).
-
Link to E04 for follow-up.
-
Alternative Flows
-
AF-1: Re-import during correction window — existing results updated; summary distinguishes new vs corrected.
-
AF-2: Re-import after correction window closed — soft warning; user must confirm before submit.
-
AF-3: Cancel / fatal error — same patterns as E06.
Acceptance Criteria
-
Use-case page authored.
-
Status
design-todo → handoff-readyafter Claude Design pass. -
:design-url:populated. -
Cross-references C05 + E04 + E05.
-
DNF / DNS / Drop entries surfaced separately per US #457.
-
Unresolved EPs surfaced as actionable issues per US #456.
API Surface
| Call | Purpose |
|---|---|
|
Create import job from uploaded file + result-import options. |
|
Driving the summary screen. |
(delegates to C05 for column / cell / progress) |
Shared mapping flow. |