export recipes improvements

This commit is contained in:
neo 2025-03-31 18:22:42 +02:00
parent c22ca85f4d
commit 6703f6e935
3 changed files with 47 additions and 47 deletions

View File

@ -3,6 +3,6 @@
class Step(object): class Step(object):
step_type = None step_type = None
spec = {} spec = {}
def __init__(self,step_type=None,spec=dict): def __init__(self,step_type=None,spec=None):
self.step_type = step_type self.step_type = step_type
self.spec = spec self.spec = spec if spec else {}

View File

@ -12,6 +12,7 @@ from PyQt5.QtWidgets import QFileDialog, QMessageBox, QShortcut
import shutil import shutil
from lib.helpers.recipe_manager import export_recipes, import_recipes,recipe_manager_signals from lib.helpers.recipe_manager import export_recipes, import_recipes,recipe_manager_signals
from lib.helpers.step import Step
from ui.crud import Crud, Json_External_Dialog_Editor_Cell_Widget from ui.crud import Crud, Json_External_Dialog_Editor_Cell_Widget
from ui.helpers import replace_widget from ui.helpers import replace_widget
from ui.recipe_spec_and_step_editor import Recipe_Spec_And_Step_Editor from ui.recipe_spec_and_step_editor import Recipe_Spec_And_Step_Editor
@ -305,10 +306,11 @@ class Recipe_Selection(Widget):
# EXPORT RECIPES TABLE TO CSV FILE # EXPORT RECIPES TABLE TO CSV FILE
def export_recipes(self, csv_path=None): def export_recipes(self, csv_path=None):
if csv_path is None: if csv_path is None:
timestr=datetime.now().strftime("%d-%m-%Y")
csv_path, _ = QFileDialog.getSaveFileName( csv_path, _ = QFileDialog.getSaveFileName(
None, None,
"Esportazione ricette", "Esportazione ricette",
"ricette.csv", f"{self.config.machine_id}_RECIPES_{timestr}.csv",
"CSV data (*.csv);;All Files (*)", "CSV data (*.csv);;All Files (*)",
) )
csv_path = str(csv_path) csv_path = str(csv_path)
@ -378,49 +380,47 @@ class Recipe_Selection(Widget):
recipe_name_field: recipe.name, recipe_name_field: recipe.name,
"cliente": recipe.client, "cliente": recipe.client,
"part_number": recipe.part_number, "part_number": recipe.part_number,
# "dimensione_lotto_abilitata": "x" if recipe.spec["count"] else "", "verifica_connettore_abilitata": "x" if recipe.spec.get("connector",False) else "",
# "dimensione_lotto": steps["count"].spec["amount"], "connettore": steps.get("connector",Step()).spec.get("connector",""),
"verifica_connettore_abilitata": "x" if recipe.spec["connector"] else "", barcode_enable_field: "x" if recipe.spec.get("barcodes",False) else "",
"connettore": steps["connector"].spec["connector"], barcode_serial_field: steps.get("barcodes",Step()).spec.get("serial",""),
barcode_enable_field: "x" if recipe.spec["barcodes"] else "", "verifica_resistenza_connettore_abilitata": "x" if recipe.spec.get("resistance",False) else "",
barcode_serial_field: steps["barcodes"].spec["serial"], "scala_resistenza": steps.get("resistance",Step()).spec.get("scale",""),
"verifica_resistenza_connettore_abilitata": "x" if recipe.spec["resistance"] else "", "r nominale": steps.get("resistance",Step()).spec.get("expected",""),
"scala_resistenza": steps["resistance"].spec["scale"], "tolleranza_resistenza_pos": steps.get("resistance",Step()).spec.get("tolerance_pos",""),
"r nominale": steps["resistance"].spec["expected"], "tolleranza_resistenza_neg": steps.get("resistance",Step()).spec.get("tolerance_neg",""),
"tolleranza_resistenza_pos": steps["resistance"].spec["tolerance_pos"], # "avvitatura_abilitata": "x" if recipe.spec.get("screws",False) else "",
"tolleranza_resistenza_neg": steps["resistance"].spec["tolerance_neg"], # "viti": steps.get("screws",Step()).spec.get("quantity",""),
# "avvitatura_abilitata": "x" if recipe.spec["screws"] else "", "prova_tenuta_abilitata": "x" if recipe.spec.get("leak_1",False) else "",
# "viti": steps["screws"].spec["quantity"], "tempo_pre_riempimento": steps.get("leak_1",Step()).spec.get("pre_filling_time",""),
"prova_tenuta_abilitata": "x" if recipe.spec["leak_1"] else "", "pressione_pre_riempimento": steps.get("leak_1",Step()).spec.get("pre_filling_pressure",""),
"tempo_pre_riempimento": steps["leak_1"].spec["pre_filling_time"], "tempo_riempimento": steps.get("leak_1",Step()).spec.get("filling_time",""),
"pressione_pre_riempimento": steps["leak_1"].spec["pre_filling_pressure"], "tempo_assestamento": steps.get("leak_1",Step()).spec.get("settling_time",""),
"tempo_riempimento": steps["leak_1"].spec["filling_time"], "percentuale_minima_pressione_assestamento": steps.get("leak_1",Step()).spec.get("settling_pressure_min_percent",""),
"tempo_assestamento": steps["leak_1"].spec["settling_time"], "percentuale_massima_pressione_assestamento": steps.get("leak_1",Step()).spec.get("settling_pressure_max_percent",""),
"percentuale_minima_pressione_assestamento": steps["leak_1"].spec["settling_pressure_min_percent"], "tempo_di_test": steps.get("leak_1",Step()).spec.get("test_time",""),
"percentuale_massima_pressione_assestamento": steps["leak_1"].spec["settling_pressure_max_percent"], "pressione_di_test_delta_minimo": steps.get("leak_1",Step()).spec.get("test_pressure_qneg",""),
"tempo_di_test": steps["leak_1"].spec["test_time"], "pressione_di_test": steps.get("leak_1",Step()).spec.get("test_pressure",""),
"pressione_di_test_delta_minimo": steps["leak_1"].spec["test_pressure_qneg"], "pressione_di_test_delta_massimo": steps.get("leak_1",Step()).spec.get("test_pressure_qpos",""),
"pressione_di_test": steps["leak_1"].spec["test_pressure"], "tempo_svuotamento": steps.get("leak_1",Step()).spec.get("flush_time",""),
"pressione_di_test_delta_massimo": steps["leak_1"].spec["test_pressure_qpos"], "pressione_svuotamento": steps.get("leak_1",Step()).spec.get("flush_pressure",""),
"tempo_svuotamento": steps["leak_1"].spec["flush_time"], "prova_tenuta_abilitata_2": "x" if recipe.spec.get("leak_2",False) else "",
"pressione_svuotamento": steps["leak_1"].spec["flush_pressure"], "tempo_pre_riempimento_2": steps.get("leak_2",Step()).spec.get("pre_filling_time",""),
"prova_tenuta_abilitata_2": "x" if recipe.spec["leak_2"] else "", "pressione_pre_riempimento_2": steps.get("leak_2",Step()).spec.get("pre_filling_pressure",""),
"tempo_pre_riempimento_2": steps["leak_2"].spec["pre_filling_time"], "tempo_riempimento_2": steps.get("leak_2",Step()).spec.get("filling_time",""),
"pressione_pre_riempimento_2": steps["leak_2"].spec["pre_filling_pressure"], "tempo_assestamento_2": steps.get("leak_2",Step()).spec.get("settling_time",""),
"tempo_riempimento_2": steps["leak_2"].spec["filling_time"], "percentuale_minima_pressione_assestamento_2": steps.get("leak_2",Step()).spec.get("settling_pressure_min_percent",""),
"tempo_assestamento_2": steps["leak_2"].spec["settling_time"], "percentuale_massima_pressione_assestamento_2": steps.get("leak_2",Step()).spec.get("settling_pressure_max_percent",""),
"percentuale_minima_pressione_assestamento_2": steps["leak_2"].spec["settling_pressure_min_percent"], "tempo_di_test_2": steps.get("leak_2",Step()).spec.get("test_time",""),
"percentuale_massima_pressione_assestamento_2": steps["leak_2"].spec["settling_pressure_max_percent"], "pressione_di_test_delta_minimo_2": steps.get("leak_2",Step()).spec.get("test_pressure_qneg",""),
"tempo_di_test_2": steps["leak_2"].spec["test_time"], "pressione_di_test_2": steps.get("leak_2",Step()).spec.get("test_pressure",""),
"pressione_di_test_delta_minimo_2": steps["leak_2"].spec["test_pressure_qneg"], "pressione_di_test_delta_massimo_2": steps.get("leak_2",Step()).spec.get("test_pressure_qpos",""),
"pressione_di_test_2": steps["leak_2"].spec["test_pressure"], "tempo_svuotamento_2": steps.get("leak_2",Step()).spec.get("flush_time",""),
"pressione_di_test_delta_massimo_2": steps["leak_2"].spec["test_pressure_qpos"], "pressione_svuotamento_2": steps.get("leak_2",Step()).spec.get("flush_pressure",""),
"tempo_svuotamento_2": steps["leak_2"].spec["flush_time"], "test_visione_abilitato": recipe.spec.get("vision",False),
"pressione_svuotamento_2": steps["leak_2"].spec["flush_pressure"], "ricetta_visione": steps.get("vision",Step()).spec.get("recipe",""),
"test_visione_abilitato": recipe.spec["vision"], "stampa_etichetta_abilitata": "x" if recipe.spec.get("print",False) else "",
"ricetta_visione": steps["vision"].spec["recipe"], print_template_field: steps.get("print",Step()).spec.get("template",""),
"stampa_etichetta_abilitata": "x" if recipe.spec["print"] else "",
print_template_field: steps["print"].spec["template"],
} }
data.append(exportable) data.append(exportable)
if len(data): if len(data):

View File

@ -813,7 +813,7 @@ class Test(Widget):
"STATION": str(self.config.machine_id), "STATION": str(self.config.machine_id),
"OPERATOR": str(archived.user.username), "OPERATOR": str(archived.user.username),
"BADGE_NUM": str(archived.user.badge_number), "BADGE_NUM": str(archived.user.badge_number),
#BARCODE # BARCODE
"BCODE": str(self.step.spec.get("barcode","")), "BCODE": str(self.step.spec.get("barcode","")),
# RESULT # RESULT