From 6703f6e935ff827098831703d123fa27eea3d6e8 Mon Sep 17 00:00:00 2001 From: neo Date: Mon, 31 Mar 2025 18:22:42 +0200 Subject: [PATCH] export recipes improvements --- src/lib/helpers/step.py | 4 +- src/ui/recipe_selection/recipe_selection.py | 88 ++++++++++----------- src/ui/test/test.py | 2 +- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/lib/helpers/step.py b/src/lib/helpers/step.py index 9429943..90e36d5 100644 --- a/src/lib/helpers/step.py +++ b/src/lib/helpers/step.py @@ -3,6 +3,6 @@ class Step(object): step_type = None spec = {} - def __init__(self,step_type=None,spec=dict): + def __init__(self,step_type=None,spec=None): self.step_type = step_type - self.spec = spec + self.spec = spec if spec else {} diff --git a/src/ui/recipe_selection/recipe_selection.py b/src/ui/recipe_selection/recipe_selection.py index 2cf046c..e43b09e 100755 --- a/src/ui/recipe_selection/recipe_selection.py +++ b/src/ui/recipe_selection/recipe_selection.py @@ -12,6 +12,7 @@ from PyQt5.QtWidgets import QFileDialog, QMessageBox, QShortcut import shutil 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.helpers import replace_widget 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 def export_recipes(self, csv_path=None): if csv_path is None: + timestr=datetime.now().strftime("%d-%m-%Y") csv_path, _ = QFileDialog.getSaveFileName( None, "Esportazione ricette", - "ricette.csv", + f"{self.config.machine_id}_RECIPES_{timestr}.csv", "CSV data (*.csv);;All Files (*)", ) csv_path = str(csv_path) @@ -378,49 +380,47 @@ class Recipe_Selection(Widget): recipe_name_field: recipe.name, "cliente": recipe.client, "part_number": recipe.part_number, - # "dimensione_lotto_abilitata": "x" if recipe.spec["count"] else "", - # "dimensione_lotto": steps["count"].spec["amount"], - "verifica_connettore_abilitata": "x" if recipe.spec["connector"] else "", - "connettore": steps["connector"].spec["connector"], - barcode_enable_field: "x" if recipe.spec["barcodes"] else "", - barcode_serial_field: steps["barcodes"].spec["serial"], - "verifica_resistenza_connettore_abilitata": "x" if recipe.spec["resistance"] else "", - "scala_resistenza": steps["resistance"].spec["scale"], - "r nominale": steps["resistance"].spec["expected"], - "tolleranza_resistenza_pos": steps["resistance"].spec["tolerance_pos"], - "tolleranza_resistenza_neg": steps["resistance"].spec["tolerance_neg"], - # "avvitatura_abilitata": "x" if recipe.spec["screws"] else "", - # "viti": steps["screws"].spec["quantity"], - "prova_tenuta_abilitata": "x" if recipe.spec["leak_1"] else "", - "tempo_pre_riempimento": steps["leak_1"].spec["pre_filling_time"], - "pressione_pre_riempimento": steps["leak_1"].spec["pre_filling_pressure"], - "tempo_riempimento": steps["leak_1"].spec["filling_time"], - "tempo_assestamento": steps["leak_1"].spec["settling_time"], - "percentuale_minima_pressione_assestamento": steps["leak_1"].spec["settling_pressure_min_percent"], - "percentuale_massima_pressione_assestamento": steps["leak_1"].spec["settling_pressure_max_percent"], - "tempo_di_test": steps["leak_1"].spec["test_time"], - "pressione_di_test_delta_minimo": steps["leak_1"].spec["test_pressure_qneg"], - "pressione_di_test": steps["leak_1"].spec["test_pressure"], - "pressione_di_test_delta_massimo": steps["leak_1"].spec["test_pressure_qpos"], - "tempo_svuotamento": steps["leak_1"].spec["flush_time"], - "pressione_svuotamento": steps["leak_1"].spec["flush_pressure"], - "prova_tenuta_abilitata_2": "x" if recipe.spec["leak_2"] else "", - "tempo_pre_riempimento_2": steps["leak_2"].spec["pre_filling_time"], - "pressione_pre_riempimento_2": steps["leak_2"].spec["pre_filling_pressure"], - "tempo_riempimento_2": steps["leak_2"].spec["filling_time"], - "tempo_assestamento_2": steps["leak_2"].spec["settling_time"], - "percentuale_minima_pressione_assestamento_2": steps["leak_2"].spec["settling_pressure_min_percent"], - "percentuale_massima_pressione_assestamento_2": steps["leak_2"].spec["settling_pressure_max_percent"], - "tempo_di_test_2": steps["leak_2"].spec["test_time"], - "pressione_di_test_delta_minimo_2": steps["leak_2"].spec["test_pressure_qneg"], - "pressione_di_test_2": steps["leak_2"].spec["test_pressure"], - "pressione_di_test_delta_massimo_2": steps["leak_2"].spec["test_pressure_qpos"], - "tempo_svuotamento_2": steps["leak_2"].spec["flush_time"], - "pressione_svuotamento_2": steps["leak_2"].spec["flush_pressure"], - "test_visione_abilitato": recipe.spec["vision"], - "ricetta_visione": steps["vision"].spec["recipe"], - "stampa_etichetta_abilitata": "x" if recipe.spec["print"] else "", - print_template_field: steps["print"].spec["template"], + "verifica_connettore_abilitata": "x" if recipe.spec.get("connector",False) else "", + "connettore": steps.get("connector",Step()).spec.get("connector",""), + barcode_enable_field: "x" if recipe.spec.get("barcodes",False) else "", + barcode_serial_field: steps.get("barcodes",Step()).spec.get("serial",""), + "verifica_resistenza_connettore_abilitata": "x" if recipe.spec.get("resistance",False) else "", + "scala_resistenza": steps.get("resistance",Step()).spec.get("scale",""), + "r nominale": steps.get("resistance",Step()).spec.get("expected",""), + "tolleranza_resistenza_pos": steps.get("resistance",Step()).spec.get("tolerance_pos",""), + "tolleranza_resistenza_neg": steps.get("resistance",Step()).spec.get("tolerance_neg",""), + # "avvitatura_abilitata": "x" if recipe.spec.get("screws",False) else "", + # "viti": steps.get("screws",Step()).spec.get("quantity",""), + "prova_tenuta_abilitata": "x" if recipe.spec.get("leak_1",False) else "", + "tempo_pre_riempimento": steps.get("leak_1",Step()).spec.get("pre_filling_time",""), + "pressione_pre_riempimento": steps.get("leak_1",Step()).spec.get("pre_filling_pressure",""), + "tempo_riempimento": steps.get("leak_1",Step()).spec.get("filling_time",""), + "tempo_assestamento": steps.get("leak_1",Step()).spec.get("settling_time",""), + "percentuale_minima_pressione_assestamento": steps.get("leak_1",Step()).spec.get("settling_pressure_min_percent",""), + "percentuale_massima_pressione_assestamento": steps.get("leak_1",Step()).spec.get("settling_pressure_max_percent",""), + "tempo_di_test": steps.get("leak_1",Step()).spec.get("test_time",""), + "pressione_di_test_delta_minimo": steps.get("leak_1",Step()).spec.get("test_pressure_qneg",""), + "pressione_di_test": steps.get("leak_1",Step()).spec.get("test_pressure",""), + "pressione_di_test_delta_massimo": steps.get("leak_1",Step()).spec.get("test_pressure_qpos",""), + "tempo_svuotamento": steps.get("leak_1",Step()).spec.get("flush_time",""), + "pressione_svuotamento": steps.get("leak_1",Step()).spec.get("flush_pressure",""), + "prova_tenuta_abilitata_2": "x" if recipe.spec.get("leak_2",False) else "", + "tempo_pre_riempimento_2": steps.get("leak_2",Step()).spec.get("pre_filling_time",""), + "pressione_pre_riempimento_2": steps.get("leak_2",Step()).spec.get("pre_filling_pressure",""), + "tempo_riempimento_2": steps.get("leak_2",Step()).spec.get("filling_time",""), + "tempo_assestamento_2": steps.get("leak_2",Step()).spec.get("settling_time",""), + "percentuale_minima_pressione_assestamento_2": steps.get("leak_2",Step()).spec.get("settling_pressure_min_percent",""), + "percentuale_massima_pressione_assestamento_2": steps.get("leak_2",Step()).spec.get("settling_pressure_max_percent",""), + "tempo_di_test_2": steps.get("leak_2",Step()).spec.get("test_time",""), + "pressione_di_test_delta_minimo_2": steps.get("leak_2",Step()).spec.get("test_pressure_qneg",""), + "pressione_di_test_2": steps.get("leak_2",Step()).spec.get("test_pressure",""), + "pressione_di_test_delta_massimo_2": steps.get("leak_2",Step()).spec.get("test_pressure_qpos",""), + "tempo_svuotamento_2": steps.get("leak_2",Step()).spec.get("flush_time",""), + "pressione_svuotamento_2": steps.get("leak_2",Step()).spec.get("flush_pressure",""), + "test_visione_abilitato": recipe.spec.get("vision",False), + "ricetta_visione": steps.get("vision",Step()).spec.get("recipe",""), + "stampa_etichetta_abilitata": "x" if recipe.spec.get("print",False) else "", + print_template_field: steps.get("print",Step()).spec.get("template",""), } data.append(exportable) if len(data): diff --git a/src/ui/test/test.py b/src/ui/test/test.py index 4dcb552..1c6c101 100755 --- a/src/ui/test/test.py +++ b/src/ui/test/test.py @@ -813,7 +813,7 @@ class Test(Widget): "STATION": str(self.config.machine_id), "OPERATOR": str(archived.user.username), "BADGE_NUM": str(archived.user.badge_number), - #BARCODE + # BARCODE "BCODE": str(self.step.spec.get("barcode","")), # RESULT