feat(production): dai una vita propria alla produzione, lato server
Punto 1 del documento modifiche del 28/07, il prerequisito su cui poggiano i punti 3, 4 e 6. Lo stato di una produzione viveva dentro una pagina del browser: timer, conteggio cicli e flag "produzione avviata" erano variabili Alpine di task_execute.html, e la navigazione fra task e' un ricaricamento completo, quindi cambiando task si perdeva tutto. Da qui il loop di misura che non reggeva, il fermo linea che non aveva nulla da fermare e l'assenza di storico. Nuove tabelle production_runs e production_events (migrazione 005), endpoint REST senza stato in memoria di processo - con un'app di stazione installata su ogni PC il database e' l'unico posto condiviso - e il frontend che legge lo stato all'apertura invece di tenerlo in memoria. Tre scelte di modello: - la scadenza e' un timestamp assoluto (next_measurement_at), non un contatore: il countdown si ricalcola da li' a ogni caricamento, e lasciarne andare la differenza sotto zero dara' gratis il contatore del ritardo del punto 3. Al client vanno i secondi gia' calcolati, non il timestamp: un datetime naive verrebbe letto nel fuso del browser e il conto sarebbe sfasato dell'offset UTC; - l'intervallo di misura e' copiato sulla produzione, non referenziato: modificare la ricetta a produzione avviata non deve spostare una scadenza in corso; - active_station_id rispecchia la stazione finche' la produzione e' aperta e va a NULL alla chiusura. Con un vincolo unico sopra, "una stazione = una produzione aperta" e' una garanzia del database e non un controllo soggetto a race; i NULL non collidono, quindi le produzioni chiuse si accumulano senza disturbo. Il fermo linea congela il conto alla rovescia e alla ripresa la scadenza viene traslata della durata del fermo, non ricalcolata: un fermo non regala ne' toglie tempo all'operatore. L'autorizzazione del capoturno passa da authenticate_user e non da un login, che rigenererebbe la sua API key buttando giu' la sessione che ha aperta altrove. La migrazione e' stata eseguita davvero, non solo scritta, su uno SQLite usa e getta: upgrade e downgrade girano e le colonne coincidono con i modelli. La prova ha trovato un difetto - create_unique_constraint dopo create_table e' un ALTER, che SQLite rifiuta - ora il vincolo e' dichiarato dentro create_table. Fuori da questo commit, per stare nei confini del punto 1: l'API espone gia' pause, resume e close, ma i pulsanti fermo linea e fine produzione restano da collegare (punto 6), e il rientro forzato sulla misura allo scadere e' il punto 3. Corretti due difetti trovati strada facendo: env.py non importava ne' Station ne' ProductionRun, quindi l'autogenerate di Alembic era gia' cieco sulle stazioni; e task_execute.html, lo schermo con piu' JavaScript dell'applicazione, non era coperto dal test di sintassi. Aggiungerlo ha richiesto di correggere l'helper, che validava le espressioni Alpine solo come espressione singola e bocciava @click="a = false; b = true", forma che Alpine accetta: ora prova entrambe le letture e fallisce solo se cadono tutte e due. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: TieMeasureFlow 1.0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-07-28 15:24+0000\n"
|
||||
"POT-Creation-Date: 2026-07-28 16:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: en\n"
|
||||
@@ -169,6 +169,12 @@ msgstr "Username and password required"
|
||||
msgid "Utente non autorizzato (richiesto capoturno)"
|
||||
msgstr "User not authorized (shift supervisor required)"
|
||||
|
||||
#: blueprints/measure.py:431 blueprints/measure.py:448
|
||||
#: templates/errors/station_not_configured.html:2
|
||||
#: templates/errors/station_not_configured.html:16
|
||||
msgid "Stazione non configurata"
|
||||
msgstr "Station not configured"
|
||||
|
||||
#: templates/base.html:173
|
||||
msgid "Sessione in scadenza"
|
||||
msgstr "Session expiring"
|
||||
@@ -370,7 +376,7 @@ msgstr "Optional notes"
|
||||
#: 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:664
|
||||
#: templates/measure/task_execute.html:684
|
||||
msgid "Annulla"
|
||||
msgstr "Cancel"
|
||||
|
||||
@@ -515,7 +521,7 @@ msgstr "New User"
|
||||
#: 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:649
|
||||
#: templates/measure/task_execute.html:669
|
||||
msgid "Username"
|
||||
msgstr "Username"
|
||||
|
||||
@@ -567,7 +573,7 @@ msgstr "Username cannot be changed"
|
||||
|
||||
#: 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:654
|
||||
#: templates/measure/task_execute.html:674
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
@@ -817,11 +823,6 @@ msgstr "Logout blocked during measurements"
|
||||
msgid "Prossima misura"
|
||||
msgstr "Next measurement"
|
||||
|
||||
#: templates/errors/station_not_configured.html:2
|
||||
#: templates/errors/station_not_configured.html:16
|
||||
msgid "Stazione non configurata"
|
||||
msgstr "Station not configured"
|
||||
|
||||
#: templates/errors/station_not_configured.html:20
|
||||
msgid "Questo client non ha impostato la variabile di ambiente STATION_CODE."
|
||||
msgstr "This client has not set the STATION_CODE environment variable."
|
||||
@@ -863,7 +864,7 @@ msgstr "Preview"
|
||||
#: 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:477 templates/measure/task_list.html:2
|
||||
#: templates/measure/task_execute.html:497 templates/measure/task_list.html:2
|
||||
#: templates/measure/task_list.html:156
|
||||
msgid "Task"
|
||||
msgstr "Task"
|
||||
@@ -1012,7 +1013,8 @@ msgstr "Error during deletion"
|
||||
|
||||
# Recipe Selection Additional
|
||||
#: templates/maker/recipe_list.html:55 templates/measure/select_recipe.html:55
|
||||
#: templates/measure/task_execute.html:1121
|
||||
#: templates/measure/task_execute.html:1057
|
||||
#: templates/measure/task_execute.html:1241
|
||||
msgid "Errore di connessione"
|
||||
msgstr "Connection Error"
|
||||
|
||||
@@ -1610,7 +1612,7 @@ msgid "Misurazione aggiunta"
|
||||
msgstr "Measurement added"
|
||||
|
||||
#: templates/maker/task_editor.html:1645
|
||||
#: templates/measure/task_execute.html:870
|
||||
#: templates/measure/task_execute.html:931
|
||||
msgid "Errore nel salvataggio della misurazione"
|
||||
msgstr "Error saving measurement"
|
||||
|
||||
@@ -1768,13 +1770,13 @@ msgstr "Search"
|
||||
#: templates/measure/task_complete.html:3
|
||||
#: templates/measure/task_complete.html:36
|
||||
#: templates/measure/task_execute.html:112
|
||||
#: templates/measure/task_execute.html:585
|
||||
#: templates/measure/task_execute.html:605
|
||||
#: templates/statistics/dashboard.html:139
|
||||
msgid "Riepilogo"
|
||||
msgstr "Summary"
|
||||
|
||||
#: templates/measure/task_complete.html:44
|
||||
#: templates/measure/task_execute.html:562
|
||||
#: templates/measure/task_execute.html:582
|
||||
msgid "Misurazioni Complete"
|
||||
msgstr "Measurements Complete"
|
||||
|
||||
@@ -1795,12 +1797,12 @@ msgid "Totale"
|
||||
msgstr "Total"
|
||||
|
||||
#: templates/measure/task_complete.html:103
|
||||
#: templates/measure/task_execute.html:570
|
||||
#: templates/measure/task_execute.html:590
|
||||
msgid "Conformi"
|
||||
msgstr "Pass"
|
||||
|
||||
#: templates/measure/task_complete.html:120
|
||||
#: templates/measure/task_execute.html:574
|
||||
#: templates/measure/task_execute.html:594
|
||||
msgid "Attenzione"
|
||||
msgstr "Warning"
|
||||
|
||||
@@ -2000,77 +2002,85 @@ msgstr "Next measurement in"
|
||||
msgid "Ciclo"
|
||||
msgstr "Cycle"
|
||||
|
||||
#: templates/measure/task_execute.html:446
|
||||
#: templates/measure/task_execute.html:612
|
||||
#: templates/measure/task_execute.html:445
|
||||
msgid "Produzione non registrata sul server"
|
||||
msgstr "Production not recorded on the server"
|
||||
|
||||
#: templates/measure/task_execute.html:466
|
||||
#: templates/measure/task_execute.html:632
|
||||
msgid "Avvio Produzione"
|
||||
msgstr "Production Start"
|
||||
|
||||
#: templates/measure/task_execute.html:450
|
||||
#: templates/measure/task_execute.html:470
|
||||
msgid "Invia segnale al gestionale per avviare il timer della linea"
|
||||
msgstr "Send a signal to the ERP system to start the line timer"
|
||||
|
||||
#: templates/measure/task_execute.html:461
|
||||
#: templates/measure/task_execute.html:481
|
||||
msgid "Produzione avviata"
|
||||
msgstr "Production started"
|
||||
|
||||
#: templates/measure/task_execute.html:506
|
||||
#: templates/measure/task_execute.html:526
|
||||
msgid "Fine ciclo misura"
|
||||
msgstr "Measurement cycle complete"
|
||||
|
||||
#: templates/measure/task_execute.html:516
|
||||
#: templates/measure/task_execute.html:530
|
||||
#: templates/measure/task_execute.html:536
|
||||
#: templates/measure/task_execute.html:550
|
||||
msgid "Completato"
|
||||
msgstr "Completed"
|
||||
|
||||
#: templates/measure/task_execute.html:564
|
||||
#: templates/measure/task_execute.html:584
|
||||
msgid "Tutte le"
|
||||
msgstr "All"
|
||||
|
||||
#: templates/measure/task_execute.html:564
|
||||
#: templates/measure/task_execute.html:584
|
||||
msgid "misurazioni sono state registrate."
|
||||
msgstr "measurements have been recorded."
|
||||
|
||||
#: templates/measure/task_execute.html:578
|
||||
#: templates/measure/task_execute.html:598
|
||||
msgid "Non Conf."
|
||||
msgstr "Fail"
|
||||
|
||||
#: templates/measure/task_execute.html:592
|
||||
#: templates/measure/task_execute.html:612
|
||||
msgid "Conferma ciclo"
|
||||
msgstr "Confirm cycle"
|
||||
|
||||
#: templates/measure/task_execute.html:602
|
||||
#: templates/measure/task_execute.html:622
|
||||
msgid "Task successivo"
|
||||
msgstr "Next task"
|
||||
|
||||
#: templates/measure/task_execute.html:642
|
||||
#: templates/measure/task_execute.html:662
|
||||
msgid "Autorizzazione capoturno"
|
||||
msgstr "Shift supervisor authorization"
|
||||
|
||||
#: templates/measure/task_execute.html:651
|
||||
#: templates/measure/task_execute.html:671
|
||||
msgid "Username capoturno"
|
||||
msgstr "Supervisor username"
|
||||
|
||||
#: templates/measure/task_execute.html:673
|
||||
#: templates/measure/task_execute.html:693
|
||||
msgid "Autorizza"
|
||||
msgstr "Authorize"
|
||||
|
||||
#: templates/measure/task_execute.html:914
|
||||
#: templates/measure/task_execute.html:975
|
||||
msgid "Errore di rete. Riprovare."
|
||||
msgstr "Network error. Please retry."
|
||||
|
||||
#: templates/measure/task_execute.html:1078
|
||||
#: templates/measure/task_execute.html:1052
|
||||
msgid "Errore di comunicazione con il server"
|
||||
msgstr "Error communicating with the server"
|
||||
|
||||
#: templates/measure/task_execute.html:1198
|
||||
msgid "Misurazione fuori tolleranza"
|
||||
msgstr "Measurement out of tolerance"
|
||||
|
||||
#: templates/measure/task_execute.html:1079
|
||||
#: templates/measure/task_execute.html:1199
|
||||
msgid "Fermo linea richiesto"
|
||||
msgstr "Line stop requested"
|
||||
|
||||
#: templates/measure/task_execute.html:1080
|
||||
#: templates/measure/task_execute.html:1200
|
||||
msgid "Fine produzione richiesta"
|
||||
msgstr "End of production requested"
|
||||
|
||||
#: templates/measure/task_execute.html:1099
|
||||
#: templates/measure/task_execute.html:1219
|
||||
msgid "Credenziali non valide o utente non autorizzato"
|
||||
msgstr "Invalid credentials or unauthorized user"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: TieMeasureFlow 1.0\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2026-07-28 15:24+0000\n"
|
||||
"POT-Creation-Date: 2026-07-28 16:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: it\n"
|
||||
@@ -169,6 +169,12 @@ msgstr "Username e password richiesti"
|
||||
msgid "Utente non autorizzato (richiesto capoturno)"
|
||||
msgstr "Utente non autorizzato (richiesto capoturno)"
|
||||
|
||||
#: blueprints/measure.py:431 blueprints/measure.py:448
|
||||
#: templates/errors/station_not_configured.html:2
|
||||
#: templates/errors/station_not_configured.html:16
|
||||
msgid "Stazione non configurata"
|
||||
msgstr "Stazione non configurata"
|
||||
|
||||
#: templates/base.html:173
|
||||
msgid "Sessione in scadenza"
|
||||
msgstr "Sessione in scadenza"
|
||||
@@ -372,7 +378,7 @@ msgstr "Note opzionali"
|
||||
#: 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:664
|
||||
#: templates/measure/task_execute.html:684
|
||||
msgid "Annulla"
|
||||
msgstr "Annulla"
|
||||
|
||||
@@ -517,7 +523,7 @@ msgstr "Nuovo Utente"
|
||||
#: 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:649
|
||||
#: templates/measure/task_execute.html:669
|
||||
msgid "Username"
|
||||
msgstr "Username"
|
||||
|
||||
@@ -569,7 +575,7 @@ msgstr "Il nome utente non può essere modificato"
|
||||
|
||||
#: 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:654
|
||||
#: templates/measure/task_execute.html:674
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
@@ -819,11 +825,6 @@ msgstr "Logout bloccato durante le misurazioni"
|
||||
msgid "Prossima misura"
|
||||
msgstr "Prossima misura"
|
||||
|
||||
#: templates/errors/station_not_configured.html:2
|
||||
#: templates/errors/station_not_configured.html:16
|
||||
msgid "Stazione non configurata"
|
||||
msgstr "Stazione non configurata"
|
||||
|
||||
#: templates/errors/station_not_configured.html:20
|
||||
msgid "Questo client non ha impostato la variabile di ambiente STATION_CODE."
|
||||
msgstr "Questo client non ha impostato la variabile di ambiente STATION_CODE."
|
||||
@@ -865,7 +866,7 @@ msgstr "Anteprima"
|
||||
#: 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:477 templates/measure/task_list.html:2
|
||||
#: templates/measure/task_execute.html:497 templates/measure/task_list.html:2
|
||||
#: templates/measure/task_list.html:156
|
||||
msgid "Task"
|
||||
msgstr "Task"
|
||||
@@ -1014,7 +1015,8 @@ msgstr "Errore durante eliminazione"
|
||||
|
||||
# Recipe Selection Additional
|
||||
#: templates/maker/recipe_list.html:55 templates/measure/select_recipe.html:55
|
||||
#: templates/measure/task_execute.html:1121
|
||||
#: templates/measure/task_execute.html:1057
|
||||
#: templates/measure/task_execute.html:1241
|
||||
msgid "Errore di connessione"
|
||||
msgstr "Errore di connessione"
|
||||
|
||||
@@ -1612,7 +1614,7 @@ msgid "Misurazione aggiunta"
|
||||
msgstr "Misurazione aggiunta"
|
||||
|
||||
#: templates/maker/task_editor.html:1645
|
||||
#: templates/measure/task_execute.html:870
|
||||
#: templates/measure/task_execute.html:931
|
||||
msgid "Errore nel salvataggio della misurazione"
|
||||
msgstr "Errore nel salvataggio della misurazione"
|
||||
|
||||
@@ -1772,13 +1774,13 @@ msgstr "Cerca"
|
||||
#: templates/measure/task_complete.html:3
|
||||
#: templates/measure/task_complete.html:36
|
||||
#: templates/measure/task_execute.html:112
|
||||
#: templates/measure/task_execute.html:585
|
||||
#: templates/measure/task_execute.html:605
|
||||
#: templates/statistics/dashboard.html:139
|
||||
msgid "Riepilogo"
|
||||
msgstr "Riepilogo"
|
||||
|
||||
#: templates/measure/task_complete.html:44
|
||||
#: templates/measure/task_execute.html:562
|
||||
#: templates/measure/task_execute.html:582
|
||||
msgid "Misurazioni Complete"
|
||||
msgstr "Misurazioni Complete"
|
||||
|
||||
@@ -1799,12 +1801,12 @@ msgid "Totale"
|
||||
msgstr "Totale"
|
||||
|
||||
#: templates/measure/task_complete.html:103
|
||||
#: templates/measure/task_execute.html:570
|
||||
#: templates/measure/task_execute.html:590
|
||||
msgid "Conformi"
|
||||
msgstr "Conformi"
|
||||
|
||||
#: templates/measure/task_complete.html:120
|
||||
#: templates/measure/task_execute.html:574
|
||||
#: templates/measure/task_execute.html:594
|
||||
msgid "Attenzione"
|
||||
msgstr "Attenzione"
|
||||
|
||||
@@ -2004,77 +2006,85 @@ msgstr "Prossima misurazione tra"
|
||||
msgid "Ciclo"
|
||||
msgstr "Ciclo"
|
||||
|
||||
#: templates/measure/task_execute.html:446
|
||||
#: templates/measure/task_execute.html:612
|
||||
#: templates/measure/task_execute.html:445
|
||||
msgid "Produzione non registrata sul server"
|
||||
msgstr "Produzione non registrata sul server"
|
||||
|
||||
#: templates/measure/task_execute.html:466
|
||||
#: templates/measure/task_execute.html:632
|
||||
msgid "Avvio Produzione"
|
||||
msgstr "Avvio Produzione"
|
||||
|
||||
#: templates/measure/task_execute.html:450
|
||||
#: templates/measure/task_execute.html:470
|
||||
msgid "Invia segnale al gestionale per avviare il timer della linea"
|
||||
msgstr "Invia segnale al gestionale per avviare il timer della linea"
|
||||
|
||||
#: templates/measure/task_execute.html:461
|
||||
#: templates/measure/task_execute.html:481
|
||||
msgid "Produzione avviata"
|
||||
msgstr "Produzione avviata"
|
||||
|
||||
#: templates/measure/task_execute.html:506
|
||||
#: templates/measure/task_execute.html:526
|
||||
msgid "Fine ciclo misura"
|
||||
msgstr "Fine ciclo misura"
|
||||
|
||||
#: templates/measure/task_execute.html:516
|
||||
#: templates/measure/task_execute.html:530
|
||||
#: templates/measure/task_execute.html:536
|
||||
#: templates/measure/task_execute.html:550
|
||||
msgid "Completato"
|
||||
msgstr "Completato"
|
||||
|
||||
#: templates/measure/task_execute.html:564
|
||||
#: templates/measure/task_execute.html:584
|
||||
msgid "Tutte le"
|
||||
msgstr "Tutte le"
|
||||
|
||||
#: templates/measure/task_execute.html:564
|
||||
#: templates/measure/task_execute.html:584
|
||||
msgid "misurazioni sono state registrate."
|
||||
msgstr "misurazioni sono state registrate."
|
||||
|
||||
#: templates/measure/task_execute.html:578
|
||||
#: templates/measure/task_execute.html:598
|
||||
msgid "Non Conf."
|
||||
msgstr "Non Conf."
|
||||
|
||||
#: templates/measure/task_execute.html:592
|
||||
#: templates/measure/task_execute.html:612
|
||||
msgid "Conferma ciclo"
|
||||
msgstr "Conferma ciclo"
|
||||
|
||||
#: templates/measure/task_execute.html:602
|
||||
#: templates/measure/task_execute.html:622
|
||||
msgid "Task successivo"
|
||||
msgstr "Task successivo"
|
||||
|
||||
#: templates/measure/task_execute.html:642
|
||||
#: templates/measure/task_execute.html:662
|
||||
msgid "Autorizzazione capoturno"
|
||||
msgstr "Autorizzazione capoturno"
|
||||
|
||||
#: templates/measure/task_execute.html:651
|
||||
#: templates/measure/task_execute.html:671
|
||||
msgid "Username capoturno"
|
||||
msgstr "Username capoturno"
|
||||
|
||||
#: templates/measure/task_execute.html:673
|
||||
#: templates/measure/task_execute.html:693
|
||||
msgid "Autorizza"
|
||||
msgstr "Autorizza"
|
||||
|
||||
#: templates/measure/task_execute.html:914
|
||||
#: templates/measure/task_execute.html:975
|
||||
msgid "Errore di rete. Riprovare."
|
||||
msgstr "Errore di rete. Riprovare."
|
||||
|
||||
#: templates/measure/task_execute.html:1078
|
||||
#: templates/measure/task_execute.html:1052
|
||||
msgid "Errore di comunicazione con il server"
|
||||
msgstr "Errore di comunicazione con il server"
|
||||
|
||||
#: templates/measure/task_execute.html:1198
|
||||
msgid "Misurazione fuori tolleranza"
|
||||
msgstr "Misurazione fuori tolleranza"
|
||||
|
||||
#: templates/measure/task_execute.html:1079
|
||||
#: templates/measure/task_execute.html:1199
|
||||
msgid "Fermo linea richiesto"
|
||||
msgstr "Fermo linea richiesto"
|
||||
|
||||
#: templates/measure/task_execute.html:1080
|
||||
#: templates/measure/task_execute.html:1200
|
||||
msgid "Fine produzione richiesta"
|
||||
msgstr "Fine produzione richiesta"
|
||||
|
||||
#: templates/measure/task_execute.html:1099
|
||||
#: templates/measure/task_execute.html:1219
|
||||
msgid "Credenziali non valide o utente non autorizzato"
|
||||
msgstr "Credenziali non valide o utente non autorizzato"
|
||||
|
||||
|
||||
@@ -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 15:24+0000\n"
|
||||
"POT-Creation-Date: 2026-07-28 16:15+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"
|
||||
@@ -166,6 +166,12 @@ msgstr ""
|
||||
msgid "Utente non autorizzato (richiesto capoturno)"
|
||||
msgstr ""
|
||||
|
||||
#: blueprints/measure.py:431 blueprints/measure.py:448
|
||||
#: templates/errors/station_not_configured.html:2
|
||||
#: templates/errors/station_not_configured.html:16
|
||||
msgid "Stazione non configurata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/base.html:173
|
||||
msgid "Sessione in scadenza"
|
||||
msgstr ""
|
||||
@@ -363,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:664
|
||||
#: templates/measure/task_execute.html:684
|
||||
msgid "Annulla"
|
||||
msgstr ""
|
||||
|
||||
@@ -507,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:649
|
||||
#: templates/measure/task_execute.html:669
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@@ -559,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:654
|
||||
#: templates/measure/task_execute.html:674
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
@@ -800,11 +806,6 @@ msgstr ""
|
||||
msgid "Prossima misura"
|
||||
msgstr ""
|
||||
|
||||
#: templates/errors/station_not_configured.html:2
|
||||
#: templates/errors/station_not_configured.html:16
|
||||
msgid "Stazione non configurata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/errors/station_not_configured.html:20
|
||||
msgid "Questo client non ha impostato la variabile di ambiente STATION_CODE."
|
||||
msgstr ""
|
||||
@@ -842,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:477 templates/measure/task_list.html:2
|
||||
#: templates/measure/task_execute.html:497 templates/measure/task_list.html:2
|
||||
#: templates/measure/task_list.html:156
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
@@ -989,7 +990,8 @@ msgid "Errore durante eliminazione"
|
||||
msgstr ""
|
||||
|
||||
#: templates/maker/recipe_list.html:55 templates/measure/select_recipe.html:55
|
||||
#: templates/measure/task_execute.html:1121
|
||||
#: templates/measure/task_execute.html:1057
|
||||
#: templates/measure/task_execute.html:1241
|
||||
msgid "Errore di connessione"
|
||||
msgstr ""
|
||||
|
||||
@@ -1580,7 +1582,7 @@ msgid "Misurazione aggiunta"
|
||||
msgstr ""
|
||||
|
||||
#: templates/maker/task_editor.html:1645
|
||||
#: templates/measure/task_execute.html:870
|
||||
#: templates/measure/task_execute.html:931
|
||||
msgid "Errore nel salvataggio della misurazione"
|
||||
msgstr ""
|
||||
|
||||
@@ -1734,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:585
|
||||
#: templates/measure/task_execute.html:605
|
||||
#: templates/statistics/dashboard.html:139
|
||||
msgid "Riepilogo"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_complete.html:44
|
||||
#: templates/measure/task_execute.html:562
|
||||
#: templates/measure/task_execute.html:582
|
||||
msgid "Misurazioni Complete"
|
||||
msgstr ""
|
||||
|
||||
@@ -1760,12 +1762,12 @@ msgid "Totale"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_complete.html:103
|
||||
#: templates/measure/task_execute.html:570
|
||||
#: templates/measure/task_execute.html:590
|
||||
msgid "Conformi"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_complete.html:120
|
||||
#: templates/measure/task_execute.html:574
|
||||
#: templates/measure/task_execute.html:594
|
||||
msgid "Attenzione"
|
||||
msgstr ""
|
||||
|
||||
@@ -1963,77 +1965,85 @@ msgstr ""
|
||||
msgid "Ciclo"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:446
|
||||
#: templates/measure/task_execute.html:612
|
||||
#: templates/measure/task_execute.html:445
|
||||
msgid "Produzione non registrata sul server"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:466
|
||||
#: templates/measure/task_execute.html:632
|
||||
msgid "Avvio Produzione"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:450
|
||||
#: templates/measure/task_execute.html:470
|
||||
msgid "Invia segnale al gestionale per avviare il timer della linea"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:461
|
||||
#: templates/measure/task_execute.html:481
|
||||
msgid "Produzione avviata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:506
|
||||
#: templates/measure/task_execute.html:526
|
||||
msgid "Fine ciclo misura"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:516
|
||||
#: templates/measure/task_execute.html:530
|
||||
#: templates/measure/task_execute.html:536
|
||||
#: templates/measure/task_execute.html:550
|
||||
msgid "Completato"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:564
|
||||
#: templates/measure/task_execute.html:584
|
||||
msgid "Tutte le"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:564
|
||||
#: templates/measure/task_execute.html:584
|
||||
msgid "misurazioni sono state registrate."
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:578
|
||||
#: templates/measure/task_execute.html:598
|
||||
msgid "Non Conf."
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:592
|
||||
#: templates/measure/task_execute.html:612
|
||||
msgid "Conferma ciclo"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:602
|
||||
#: templates/measure/task_execute.html:622
|
||||
msgid "Task successivo"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:642
|
||||
#: templates/measure/task_execute.html:662
|
||||
msgid "Autorizzazione capoturno"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:651
|
||||
#: templates/measure/task_execute.html:671
|
||||
msgid "Username capoturno"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:673
|
||||
#: templates/measure/task_execute.html:693
|
||||
msgid "Autorizza"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:914
|
||||
#: templates/measure/task_execute.html:975
|
||||
msgid "Errore di rete. Riprovare."
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1078
|
||||
#: templates/measure/task_execute.html:1052
|
||||
msgid "Errore di comunicazione con il server"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1198
|
||||
msgid "Misurazione fuori tolleranza"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1079
|
||||
#: templates/measure/task_execute.html:1199
|
||||
msgid "Fermo linea richiesto"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1080
|
||||
#: templates/measure/task_execute.html:1200
|
||||
msgid "Fine produzione richiesta"
|
||||
msgstr ""
|
||||
|
||||
#: templates/measure/task_execute.html:1099
|
||||
#: templates/measure/task_execute.html:1219
|
||||
msgid "Credenziali non valide o utente non autorizzato"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user