Skip to content

feat(desktop): import any player list CSV with a column mapping - #9

Merged
acoradd merged 1 commit into
mainfrom
feat/csv-column-import
Oct 21, 2026
Merged

acoradd merged 1 commit into
mainfrom
feat/csv-column-import

Conversation

@acoradd

@acoradd acoradd commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

The import no longer expects the export's fixed layout. Go reads any CSV (";", "," or tab, BOM, Windows-1252 from Excel) and guesses what the columns hold from the header: OpenShuttle's export, HelloAsso and other registration tools. That covers the category column with codes or words ("Double hommes"), whole names or first and last names, clubs and the partner.

The Entrants screen shows the mapping with the first lines of the file and a live preview from Go: entrants to add, lines skipped and why. The organizer can change any column, map each category value, ignore lines on purpose (a meal ticket) or give the partner the first player's club. A pair registered by each partner is entered once.

What and why

How it was tested

Checklist

  • Commits are signed off (git commit -s), see CONTRIBUTING.md
  • The PR title is a Conventional Commit (feat(engine): …)
  • Go changes come with tests; cd src && go test ./... passes
  • UI text is in both en.json and fr.json (npm run i18n:check)
  • Bindings regenerated if a Go service changed
  • Event JSON fields unchanged, or the file migration is handled
  • Docs updated (scope, ADR, CLAUDE.md) if behaviour or architecture changed

The import no longer expects the export's fixed layout. Go reads any
CSV (";", "," or tab, BOM, Windows-1252 from Excel) and guesses what
the columns hold from the header: OpenShuttle's export, HelloAsso and
other registration tools. That covers the category column with codes
or words ("Double hommes"), whole names or first and last names, clubs
and the partner.

The Entrants screen shows the mapping with the first lines of the file
and a live preview from Go: entrants to add, lines skipped and why.
The organizer can change any column, map each category value, ignore
lines on purpose (a meal ticket) or give the partner the first
player's club. A pair registered by each partner is entered once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Thomas DA ROCHA <thomas.darocha@axopen.com>
@sonarqubecloud

Copy link
Copy Markdown

@acoradd
acoradd merged commit fefa148 into main Oct 21, 2026
9 checks passed
@acoradd
acoradd deleted the feat/csv-column-import branch October 21, 2026 07:51
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