new export logic
This commit is contained in:
parent
32e858f0f7
commit
4853e7883c
@ -34,6 +34,7 @@ class Recipe_Selection(Widget):
|
|||||||
global noner
|
global noner
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self.archive_sync = ArchiveSynchronizer()
|
||||||
self.second_leak_test_enabled = self.config["hardware_config"]["second_leak_test"] == "present"
|
self.second_leak_test_enabled = self.config["hardware_config"]["second_leak_test"] == "present"
|
||||||
self.defaults = self.config.get("recipes_defaults", noner)
|
self.defaults = self.config.get("recipes_defaults", noner)
|
||||||
self.unsupported_steps = unsupported_steps
|
self.unsupported_steps = unsupported_steps
|
||||||
@ -420,66 +421,108 @@ class Recipe_Selection(Widget):
|
|||||||
"ricetta_visione",
|
"ricetta_visione",
|
||||||
"stampa_etichetta_abilitata",
|
"stampa_etichetta_abilitata",
|
||||||
print_template_field,
|
print_template_field,
|
||||||
|
"etichette_supplementari",
|
||||||
]
|
]
|
||||||
for recipe in list(Recipes.select()):
|
for recipe in list(Recipes.select()):
|
||||||
steps = recipe.get_steps_map()
|
steps = recipe.get_steps_map()
|
||||||
exportable = {
|
exportable = {
|
||||||
|
# BASE SECTION
|
||||||
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 "",
|
|
||||||
# "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"],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check and add fields conditionally for each section
|
||||||
|
|
||||||
|
# MULTICOMP SECTION
|
||||||
|
if recipe.spec.get("connector"):
|
||||||
|
exportable.update({
|
||||||
|
"verifica_connettore_abilitata": "x",
|
||||||
|
"connettore": steps["connector"].spec["connector"]
|
||||||
|
})
|
||||||
|
if recipe.spec.get("resistance"):
|
||||||
|
exportable.update({
|
||||||
|
"verifica_resistenza_connettore_abilitata": "x",
|
||||||
|
"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"]
|
||||||
|
})
|
||||||
|
|
||||||
|
# BARCODE SECTION
|
||||||
|
if recipe.spec.get("barcodes"):
|
||||||
|
exportable.update({
|
||||||
|
barcode_enable_field: "x",
|
||||||
|
barcode_serial_field: steps["barcodes"].spec["serial"]
|
||||||
|
})
|
||||||
|
if recipe.spec.get("screws"):
|
||||||
|
exportable.update({
|
||||||
|
"avvitatura_abilitata": "x",
|
||||||
|
"viti": steps["screws"].spec["quantity"]
|
||||||
|
})
|
||||||
|
|
||||||
|
# TECNA SECTION
|
||||||
|
if recipe.spec.get("leak_1"):
|
||||||
|
exportable.update({
|
||||||
|
"prova_tenuta_abilitata": "x",
|
||||||
|
"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"],
|
||||||
|
})
|
||||||
|
if recipe.spec.get("leak_2"):
|
||||||
|
exportable.update({
|
||||||
|
"prova_tenuta_abilitata_2": "x",
|
||||||
|
"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"],
|
||||||
|
})
|
||||||
|
|
||||||
|
# VISION SECTION
|
||||||
|
if recipe.spec.get("vision"):
|
||||||
|
exportable.update({
|
||||||
|
"test_visione_abilitato": recipe.spec["vision"],
|
||||||
|
"ricetta_visione": steps["vision"].spec["recipe"]
|
||||||
|
})
|
||||||
|
|
||||||
|
# PRINT SECTION
|
||||||
|
if recipe.spec.get("print"):
|
||||||
|
exportable.update({
|
||||||
|
"stampa_etichetta_abilitata": "x",
|
||||||
|
print_template_field: steps["print"].spec["template"],
|
||||||
|
"etichette_supplementari": steps["print"].spec["extra_label"]
|
||||||
|
})
|
||||||
|
|
||||||
|
# Append the exportable dictionary to the data list
|
||||||
data.append(exportable)
|
data.append(exportable)
|
||||||
|
|
||||||
|
# Export to CSV if there is data
|
||||||
if len(data):
|
if len(data):
|
||||||
self.log.info(f"recipes: exporting recipes to {csv_path}")
|
self.log.info(f"recipes: exporting recipes to {csv_path}")
|
||||||
with open(csv_path, "w", newline="") as f:
|
with open(csv_path, "w", newline="") as f:
|
||||||
w = csv.DictWriter(f, fieldnames, extrasaction="ignore")
|
w = csv.DictWriter(f, fieldnames=exportable.keys(), extrasaction="ignore")
|
||||||
w.writeheader()
|
w.writeheader()
|
||||||
w.writerows(data)
|
w.writerows(data)
|
||||||
self.log.info(f"recipes: exported {len(data)} rows.")
|
self.log.info(f"recipes: exported {len(data)} rows.")
|
||||||
|
|
||||||
def delete_recipes(self):
|
def delete_recipes(self):
|
||||||
ret = QMessageBox.warning(
|
ret = QMessageBox.warning(
|
||||||
None,
|
None,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user