Tredici punti su quindici sono in esercizio e nessuno li ha percorsi. Finora il collaudo era «provare le ricette COLLAUDO-A e B», che è un invito a scoprire da soli in che ordine e con quali valori — cioè a perdere mezza giornata prima di misurare qualcosa di utile. Ordinata perché ogni prova prepari la successiva, e perché le due che vanno fatte adesso vengano prima: il layout, che si vede solo da un monitor largo, e le richieste di rete, ora che la Content-Security-Policy è appena entrata in vigore. Due dettagli verificati sul codice prima di scriverla, perché mandavano a caccia di pulsanti inesistenti: il timer non parte finché non si preme «Avvio Produzione», che compare solo dopo il primo ciclo confermato — il primo pezzo è attrezzaggio, non produzione; e una quota già presa si rimisura cliccandola in alto, che è la via d'uscita dal blocco fuori tolleranza senza chiamare nessuno. Detto anche cosa la scaletta non copre, incluso il fatto che su una VPS pubblica staccare la rete non prova niente: si guarda dove vanno le richieste, e il giro vero si fa in reparto. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
13 KiB
Scaletta di collaudo — V3.0.0
Tredici dei quindici punti del 28/07 sono in esercizio e nessuno li ha ancora percorsi. Questa è la scaletta per farlo: ordinata in modo che ogni prova prepari la successiva, e scritta perché si possa spuntare riga per riga.
Per ogni riga: cosa fare, e come si vede che è giusto. Se qualcosa non torna, annotare il testo esatto dell'eventuale errore in console — non «dava errore».
Totale stimato: circa 90 minuti, di cui 30 sul solo punto 3 (il timer, che si misura aspettando).
0 · Preparazione (5 min)
| Cosa | Verifica | |
|---|---|---|
| 0.1 | Aprire il sito e fare ricarica forzata (Ctrl+Shift+R) |
CSS e JS sono in cache per 7 giorni: senza questo si collauda la versione di ieri |
| 0.2 | Aprire la console del browser (F12) e lasciarla aperta per tutto il collaudo |
Molte prove si leggono lì, non a schermo |
| 0.3 | Verificare che esistano le ricette COLLAUDO-A e COLLAUDO-B |
Sono in /measure/select. Se una sessione precedente le ha sporcate: docker compose exec server uv run python /tmp/seed_collaudo.py --replace (cancella anche le misure fatte su di esse) |
Credenziali del capoturno: capoturno / Collaudo2026! — da cambiare prima di
qualunque uso reale.
Le ricette:
- COLLAUDO-A — lotto obbligatorio, digitazione ammessa, intervallo 2 minuti. Cinque task: nota → misura (2 quote) → nota → misura (1 quota) → nota.
- COLLAUDO-B — lotto e seriale obbligatori, solo calibro, una quota.
Le quote e i valori da usare (tutte con nominale al centro):
| Quota | Task | Nominale | Conforme | Attenzione | Fuori tolleranza |
|---|---|---|---|---|---|
| 1 · Diametro esterno | A, misura 1 | 10.00 | 10.00 |
10.30 |
12.00 |
| 2 · Spessore parete | A, misura 1 | 25.00 | 25.00 |
25.30 |
27.00 |
| 3 · Lunghezza totale | A, misura 2 | 100.00 | 100.00 |
100.70 |
105.00 |
1 · Layout — punto 14 (10 min) · da monitor da scrivania
Va fatto prima e non dal tablet: in verticale su un tablet quasi tutte le larghezze coincidono e il difetto non si vede. Serve uno schermo largo.
| Cosa | Verifica | |
|---|---|---|
| 1.1 | Percorrere Ricette → apri una ricetta → Task → Disegno → Anteprima, e tornare indietro | Il blocco di contenuto non cambia larghezza fra una schermata e l'altra |
| 1.2 | Su ognuna, guardare il bordo sinistro del contenuto e quello della barra in alto | Sono allineati: il contenuto sta dentro la stessa cornice della navbar |
| 1.3 | Passare da una pagina lunga (che scorre) a una corta (che non scorre) | Niente salta di lato di qualche pixel: lo spazio della barra di scorrimento è riservato sempre |
| 1.4 | Entrare in un task di misura e uscirne | Stesso controllo: nessuno spostamento orizzontale |
| 1.5 | Admin → Utenti, Stazioni, Impostazioni; poi il proprio Profilo | Utenti e Stazioni sono larghe, Impostazioni e Profilo strette — ma con gli stessi margini esterni |
| 1.6 | Dal tablet, entrare in un task di misura | Il piede con «Fine ciclo misura» e il tastierino è visibile senza scorrere, anche quando la barra dell'indirizzo compare e sparisce |
2 · Niente arriva dalla rete — punto 12 (15 min)
Da fare adesso, perché la Content-Security-Policy è appena entrata in vigore: se una libreria avesse bisogno di un permesso non concesso, il sintomo compare ora.
Attenzione al metodo. Il sistema è oggi su una VPS pubblica: staccare la rete significherebbe perdere anche il server, quindi non prova niente. La prova equivalente e più diretta è guardare dove vanno le richieste. Il giro a rete davvero staccata si fa in reparto, sull'installazione on-premise.
| Cosa | Verifica | |
|---|---|---|
| 2.1 | Console → scheda Rete, spuntare «Disabilita cache», ricaricare | Ordinando per dominio compare un solo dominio: tieflow.tielogic.xyz. Nessun cdn, jsdelivr, cloudflare, googleapis, plot.ly |
| 2.2 | Ripetere su: login, selezione ricetta, esecuzione task, editor annotazioni (/maker), dashboard statistiche |
Sempre un dominio solo. La dashboard è quella che carica Plotly, l'editor quella che carica Fabric |
| 2.3 | Aprire un task che ha un disegno PDF allegato | Il disegno si vede. È la prova del worker di PDF.js: se cercasse la rete, tutto sembrerebbe a posto fino a questo momento |
| 2.4 | Con la console aperta su ogni pagina del giro | Zero messaggi che iniziano con Refused to load… o …violates the following Content Security Policy directive. Se ce n'è uno, copiarlo per intero: dice quale permesso manca |
| 2.5 | Generare un report PDF dalle statistiche | Il PDF esce. È generato sul server, non nel browser, ma vale la pena vederlo funzionare nel giro completo |
3 · Le regole della ricetta — punti 8 e 9 (10 min) · COLLAUDO-B
| Cosa | Verifica | |
|---|---|---|
| 3.1 | /measure/select, senza compilare lotto e seriale |
Sulla scheda di COLLAUDO-B il pulsante è spento e dice «Compila prima: lotto, seriale» |
| 3.2 | Compilare solo il lotto | Il pulsante resta spento e ora chiede solo il seriale |
| 3.3 | Provare ad andare a mano su /measure/start/<id> di COLLAUDO-B senza seriale |
Rimanda alla selezione con il messaggio «Compila prima:». La regola non si aggira dall'indirizzo |
| 3.4 | Compilare entrambi e avviare | Entra nel task |
| 3.5 | Guardare il tastierino | I tasti numerici non ci sono affatto — non sono grigi, non ci sono. Restano «cancella» e «conferma» |
| 3.6 | Con un calibro USB collegato, prendere una lettura | Il valore entra e si salva |
| 3.7 | (facoltativo, per chi vuole la prova dura) Provare a salvare un valore digitato aggirando lo schermo | Il server risponde 422: la regola vive lì, non nella pagina |
4 · Il primo ciclo e l'avvio produzione — punti 10 e 11 (10 min) · COLLAUDO-A
Da qui in avanti si lavora su COLLAUDO-A. Il timer non parte subito: prima si fa un ciclo completo, poi compare «Avvio Produzione». È voluto — il primo pezzo è l'attrezzaggio, non produzione.
| Cosa | Verifica | |
|---|---|---|
| 4.1 | Selezione ricetta → COLLAUDO-A → lotto LOT-TEST-01 → AVVIA IN SEQUENZA |
Si apre il primo task (la nota «Preparazione del pezzo»), non l'elenco dei task |
| 4.2 | Leggere la nota | «a sinistra» è in grassetto, le righe vanno a capo e la riga vuota si vede (punto 11) |
| 4.3 | Guardare i due pulsanti in alto a destra | Sono «Lista task» e «Completato». Su una nota «Completato» è attivo |
| 4.4 | Premere «Completato» | Passa al task 2, «Misura 1 — diametro e spessore» |
| 4.5 | Guardare il pulsante in basso a destra | «Mancano 2 quote», grigio e non cliccabile |
| 4.6 | Misurare la quota 1 con 10.00 e confermare |
Verde (conforme). Il pulsante in basso ora dice «Manca 1 quota» |
| 4.7 | Prova chiave del punto 10: premere «Lista task» adesso, a metà | Nel'elenco il task «Misura 1» porta «Incompiuto 1/2» con il bordo ambra. Gli altri non dicono niente |
| 4.8 | Premere «Visualizza singolo TASK» su quel task | Ci si torna dentro, con la quota già presa |
| 4.9 | Misurare la quota 2 con 25.00 |
Il pulsante in basso diventa blu: «Fine ciclo misura» |
| 4.10 | Premerlo | Compare il verde «Task successivo» (non un secondo «Completato») |
| 4.11 | Guardare sotto il piede della pagina | Compare il pulsante verde «Avvio Produzione» |
| 4.12 | Premere «Avvio Produzione» | Parte il conto alla rovescia da 2 minuti. Da qui in avanti compaiono «Fermo linea» e «Fine produzione» |
5 · Il fuori tolleranza — punto 5 (15 min)
La parte più importante del collaudo: fino a ieri questo gate era una modale che si poteva chiudere.
| Cosa | Verifica | |
|---|---|---|
| 5.1 | Tornare su «Misura 1». Cliccare la quota 1 in alto per rimisurarla, e inserire 12.00 |
Si salva ed è rossa. La misura sbagliata resta a registro: è un dato, non un errore da nascondere |
| 5.2 | Provare a passare alla quota 2 e salvare un valore | Rifiutato. Compare l'avviso che serve l'autorizzazione |
| 5.3 | Guardare «Completato» in alto | È spento, e passandoci sopra dice «Serve l'autorizzazione del capoturno» |
| 5.4 | Ricaricare la pagina (F5) |
Il blocco è ancora lì. Ricaricare non è una via d'uscita |
| 5.5 | La via d'uscita senza capoturno: cliccare di nuovo la quota 1 e rimisurarla con 10.00 |
Il blocco si scioglie. È voluto: il calibro scivola, il pezzo si riposiziona, e chiamare il capoturno per questo sarebbe assurdo |
| 5.6 | Rifarlo: quota 1 con 12.00, e stavolta autorizzare con capoturno / Collaudo2026! |
Il blocco si scioglie e la misura resta segnata come autorizzata |
| 5.7 | Provare ad autorizzare con una password sbagliata | Rifiutato, e il blocco resta |
| 5.8 | Provare ad autorizzare con un utente senza ruolo Supervisor (es. l'operatore stesso) | Rifiutato: non basta essere collegati, serve il ruolo |
| 5.9 | Rimettere 10.00 sulla quota 1 e 25.00 sulla 2, chiudere il ciclo |
Si prosegue normalmente |
6 · Il ciclo di misura — punto 3 (30 min, quasi tutti di attesa)
| Cosa | Verifica | |
|---|---|---|
| 6.1 | Con il conto alla rovescia in corso, cambiare task | Il tempo residuo prosegue, non riparte da 2 minuti |
| 6.2 | Ricaricare la pagina (F5) |
Idem: il tempo è lo stesso. Vive sul server, non nella pagina |
| 6.3 | Fermarsi su una nota e lasciare scadere l'intervallo | A ~5 secondi dalla scadenza compare l'avviso e suona il cicalino |
| 6.4 | Non toccare niente | Alla scadenza si viene portati al primo task di misura della ricetta, non a quello dove si era |
| 6.5 | Fare un ciclo completo: misura 1 (2 quote) → nota → misura 2 (quota 3, 100.00) → «Fine ciclo misura» |
Chiudendo il ciclo sull'ultimo task di misura l'intervallo riparte da 2 minuti |
| 6.6 | Ripetere ma chiudendo il ciclo sulla prima misura | L'intervallo non riparte: il ciclo si chiude solo sull'ultimo task di misura |
| 6.7 | La prova più delicata: stare dentro un task di misura, con una quota già presa e una da prendere, e lasciare scadere l'intervallo | Non si viene spostati. Il conteggio diventa rosso e prosegue oltre lo zero, mostrando il ritardo. Chi sta misurando va lasciato finire |
| 6.8 | Usare «Rimisura» dopo aver completato le quote | Registra una seconda lettura dello stesso pezzo senza far ripartire l'intervallo. Girare il pezzo e rimisurare non è un pezzo nuovo |
7 · Fermo linea e fine produzione — punto 6 (10 min)
| Cosa | Verifica | |
|---|---|---|
| 7.1 | Dentro un task di misura, premere «Fermo linea» → credenziali capoturno | Il conto alla rovescia si ferma |
| 7.2 | Ricaricare la pagina | È ancora fermo: lo stato è sul server |
| 7.3 | Premere «Ripresa» → credenziali | Riparte |
| 7.4 | Premere «Fine produzione» → credenziali | La produzione si chiude |
| 7.5 | Sul server: docker compose exec server ls uploads/statistics/ |
C'è un file production_<id>_<data>.csv |
| 7.6 | Aprire il file | Contiene tutte le misure della produzione, compresi i 12.00. Sulla riga autorizzata le colonne authorised_by e authorised_at sono valorizzate: il file mostra il guasto e la decisione |
| 7.7 | Aprire il file in Excel | Le accentate si leggono, il separatore è quello configurato |
8 · La statistica resta separata — punto 15 (5 min)
| Cosa | Verifica | |
|---|---|---|
| 8.1 | Collegarsi con un utente che ha solo il ruolo MeasurementTec | In barra non c'è la voce Statistiche |
| 8.2 | Percorrere tutto il flusso operatore guardando ogni schermata | Nessun collegamento porta alla statistica, in nessun punto |
| 8.3 | Andare a mano su /statistics/dashboard |
403: il ruolo non basta |
| 8.4 | Verificare che le misure ci siano comunque | Con un utente Metrologist, le misure appena fatte compaiono in dashboard. Si registra sempre, si consulta a parte |
Cosa annotare
Per ogni riga che non torna:
- Numero della riga di questa scaletta.
- Cosa è successo invece di quello che c'è scritto.
- Se c'è un errore in console, il testo esatto, per intero.
- Se è un problema di aspetto, uno screenshot e su quale schermo (tablet o monitor, e in che orientamento) — per il punto 14 è l'informazione che manca.
Cosa questa scaletta non copre
- Il punto 4 (numero di tentativi prima del capoturno) non è implementato: è fermo sulle risposte del cliente (D-6, D-7, D-9).
- Il cicalino è il suono del browser. Se serva una colonnina luminosa è D-5.
- Il giro a rete davvero staccata si fa in reparto, sull'installazione on-premise: qui si prova l'equivalente (nessuna richiesta esce dal dominio).
- Il carico con venti tablet insieme non è mai stato misurato.