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):
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 {}

View File

@ -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):

View File

@ -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