Statistiche: con «Tutti i punti» Capability, Carta e Istogramma vuoti #100
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
dashboard.html loadData(): capability/control-chart/histogram chiesti solo con punto scelto; default «Tutti i punti» → pannelli grigi. Cambio punto non ricarica senza «Applica filtri». Segnalato da Adriano 25/10.
ESITO: richiesta
COSA: statistiche SPC — con «Tutti i punti» i pannelli Capability, Carta di Controllo e Istogramma restano grigi; il cambio del punto non ricarica finché non si preme «Applica filtri».
Segnalazione di Adriano 25/10/2026: «su statistica Indici di Capability, Carta di Controllo e Istogramma sono vuoti anche se vi sono dati nelle misurazioni». Decisione di Adriano: «se non c'è punto di misura selezionato o vengono nascosti o si fa qualcosa per tutte le misure».
VERIFICATO: ricetta 2 (FIERA-ALBERO) su daitarn, headless Edge → «Tutti i punti» + Applica filtri: pannelli con solo il testo grigio «Seleziona un punto di misura…»; punto #1 + Applica filtri: Cp 1.4903, Cpk 1.4632, n 191, carta e istogramma disegnati, nessun errore in console. Il backend è a posto: il difetto è solo nella pagina.
CAUSA:
src/frontend/flask_app/templates/statistics/dashboard.html,loadData()(riga ~449) chiede capability, control-chart e histogram solo seselectedSubtaskIdè valorizzato; il select «Punto di misura» parte da «Tutti i punti» eonRecipeChange()lo azzera. Inoltre il select non ha@change, quindi il cambio di punto non ricarica nulla.MODIFICHE (solo dashboard.html):
loadedSubtaskId: ''= punto con cui sono stati caricati i dati.loadData()lo imposta athis.selectedSubtaskIdquando la summary arriva;onRecipeChange()lo azzera. I pannelli dipendono da questo, non dal valore corrente del select.capabilityAll: []. InloadData(), se NON c'è punto scelto: fetch in parallelo di/statistics/api/capability?<stessi params>&subtask_id=<id>per ogni elemento dithis.subtasks;capabilityAll= lista di{subtask, data}(data null se errore oerror). Con punto sceltocapabilityAll = []e il flusso di oggi resta invariato.loadedSubtaskIdvuoto: tabella compatta, una riga per punto: «#N — descrizione», n, Cp, Cpk (colorecapabilityColor), «—» quando cp è null (dati insufficienti o quota non numerica). Click su una riga →selectedSubtaskId = String(id)eloadData(). Titolo invariato; sotto la tabella una riga grigia «Scegli un punto per carta di controllo e istogramma». Con punto scelto: contenuto di oggi.x-show="loadedSubtaskId"sul contenitore della card (non x-if:renderCharts()cerca gli idcontrol-chartehistogram-chartnel DOM). InrenderCharts()i rami else con i testi «Seleziona un punto…» restano innocui; non serve toccarli. Quando la card torna visibile, Plotly va ridisegnato dopo che è visibile: chiamarerenderCharts()in$nextTickdopo l'aggiornamento diloadedSubtaskId(oggi già così) e, se il grafico risultasse stretto,Plotly.Plots.resizesugli id.@change="loadData()"(ricarica subito, come chiede l'uso in fiera). «Applica filtri» resta per date e sessione._(); aggiungere le voci atranslations/en/LC_MESSAGES/messages.pose il repo le tiene allineate (vedi come sono state aggiunte le voci di #58), senza ricompilare i .mo a mano se la build lo fa da sé.TEST: in
src/frontend/flask_app/tests/test_statistics.pyun test che la pagina dashboard renda gli elementi nuovi (capabilityAll,loadedSubtaskId,@change="loadData()"sul select del punto). Comando:C:/Users/Adriano/lavoro/TieMeasureFlow-dxfcal-frontend/.venv/Scripts/python.exe -m pytest tests -q -p no:cacheproviderdasrc/frontend/flask_app. Base nota: 9 fallimenti preesistenti (+4 di lingua/.mo solo nel worktree dxfcal); nessun fallimento nuovo.PROVA A MANO (Opus): headless Edge su http://127.0.0.1:8780/statistics/dashboard, ricetta 2: «Tutti i punti» → tabella con 4 righe, carta e istogramma nascosti; click riga #1 → Cp 1.4903 e grafici; cambio punto dal select → ricarica senza «Applica filtri».
NON TOCCARE: backend (
src/backend/**),blueprints/statistics.py,static/js/spc-charts.js, report PDF, pannello esiti task di #58 (loadTaskResults).Soluzione
ESITO: fatto
FILE: src/frontend/flask_app/templates/statistics/dashboard.html — loadedSubtaskId e capabilityAll; con «Tutti i punti» tabella Cp/Cpk/n per punto (click riga = apre il punto), carta e istogramma x-show solo con punto caricato, select punto @change=loadData(); messages.po voce EN nuova.
TEST: test_statistics.py::test_dashboard_all_points_overview.
COMMIT:
842ceca(Sonnet), merge351153esu lavoro/daitarn-tmf-dxfcal (pushato).PROVA: pytest frontend 9 failed prima e dopo (stessi, base nota), +1 passed; TMF daitarn riavviato 15:52, headless Edge ricetta 2: Tutti i punti → 4 righe (Cp 1.4903/1.4692/1.0594/1.3527), carta e istogramma nascosti; click riga #1 → subtask 6, carta disegnata larga 1174 px; cambio select → punto 7 ricaricato senza Applica filtri; ritorno a Tutti → tabella; nessun errore console.