Add CSV imports and granular competition data cleanup

This commit is contained in:
larssand
2026-08-27 17:56:50 +02:00
parent a87c64a47c
commit e5af42ce2d
9 changed files with 504 additions and 8 deletions

View File

@@ -73,7 +73,7 @@ Recommended deployment:
- Storage/import tools:
- full race-data export/import for backup or moving to another machine
- directory export/import for only classes, drivers and cars
- CSV export for drivers and cars when you want simple spreadsheet lists
- CSV export and safe merging CSV import for drivers and cars through Excel or LibreOffice
- single race-package export/import from `Race Setup -> Manage -> Race Actions`
- Race Setup includes:
- `Quick Open Practice`: enter only a name, create an untimed all-transponder session, and continue directly to Timing
@@ -262,11 +262,16 @@ The integration test starts its own backend on a temporary localhost port and ne
- `Settings -> Storage` now supports:
- full JSON export/import for the complete competition database
- directory JSON export/import for only classes, drivers, and cars
- CSV export for drivers and cars
- CSV export and merging CSV import for drivers and cars; comma, semicolon, and tab delimiters are supported
- separate clearing of drivers, cars, classes, races/sessions, or training statistics
- `Clear all competition data` retains decoder, theme, branding, and server settings
- `Race Setup -> Manage -> Race Actions` now supports single race packages:
- export one race with its sessions, results, and referenced classes/drivers/cars
- import that package into another installation as a new race entry
- JSON export files now include export metadata and a schema version field so future imports can be handled more safely.
- CSV imports from the application's own exports preserve IDs. External lists without IDs first match by transponder and then by name + class. Empty fields do not overwrite existing information, and new class names are created automatically.
- Create a JSON backup before clearing data. Every clear button requires a separate confirmation and cannot be undone.
- Web clearing removes canonical application data but retains the separate raw SQLite `passings` table as an audit log. A physical factory reset of the database must be performed locally on the stopped server, never through an unauthenticated LAN route.
## Race features