feat(series): run each round from the series page

Step 3 becomes a rounds table: pick drivers inline (copy from the
previous round, add a late entry), set qualifying rounds/finals/max
cars per heat per round, see the status, and create qualifying and
finals from there. Qualifying heats are now split evenly so nobody
drives alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
larssand
2026-10-11 18:55:36 +02:00
parent 581ec2c781
commit b5707f92d1
17 changed files with 447 additions and 39 deletions

View File

@@ -361,7 +361,12 @@ The integration test starts its own backend on a temporary localhost port and ne
Menu **Series / cup** groups several races into a championship:
- **Classes:** choose any classes; each gets its own table.
- **Rounds:** any number. Tick existing races, or create them from a list of dates. One race per date and class is created with the chosen race format; then add drivers and generate heats in Race Setup as usual.
- **Rounds:** any number. Create them from a list of dates (one race per date and class) with the number of qualifying rounds, finals and max cars per heat, or add an existing race.
- **Running the season from the series page (step 3)**, one row per round:
- **Drivers:** click the number to tick who takes part. All drivers in the class are ticked to begin with. **Copy from previous** takes the field from the previous round of the same class, and **New driver** registers a late entry in the class (and the series' club) and ticks it.
- **Format per round:** qualifying rounds, finals and max cars per heat. Each round and class can differ; the format locks once qualifying is created.
- **Create qualifying:** the number of heats follows the number of drivers, split evenly (9 drivers, max 8 per heat → 5 + 4, never 8 + 1).
- **Create finals** once qualifying is done. **Status** shows not started, qualifying created/running/done, finals, done. **Open** goes to the race in Race Setup.
- **Points table:** the ÖRC table (100, 90, 82, 75, 69 ... then -4 per place, min 10), 100-80-70 ..., F1, or your own list with a step and minimum after it.
- **Counted results:** best N (e.g. 9 of 12), or all run rounds except the X worst. A cancelled round then lowers the count by itself. Absence counts as 0 and can be dropped.
- **Who scores series points** is a choice per series: