feat(production): fermo linea e fine produzione fanno finalmente qualcosa
Punto 6 del documento modifiche del 28/07. I due pulsanti esistevano, chiedevano correttamente l'autorizzazione del capoturno, e poi ricadevano su un commento: "handled by GAIA integration (future)". E' la riga di apertura del documento. Ora agiscono sulla produzione aperta: fermo linea sospende e congela il conto alla rovescia, la ripresa lo fa ripartire restituendo il tempo del fermo, fine produzione chiude ed emette il file di statistica. Le credenziali del capoturno vanno direttamente all'endpoint, che le verifica e registra sulla traccia della produzione chi ha autorizzato cosa: validarle a parte non lascerebbe traccia, e sarebbe un giro in piu'. In interfaccia il pulsante di fermo diventa "Riprendi" quando la linea e' ferma, e una banda dichiara lo stato con il valore congelato a video: una linea ferma che sembra in marcia e' il modo in cui si salta un intervallo di misura senza accorgersene. Il file di statistica ha richiesto di legare le misure alla produzione (migrazione 006): Measurement conosceva solo versione, lotto e seriale, nessuno dei quali separa una produzione dalla successiva sulla stessa ricetta e sullo stesso lotto, quindi "le misure dell'intera produzione" non era una query. Il CSV rispetta i separatori configurati in system_settings e porta con se' i limiti di tolleranza: senza quelli un esito pass/fail non e' piu' ricalcolabile dal file a distanza di anni, che e' il senso di un documento per audit. Le misure esportate vengono marcate synced_to_csv. Se la produzione non ha misure non viene scritto nulla: un file vuoto sarebbe rumore nella cartella, non evidenza. L'invio a GAIA resta assente e non abbozzato, con il punto d'innesto dichiarato in close_run: una chiamata vuota che sembra collegata e' peggio di niente. Tutto il resto del punto 6 non dipende dal gestionale e funziona adesso. Anche la 006 e' stata eseguita su SQLite usa e getta prima di essere considerata buona, e anche qui la prova ha trovato un difetto: aggiungere una colonna con foreign key fa emettere ad alembic un ALTER di vincolo, che SQLite rifiuta. Ora usa batch_alter_table con il vincolo nominato, che su MySQL resta un ALTER normale e su SQLite ricostruisce la tabella - cosi' la chiave esterna non va persa per far contento il dialetto dei test. Corretto anche il proxy di salvataggio misura, che chiamava /api/measurements senza slash finale e pagava un redirect 307 a ogni singola misura. Traduzioni: pybabel aveva di nuovo indovinato sette voci marcandole fuzzy, e in italiano "Linea ferma" era diventato "Lingua Preferita" su una banda di sicurezza. Tradotte per esteso in IT ed EN e tolti i flag. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-07-28 16:15+0000\n"
|
||||
"POT-Creation-Date: 2026-07-28 17:30+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -39,7 +39,7 @@ msgstr ""
|
||||
msgid "Inserisci username e password"
|
||||
msgstr ""
|
||||
|
||||
#: blueprints/auth.py:81 blueprints/measure.py:407
|
||||
#: blueprints/auth.py:81 blueprints/measure.py:412
|
||||
msgid "Credenziali non valide"
|
||||
msgstr ""
|
||||
|
||||
@@ -153,20 +153,20 @@ msgstr ""
|
||||
msgid "Dati mancanti: subtask_id, version_id e value sono obbligatori"
|
||||
msgstr ""
|
||||
|
||||
#: blueprints/measure.py:383 templates/admin/stations.html:549
|
||||
#: blueprints/measure.py:388 templates/admin/stations.html:549
|
||||
#: templates/maker/recipe_editor.html:543
|
||||
msgid "Errore nel salvataggio"
|
||||
msgstr ""
|
||||
|
||||
#: blueprints/measure.py:402
|
||||
#: blueprints/measure.py:407 blueprints/measure.py:495
|
||||
msgid "Username e password richiesti"
|
||||
msgstr ""
|
||||
|
||||
#: blueprints/measure.py:412
|
||||
#: blueprints/measure.py:417
|
||||
msgid "Utente non autorizzato (richiesto capoturno)"
|
||||
msgstr ""
|
||||
|
||||
#: blueprints/measure.py:431 blueprints/measure.py:448
|
||||
#: blueprints/measure.py:436 blueprints/measure.py:453
|
||||
#: templates/errors/station_not_configured.html:2
|
||||
#: templates/errors/station_not_configured.html:16
|
||||
msgid "Stazione non configurata"
|
||||
@@ -369,7 +369,7 @@ msgstr ""
|
||||
#: templates/maker/task_editor.html:747 templates/maker/task_editor.html:866
|
||||
#: templates/maker/task_editor.html:931 templates/maker/task_editor.html:1036
|
||||
#: templates/measure/select_recipe.html:367
|
||||
#: templates/measure/task_execute.html:684
|
||||
#: templates/measure/task_execute.html:719
|
||||
msgid "Annulla"
|
||||
msgstr ""
|
||||
|
||||
@@ -385,7 +385,7 @@ msgstr ""
|
||||
#: templates/admin/stations.html:241 templates/admin/users.html:299
|
||||
#: templates/maker/recipe_editor.html:107
|
||||
#: templates/maker/recipe_editor.html:448 templates/maker/task_drawing.html:61
|
||||
#: templates/measure/task_execute.html:380
|
||||
#: templates/measure/task_execute.html:391
|
||||
msgid "Salvataggio..."
|
||||
msgstr ""
|
||||
|
||||
@@ -513,7 +513,7 @@ msgstr ""
|
||||
#: templates/admin/users.html:48 templates/admin/users.html:173
|
||||
#: templates/admin/users.html:179 templates/auth/login.html:35
|
||||
#: templates/auth/login.html:49 templates/auth/profile.html:36
|
||||
#: templates/measure/task_execute.html:669
|
||||
#: templates/measure/task_execute.html:704
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@@ -565,7 +565,7 @@ msgstr ""
|
||||
|
||||
#: templates/admin/users.html:206 templates/admin/users.html:214
|
||||
#: templates/auth/login.html:57 templates/auth/login.html:71
|
||||
#: templates/measure/task_execute.html:674
|
||||
#: templates/measure/task_execute.html:709
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
@@ -843,7 +843,7 @@ msgstr ""
|
||||
#: templates/maker/recipe_editor.html:128 templates/maker/recipe_list.html:246
|
||||
#: templates/maker/task_drawing.html:106 templates/maker/task_editor.html:130
|
||||
#: templates/measure/task_complete.html:168
|
||||
#: templates/measure/task_execute.html:497 templates/measure/task_list.html:2
|
||||
#: templates/measure/task_execute.html:532 templates/measure/task_list.html:2
|
||||
#: templates/measure/task_list.html:156
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
@@ -990,8 +990,8 @@ msgid "Errore durante eliminazione"
|
||||
msgstr ""
|
||||
|
||||
#: templates/maker/recipe_list.html:55 templates/measure/select_recipe.html:55
|
||||
#: templates/measure/task_execute.html:1057
|
||||
#: templates/measure/task_execute.html:1241
|
||||
#: templates/measure/task_execute.html:1102
|
||||
#: templates/measure/task_execute.html:1301
|
||||
msgid "Errore di connessione"
|
||||
msgstr ""
|
||||
|
||||
@@ -1118,7 +1118,7 @@ msgid "Apri PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/maker/recipe_preview.html:254
|
||||
#: templates/measure/task_execute.html:255
|
||||
#: templates/measure/task_execute.html:266
|
||||
msgid "Nessuna immagine allegata"
|
||||
msgstr ""
|
||||
|
||||
@@ -1129,7 +1129,7 @@ msgstr ""
|
||||
#: templates/maker/recipe_preview.html:299 templates/maker/task_editor.html:544
|
||||
#: templates/maker/task_editor.html:686
|
||||
#: templates/measure/task_complete.html:170
|
||||
#: templates/measure/task_execute.html:289
|
||||
#: templates/measure/task_execute.html:300
|
||||
msgid "Nominale"
|
||||
msgstr ""
|
||||
|
||||
@@ -1582,7 +1582,7 @@ msgid "Misurazione aggiunta"
|
||||
msgstr ""
|
||||
|
||||
#: templates/maker/task_editor.html:1645
|
||||
#: templates/measure/task_execute.html:931
|
||||
#: templates/measure/task_execute.html:976
|
||||
msgid "Errore nel salvataggio della misurazione"
|
||||
msgstr ""
|
||||
|
||||
@@ -1736,13 +1736,13 @@ msgstr ""
|
||||
#: templates/measure/task_complete.html:3
|
||||
#: templates/measure/task_complete.html:36
|
||||
#: templates/measure/task_execute.html:112
|
||||
#: templates/measure/task_execute.html:605
|
||||
#: templates/measure/task_execute.html:640
|
||||
#: templates/statistics/dashboard.html:139
|
||||
msgid "Riepilogo"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_complete.html:44
|
||||
#: templates/measure/task_execute.html:582
|
||||
#: templates/measure/task_execute.html:617
|
||||
msgid "Misurazioni Complete"
|
||||
msgstr ""
|
||||
|
||||
@@ -1762,12 +1762,12 @@ msgid "Totale"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_complete.html:103
|
||||
#: templates/measure/task_execute.html:590
|
||||
#: templates/measure/task_execute.html:625
|
||||
msgid "Conformi"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_complete.html:120
|
||||
#: templates/measure/task_execute.html:594
|
||||
#: templates/measure/task_execute.html:629
|
||||
msgid "Attenzione"
|
||||
msgstr ""
|
||||
|
||||
@@ -1933,120 +1933,148 @@ msgstr ""
|
||||
msgid "Lista task"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:124
|
||||
#: templates/measure/task_execute.html:127
|
||||
msgid "Fermo linea"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:132
|
||||
#: templates/measure/task_execute.html:135
|
||||
msgid "Riprendi"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:143
|
||||
msgid "Fine Produzione"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:227
|
||||
#: templates/measure/task_execute.html:238
|
||||
msgid "Immagine dettaglio misura"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:275
|
||||
#: templates/measure/task_execute.html:286
|
||||
msgid "Misurazione"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:277
|
||||
#: templates/measure/task_execute.html:288
|
||||
msgid "Misura"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:353
|
||||
#: templates/measure/task_execute.html:364
|
||||
msgid "Registrata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:421
|
||||
#: templates/measure/task_execute.html:432
|
||||
msgid "Prossima misurazione tra"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:426
|
||||
#: templates/measure/task_execute.html:437
|
||||
msgid "Ciclo"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:445
|
||||
#: templates/measure/task_execute.html:456
|
||||
msgid "Linea ferma"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:459
|
||||
msgid "Il conto alla rovescia è congelato a"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:461
|
||||
msgid "serve il capoturno per riprendere"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:480
|
||||
msgid "Produzione non registrata sul server"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:466
|
||||
#: templates/measure/task_execute.html:632
|
||||
#: templates/measure/task_execute.html:501
|
||||
#: templates/measure/task_execute.html:667
|
||||
msgid "Avvio Produzione"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:470
|
||||
#: templates/measure/task_execute.html:505
|
||||
msgid "Invia segnale al gestionale per avviare il timer della linea"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:481
|
||||
#: templates/measure/task_execute.html:516
|
||||
msgid "Produzione avviata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:526
|
||||
#: templates/measure/task_execute.html:561
|
||||
msgid "Fine ciclo misura"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:536
|
||||
#: templates/measure/task_execute.html:550
|
||||
#: templates/measure/task_execute.html:571
|
||||
#: templates/measure/task_execute.html:585
|
||||
msgid "Completato"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:584
|
||||
#: templates/measure/task_execute.html:619
|
||||
msgid "Tutte le"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:584
|
||||
#: templates/measure/task_execute.html:619
|
||||
msgid "misurazioni sono state registrate."
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:598
|
||||
#: templates/measure/task_execute.html:633
|
||||
msgid "Non Conf."
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:612
|
||||
#: templates/measure/task_execute.html:647
|
||||
msgid "Conferma ciclo"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:622
|
||||
#: templates/measure/task_execute.html:657
|
||||
msgid "Task successivo"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:662
|
||||
#: templates/measure/task_execute.html:697
|
||||
msgid "Autorizzazione capoturno"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:671
|
||||
#: templates/measure/task_execute.html:706
|
||||
msgid "Username capoturno"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:693
|
||||
#: templates/measure/task_execute.html:728
|
||||
msgid "Autorizza"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:975
|
||||
#: templates/measure/task_execute.html:1020
|
||||
msgid "Errore di rete. Riprovare."
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1052
|
||||
#: templates/measure/task_execute.html:1097
|
||||
msgid "Errore di comunicazione con il server"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1198
|
||||
#: templates/measure/task_execute.html:1248
|
||||
msgid "Misurazione fuori tolleranza"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1199
|
||||
#: templates/measure/task_execute.html:1249
|
||||
msgid "Fermo linea richiesto"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1200
|
||||
#: templates/measure/task_execute.html:1250
|
||||
msgid "Ripresa della produzione"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1251
|
||||
msgid "Fine produzione richiesta"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1219
|
||||
#: templates/measure/task_execute.html:1280
|
||||
msgid "Credenziali non valide o utente non autorizzato"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1312
|
||||
msgid "Nessuna produzione aperta su questa stazione"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1329
|
||||
msgid "Azione non riuscita"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_list.html:84
|
||||
msgid "AVVIA"
|
||||
msgstr ""
|
||||
|
||||
Reference in New Issue
Block a user