Documentazione: scout live ridotto alle valutazioni − / +
Modulo, DD-053, changelog e stato del progetto descrivono la schermata senza tasti dei punti, tabellone e blocco avversario, e il limite attuale su chiusura di set e partita. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
51b7a10c99
commit
44194d6d54
4 files changed
+34
-12
No files matched your search
+2
-1
@@ -37,7 +37,8 @@ schema in [docs/DATABASE.md](docs/DATABASE.md), le procedure in
|
|||||||
collega al primo accesso (DD-018).
|
collega al primo accesso (DD-018).
|
||||||
- **Lavoro in corso:** branch `feature/gara` per le funzioni di gara (correzioni e nuove
|
- **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
|
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). Non ancora in `main`, non rilasciato, versione
|
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
|
||||||
invariata. Le altre voci aperte stanno in [docs/ROADMAP.md](docs/ROADMAP.md), sotto «Prossimo».
|
invariata. Le altre voci aperte stanno in [docs/ROADMAP.md](docs/ROADMAP.md), sotto «Prossimo».
|
||||||
|
|
||||||
## Cose da sapere
|
## Cose da sapere
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ Cinque migration, da `m35` a `m39`, **non ancora applicate in produzione**.
|
|||||||
|
|
||||||
### Modificato
|
### Modificato
|
||||||
|
|
||||||
|
- 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.
|
||||||
- Il voto MVP è definitivo ([DD-051](decisions/DD-051.md)): si sceglie un nome, si conferma e non si
|
- Il voto MVP è definitivo ([DD-051](decisions/DD-051.md)): si sceglie un nome, si conferma e non si
|
||||||
può più cambiare. Il database lo impone (solo gli admin possono correggere un voto).
|
può più cambiare. Il database lo impone (solo gli admin possono correggere un voto).
|
||||||
- In caso di parità in testa gli MVP sono più d'uno: ognuno dei pari merito conta un titolo, e in
|
- In caso di parità in testa gli MVP sono più d'uno: ognuno dei pari merito conta un titolo, e in
|
||||||
|
|||||||
@@ -17,6 +17,11 @@ giudizio sul resto del gioco — battuta, ricezione, attacco, muro — che non c
|
|||||||
- Stato in corso dentro `scout_live.stato` (jsonb, nessuna modifica); partita archiviata nella
|
- Stato in corso dentro `scout_live.stato` (jsonb, nessuna modifica); partita archiviata nella
|
||||||
nuova colonna `scout_partite.valutazioni jsonb NOT NULL DEFAULT '[]'` (`m39`, solo additiva).
|
nuova colonna `scout_partite.valutazioni jsonb NOT NULL DEFAULT '[]'` (`m39`, solo additiva).
|
||||||
|
|
||||||
|
- 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»).
|
||||||
|
|
||||||
**Alternative scartate**
|
**Alternative scartate**
|
||||||
|
|
||||||
- Nuovi `AzioneTipo` dentro `azioni` → ogni consumatore (punteggio, totali, CSV) andrebbe filtrato
|
- Nuovi `AzioneTipo` dentro `azioni` → ogni consumatore (punteggio, totali, CSV) andrebbe filtrato
|
||||||
|
|||||||
+24
-11
@@ -10,9 +10,8 @@
|
|||||||
## Obiettivo
|
## Obiettivo
|
||||||
|
|
||||||
Permettere a un solo referente per volta di registrare in tempo reale, durante la partita,
|
Permettere a un solo referente per volta di registrare in tempo reale, durante la partita,
|
||||||
punti, ace, muri ed errori di ciascun giocatore in campo — più un giudizio − / + sui
|
un giudizio − / + sui fondamentali (battuta, ricezione, attacco, muro) di ciascun convocato,
|
||||||
fondamentali, per set — con salvataggio condiviso su
|
per set, con salvataggio condiviso su Supabase (non più solo `localStorage`, fix M7) così che tutta la squadra veda lo stato
|
||||||
Supabase (non più solo `localStorage`, fix M7) così che tutta la squadra veda lo stato
|
|
||||||
aggiornato da qualunque dispositivo.
|
aggiornato da qualunque dispositivo.
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -67,12 +66,18 @@ perché occupava spazio 6 giorni su 7.
|
|||||||
|
|
||||||
## Cosa registra
|
## Cosa registra
|
||||||
|
|
||||||
Tipi di azione (`AzioneTipo`, `scout-store.ts`): `attacco`, `ace`, `muro`, `errore`,
|
La schermata `/scout` ha due passi: **1. Tocca il giocatore** (griglia dei convocati, filtrati sulle
|
||||||
`punto_avv`, `errore_avv` — attacco/ace/muro ed errore avversario valgono come punto nostro,
|
risposte "presente"/"ritardo", con fallback a tutta la rosa se nessuno ha risposto) e **2. Valuta**
|
||||||
errore nostro e punto avversario come punto avversario. Le azioni con giocatore
|
(vedi sotto), seguiti da «Ultime azioni», «Chiudi set» e «Fine partita». Salvataggio automatico su
|
||||||
(attacco/ace/muro/errore) richiedono di selezionarlo prima dalla griglia dei convocati
|
`scout_live` con debounce di 800ms a ogni cambiamento.
|
||||||
(filtrati sulle risposte "presente"/"ritardo", con fallback a tutta la rosa se nessuno ha
|
|
||||||
risposto). Salvataggio automatico su `scout_live` con debounce di 800ms a ogni cambiamento.
|
**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
|
||||||
|
e set e il blocco avversario / in casa / trasferta. Avversario e campo restano quelli ricavati dal
|
||||||
|
titolo della partita (o dallo stato già salvato) e non si modificano. I tipi di azione
|
||||||
|
(`AzioneTipo`, `scout-store.ts`: `attacco`, `ace`, `muro`, `errore`, `punto_avv`, `errore_avv`),
|
||||||
|
i totali `totaliPerGiocatore()` e il campo `scout_partite.azioni` restano nel codice e nei dati:
|
||||||
|
leggono le partite scoutate prima di questa modifica, ma oggi nessuna schermata crea nuove azioni.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -80,9 +85,10 @@ risposto). Salvataggio automatico su `scout_live` con debounce di 800ms a ogni c
|
|||||||
|
|
||||||
Per ogni convocato lo scout può segnare un **−** o un **+** su battuta, ricezione, attacco e muro
|
Per ogni convocato lo scout può segnare un **−** o un **+** su battuta, ricezione, attacco e muro
|
||||||
([DD-053](../decisions/DD-053.md)). Non sono punti: restano fuori dal punteggio, dai parziali e dai
|
([DD-053](../decisions/DD-053.md)). Non sono punti: restano fuori dal punteggio, dai parziali e dai
|
||||||
totali P/A/M/E. Si seleziona il giocatore (passo 1) e si tocca − o + sul fondamentale (passo 3);
|
totali P/A/M/E. Si seleziona il giocatore (passo 1) e si tocca − o + sul fondamentale (passo 2, il cui titolo mostra
|
||||||
|
cognome e numero del giocatore e il set in corso);
|
||||||
accanto a ogni tasto compare il conteggio di quel giocatore **nel set in corso**. «Annulla» nella
|
accanto a ogni tasto compare il conteggio di quel giocatore **nel set in corso**. «Annulla» nella
|
||||||
sezione toglie l'ultima valutazione del set in corso (l'«Annulla» in alto resta per le azioni).
|
sezione toglie l'ultima valutazione del set in corso (l'«Annulla» in alto agisce solo sulle azioni, quindi oggi è sempre spento).
|
||||||
|
|
||||||
Ogni tocco è una riga `Valutazione` (`giocatoreId`, `fondamentale`, `segno`, `set`, `ts`) in una
|
Ogni tocco è una riga `Valutazione` (`giocatoreId`, `fondamentale`, `segno`, `set`, `ts`) in una
|
||||||
lista separata da `azioni`; i conteggi per set si calcolano con `contaValutazioni()`
|
lista separata da `azioni`; i conteggi per set si calcolano con `contaValutazioni()`
|
||||||
@@ -93,6 +99,10 @@ stati salvati prima: vale lista vuota); a fine partita finiscono in `scout_parti
|
|||||||
|
|
||||||
## Fine partita
|
## 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`.
|
||||||
|
|
||||||
`finePartita()` (`scout.tsx`) compone i parziali finali, inserisce la partita in
|
`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)
|
`scout_partite` (INSERT, non upsert), poi cancella la riga da `scout_live` (stato consumato)
|
||||||
e rilascia la sessione.
|
e rilascia la sessione.
|
||||||
@@ -134,10 +144,13 @@ calcolati a runtime).
|
|||||||
|
|
||||||
## Limiti noti
|
## 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.
|
||||||
- Scout aperto a tutta la squadra: nessun filtro su chi può registrare le azioni, l'unica
|
- Scout aperto a tutta la squadra: nessun filtro su chi può registrare le azioni, l'unica
|
||||||
garanzia è il lock di sessione (vedi sopra).
|
garanzia è il lock di sessione (vedi sopra).
|
||||||
- Possibile, per quanto improbabile, doppio "successo" applicativo nel prendere il lock:
|
- Possibile, per quanto improbabile, doppio "successo" applicativo nel prendere il lock:
|
||||||
lettura e upsert non sono atomici.
|
lettura e upsert non sono atomici.
|
||||||
|
- Avversario e campo non si correggono dallo scout.
|
||||||
- `scout_partite` si inserisce ma non si corregge dall'interfaccia: solo eliminazione totale.
|
- `scout_partite` si inserisce ma non si corregge dall'interfaccia: solo eliminazione totale.
|
||||||
- Abbinamento partita↔scout fatto anche per uguaglianza di data come fallback: ambiguo se due
|
- Abbinamento partita↔scout fatto anche per uguaglianza di data come fallback: ambiguo se due
|
||||||
partite cadono lo stesso giorno.
|
partite cadono lo stesso giorno.
|
||||||
|
|||||||
Reference in new issue
Block a user