Documentazione: salvataggio immediato e partite scoutate senza punteggio

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
davideandClaude Sonnet 5.5 committed 2026-11-02 08:36:51 +01:00
1 parent d86b38d47b
commit ebafb98b32
4 files changed
+24 -11

No files matched your search

+1 -1
View File
@@ -38,7 +38,7 @@ schema in [docs/DATABASE.md](docs/DATABASE.md), le procedure in
- **Lavoro in corso:** branch `feature/gara` per le funzioni di gara (correzioni e nuove
funzioni; in futuro anche lo scouting). Primo lavoro: il voto MVP definitivo, segreto, a tempo e
tra presenti, con i pari merito (DD-051, DD-052). Poi lo scout live ridotto alle valutazioni − / +
per set (DD-053): da completare la chiusura di set e partita senza punti. Non ancora in `main`, non rilasciato, versione
per set (DD-053), salvate subito su database. Migration `m39` da applicare in produzione. Non ancora in `main`, non rilasciato, versione
invariata. Le altre voci aperte stanno in [docs/ROADMAP.md](docs/ROADMAP.md), sotto «Prossimo».
## Cose da sapere
+4 -1
View File
@@ -25,7 +25,10 @@ Cinque migration, da `m35` a `m39`, **non ancora applicate in produzione**.
- Scout live: tolti i tasti dei punti, il tabellone del punteggio e il blocco avversario / in casa /
trasferta; resta la scelta del giocatore e la valutazione − / + per set
([DD-053](decisions/DD-053.md)). Per ora «Chiudi set» e «Fine partita» non salvano senza punti.
([DD-053](decisions/DD-053.md)). «Chiudi set» e «Fine partita» funzionano anche senza punti; le
partite di sole valutazioni non compaiono come risultato in Home, Classifica e pagina partita.
- Scout live: il salvataggio è immediato a ogni tocco (prima c'era una pausa di 0,8 secondi) e,
se non riesce, compare un avviso.
- Scout live: la griglia «Selezione giocatore» si ordina per cognome o per numero; nel riquadro di
ogni giocatore compaiono i + del set in corso (ricezione esclusa) al posto dei punti.
- Il voto MVP è definitivo ([DD-051](decisions/DD-051.md)): si sceglie un nome, si conferma e non si
+4 -2
View File
@@ -19,8 +19,10 @@ giudizio sul resto del gioco — battuta, ricezione, attacco, muro — che non c
- Nella schermata dello scout, su richiesta, sono stati tolti i tasti delle azioni, il tabellone del
punteggio e il blocco avversario/campo: lo scout è fatto solo di valutazioni. Non c'è più una
chiusura di set né di partita che funzioni senza punti (vedi
[modulo Scout Live](../modules/scout-live.md), «Limiti noti»).
«Chiudi set» e «Fine partita» funzionano anche senza punti: il set chiuso vale 0-0 e la partita
archiviata di sole valutazioni **non è un risultato** (`haPunteggio()`), quindi non compare in
Home, Classifica né al posto del referto CSI.
- Il salvataggio dello stato in corso è immediato a ogni tocco, con avviso se fallisce.
**Alternative scartate**
+15 -7
View File
@@ -69,7 +69,7 @@ perché occupava spazio 6 giorni su 7.
La schermata `/scout` ha due passi: **Selezione giocatore** (griglia dei convocati, ordinata per cognome o per numero con il selettore a destra del titolo, default cognome; in ogni riquadro, sotto il nome, i **+** del giocatore nel set in corso, ricezione esclusa; filtrati sulle
risposte "presente"/"ritardo", con fallback a tutta la rosa se nessuno ha risposto) e **2. Valuta**
(vedi sotto), seguiti da «Ultime azioni», «Chiudi set» e «Fine partita». Salvataggio automatico su
`scout_live` con debounce di 800ms a ogni cambiamento.
`scout_live` **a ogni cambiamento**, senza attesa: i salvataggi vanno in coda, uno alla volta e in ordine, e ognuno scrive lo stato intero (uno riuscito rimedia a uno fallito). Se un salvataggio non riesce compare un avviso fisso che sparisce al salvataggio successivo riuscito.
**Punteggio e azioni.** L'interfaccia non registra più il punteggio: sono stati tolti i tasti delle
azioni (punto attacco, ace, muro, errore nostro, punto e errore avversario), il tabellone con punti
@@ -99,9 +99,12 @@ stati salvati prima: vale lista vuota); a fine partita finiscono in `scout_parti
## Fine partita
**Limite attuale:** `chiudiSet()` e `finePartita()` si basano sui punti, che non si registrano più. «Chiudi
set» risponde «Set senza azioni» (quindi il set resta sempre il 1) e «Fine partita» «Nessun set da
salvare»: le valutazioni restano nello stato in corso e non arrivano in `scout_partite`.
Senza punteggio, `chiudiSet()` chiude il set (come 0-0) se ha almeno una valutazione, e
`finePartita()` archivia anche la partita fatta di sole valutazioni: il set in corso entra nei
parziali se ha dati (`parzialiFinali()`, `scout-store.ts`). Con nessuna valutazione risponde
«Nessun set da salvare». Una partita senza punti ha parziali 0-0 e **non è un risultato**:
`haPunteggio()` la esclude da Home, Classifica e dalla pagina della partita, dove non sostituisce il
referto CSI; resta visibile il «Report tecnico» con il CSV.
`finePartita()` (`scout.tsx`) compone i parziali finali, inserisce la partita in
`scout_partite` (INSERT, non upsert), poi cancella la riga da `scout_live` (stato consumato)
@@ -144,8 +147,13 @@ calcolati a runtime).
## Limiti noti
- Senza punteggio, set e partita non si chiudono (vedi «Fine partita»): da risolvere, per esempio
chiudendo il set anche senza punti e salvando la partita con le sole valutazioni.
- Lo stato in corso è raggiungibile solo il giorno della partita: se nessuno preme «Fine partita»
entro la mezzanotte i dati restano in `scout_live` ma dall'app non si riprendono più.
- Le valutazioni dei set chiusi e delle partite finite sono salvate ma non si rivedono nell'app: lo
scout mostra solo il set in corso e l'unica lettura è il CSV admin. Evoluzione: tabella nella
pagina partita.
- Il blocco «Report tecnico» della pagina partita mostra ancora Punti/Ace/Muri/Errori (a zero per le
partite di sole valutazioni) e non le valutazioni, che sono solo nel CSV admin.
- Scout aperto a tutta la squadra: nessun filtro su chi può registrare le azioni, l'unica
garanzia è il lock di sessione (vedi sopra).
- Possibile, per quanto improbabile, doppio "successo" applicativo nel prendere il lock:
@@ -159,5 +167,5 @@ calcolati a runtime).
## Evoluzioni possibili
- Mostrare le valutazioni anche nella pagina della partita (oggi solo nel CSV admin).
- Mostrare le valutazioni per set e giocatore nella pagina della partita (oggi solo nel CSV admin) e, nello scout, in sola lettura quelle dei set chiusi.
- Realtime (Supabase Realtime) per aggiornare la sessione condivisa senza refresh manuale.