diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 9e6a58b..2d864b1 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -13,6 +13,12 @@ versioni `0.y.z` erano pre-release. ## [Non rilasciato] +### Modificato + +- Sondaggio cacche: la classifica completa è visibile a tutti i giocatori, anche a sondaggio + chiuso, con posizioni a pari merito senza salti (1°, 1°, 2°) e la propria riga evidenziata. +- Pagina partita: la sezione «Report tecnico» si chiama «Scout». + ## [1.6.0] - 2026-11-02 Voto MVP definitivo e segreto, Scout live a valutazioni. Cinque migration, da `m35` a `m39`, diff --git a/docs/modules/scout-live.md b/docs/modules/scout-live.md index 7e5eb8e..c7d40e8 100644 --- a/docs/modules/scout-live.md +++ b/docs/modules/scout-live.md @@ -109,7 +109,7 @@ Senza punteggio, `chiudiSet()` chiude il set (come 0-0) se ha almeno una valutaz 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. +referto CSI; resta visibile il «Scout» 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) @@ -122,7 +122,7 @@ e rilascia la sessione. `scout-export.ts` genera un CSV (separatore `;`, BOM UTF-8) con parziali, riepilogo per giocatore e log cronologico delle azioni. Se ci sono valutazioni, aggiunge una tabella per set e giocatore con i conteggi di «più» e «meno» di ogni fondamentale (solo per chi ne ha). Scaricabile dagli admin dalla -pagina partita, sezione "Report tecnico". +pagina partita, sezione "Scout". --- @@ -156,7 +156,7 @@ calcolati a runtime). - 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 +- Il blocco «Scout» 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). diff --git a/src/components/crapp/SondaggioCacche.tsx b/src/components/crapp/SondaggioCacche.tsx index ef5b58a..f7ed237 100644 --- a/src/components/crapp/SondaggioCacche.tsx +++ b/src/components/crapp/SondaggioCacche.tsx @@ -40,11 +40,15 @@ export function SondaggioCacche({ const media = mediaPartita(righe, eventoId); const classifica = [...dellaPartita] .sort((a, b) => b.quantita - a.quantita) - .slice(0, 3) .map((r) => { const g = squadra.find((g) => g.id === r.giocatore_id); return { ...r, nome: g ? nomeCompleto(g) : "—" }; - }); + }) + // Pari merito = stessa posizione, senza salti (1°, 1°, 2°). + .map((r, _, tutti) => ({ + ...r, + pos: new Set(tutti.filter((t) => t.quantita > r.quantita).map((t) => t.quantita)).size + 1, + })); async function rispondi(quantita: number) { if (!io) return; @@ -89,6 +93,7 @@ export function SondaggioCacche({ ? "Sondaggio chiuso: era aperto fino al fischio d'inizio." : "Apre alle 8:00 del giorno della partita: riceverai una notifica."}

+ ); } @@ -126,19 +131,7 @@ export function SondaggioCacche({ ))} -
- - Media squadra {media} - - {classifica.map((r, i) => ( - - {i === 0 ? "🥇" : i === 1 ? "🥈" : "🥉"} {r.nome} · {r.quantita} - - ))} -
+ {admin ? (