wip
This commit is contained in:
parent
3b55cde7e5
commit
2e7e1a015b
@ -1,2 +1,2 @@
|
||||
codice_ricetta,cliente,part_number,verifica_connettore_abilitata,connettore,verifica_codice_a_barre_abilitata,codice_a_barre,verifica_resistenza_connettore_abilitata,scala_resistenza,resistenza_attesa,tolleranza_resistenza,prova_tenuta_abilitata,tempo_pre_riempimento,pressione_pre_riempimento,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotmento,prova_tenuta_abilitata_2,tempo_pre_riempimento_2,pressione_pre_riempimento_2,tempo_riempimento_2,tempo_assestamento_2,percentuale_minima_pressione_assestamento_2,percentuale_massima_pressione_assestamento_2,tempo_di_test_2,pressione_di_test_delta_minimo_2,pressione_di_test_2,pressione_di_test_delta_massimo_2,tempo_svuotamento_2,pressione_svuotmento_2,test_visione_abilitato,ricetta_visione,stampa_etichetta_abilitata,modello_etichetta
|
||||
,,,,,,,,500,1000000000,20,x,0,1000,5,5,5,5,5,200,1000,200,1,100,,0,1000,5,5,5,5,5,200,1000,200,1,100,,termorestringente_923578.ini,x,EtichettaR5.prn
|
||||
codice_ricetta,cliente,part_number,verifica_connettore_abilitata,connettore,verifica_codice_a_barre_abilitata,codice_a_barre,step_avvitatore_connettore_abilitata,verifica_resistenza_connettore_abilitata,scala_resistenza,resistenza_attesa,tolleranza_resistenza,prova_tenuta_abilitata,tempo_pre_riempimento,pressione_pre_riempimento,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotmento,prova_tenuta_abilitata_2,tempo_pre_riempimento_2,pressione_pre_riempimento_2,tempo_riempimento_2,tempo_assestamento_2,percentuale_minima_pressione_assestamento_2,percentuale_massima_pressione_assestamento_2,tempo_di_test_2,pressione_di_test_delta_minimo_2,pressione_di_test_2,pressione_di_test_delta_massimo_2,tempo_svuotamento_2,pressione_svuotmento_2,test_visione_abilitato,ricetta_visione,stampa_etichetta_abilitata,modello_etichetta
|
||||
,,,,,,,,,500,1000000000,20,x,0,1000,5,5,5,5,5,200,1000,200,1,100,,0,1000,5,5,5,5,5,200,1000,200,1,100,,termorestringente_923578.ini,x,EtichettaR5.prn
|
||||
|
||||
|
@ -17,7 +17,7 @@ class Recipes(BaseModel):
|
||||
|
||||
def get_steps(self):
|
||||
steps = []
|
||||
for step_pk in self.spec.get("available_steps", {}).values():
|
||||
for step_pk in self.spec.get("steps", []):
|
||||
steps.append(Steps.get_by_id(step_pk))
|
||||
return steps
|
||||
|
||||
|
||||
@ -2,8 +2,8 @@ from ui.editor import Editor
|
||||
|
||||
|
||||
class Barcodes_Step_Editor(Editor):
|
||||
def __init__(self, cell_widget=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.spec.update({
|
||||
"serial": self.serial_le,
|
||||
})
|
||||
|
||||
@ -2,8 +2,8 @@ from ui.editor import Editor
|
||||
|
||||
|
||||
class Connector_Step_Editor(Editor):
|
||||
def __init__(self, cell_widget=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.spec.update({
|
||||
"connector": self.connector_le,
|
||||
})
|
||||
|
||||
@ -39,7 +39,7 @@ def from_str(data, field=None):
|
||||
class Cell:
|
||||
modified = pyqtSignal(bool)
|
||||
|
||||
def __init__(self, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
def __init__(self, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
self.readonly = readonly
|
||||
self.autocomplete = autocomplete
|
||||
self.field_name = field_name
|
||||
@ -100,14 +100,14 @@ class Cell:
|
||||
return self.value
|
||||
return self.parse(*args, **kwargs)
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
raise NotImplementedError()
|
||||
|
||||
|
||||
class Line_Edit_Cell_Widget(QLineEdit, Cell):
|
||||
def __init__(self, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
def __init__(self, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
super().__init__()
|
||||
Cell.__init__(self, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
Cell.__init__(self, action=action, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
|
||||
def set_readonly(self, readonly=True):
|
||||
self.setReadOnly(readonly)
|
||||
@ -119,14 +119,14 @@ class Line_Edit_Cell_Widget(QLineEdit, Cell):
|
||||
self.value = data
|
||||
self.setText(to_str(data))
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
return from_str(self.text(), self.field)
|
||||
|
||||
|
||||
class Combo_Box_Cell_Widget(QComboBox, Cell):
|
||||
def __init__(self, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
def __init__(self, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
super().__init__()
|
||||
Cell.__init__(self, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
Cell.__init__(self, action=action, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
|
||||
def set_readonly(self, readonly=True):
|
||||
self.setEditable(not readonly)
|
||||
@ -141,12 +141,12 @@ class Combo_Box_Cell_Widget(QComboBox, Cell):
|
||||
def render(self, data, field_name=None, row_number=None, crud=None):
|
||||
self.setCurrentText(to_str(data))
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
return from_str(self.currentText(), self.field)
|
||||
|
||||
|
||||
class External_Dialog_Cell_Widget(QPushButton, Cell):
|
||||
def __init__(self, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
def __init__(self, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
self.dialog = QDialog()
|
||||
self.editor = QPlainTextEdit()
|
||||
self.dialog.setLayout(QGridLayout())
|
||||
@ -157,7 +157,7 @@ class External_Dialog_Cell_Widget(QPushButton, Cell):
|
||||
super().__init__(u"\u238B visualizza")
|
||||
else:
|
||||
super().__init__(u"\u238B modifica")
|
||||
Cell.__init__(self, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
Cell.__init__(self, action=action, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
self.dialog.setWindowTitle(self.field_alias)
|
||||
self.clicked.connect(self.show_dialog)
|
||||
|
||||
@ -173,7 +173,7 @@ class External_Dialog_Cell_Widget(QPushButton, Cell):
|
||||
def render(self, data, field_name=None, row_number=None, crud=None):
|
||||
self.editor.setPlainText(to_str(data))
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
return from_str(self.editor.toPlainText(), self.field)
|
||||
|
||||
|
||||
@ -181,27 +181,27 @@ class Json_External_Dialog_Cell_Widget(External_Dialog_Cell_Widget):
|
||||
def render(self, data, field_name=None, row_number=None, crud=None):
|
||||
self.editor.setPlainText(json.dumps(data, indent="\t"))
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
return json.loads(self.editor.toPlainText())
|
||||
|
||||
|
||||
class Json_External_Dialog_Editor_Cell_Widget(QPushButton, Cell):
|
||||
def __init__(self, editor_widget_class, *args, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None, **kwargs):
|
||||
def __init__(self, editor_widget_class, *args, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None, **kwargs):
|
||||
if not issubclass(editor_widget_class, Editor):
|
||||
raise AssertionError(f"editor_widget_class {editor_widget_class!r} must be a subclass of {Editor!r}")
|
||||
self.editor = editor_widget_class(*args, cell_widget=weakref.ref(self), **kwargs)
|
||||
self.editor = editor_widget_class(*args, action=action, cell_widget=weakref.ref(self), **kwargs)
|
||||
if crud() is None or crud().readonly is True or (crud().readonly is list and field_name in crud().readonly):
|
||||
super().__init__(u"\u238B visualizza")
|
||||
else:
|
||||
super().__init__(u"\u238B modifica")
|
||||
Cell.__init__(self, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
Cell.__init__(self, action=action, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
self.dialog = Dialog()
|
||||
self.dialog.setAttribute(Qt.WA_DeleteOnClose, on=False)
|
||||
self.dialog.setCentralWidget(self.editor)
|
||||
self.dialog.setWindowTitle(self.field_alias)
|
||||
self.clicked.connect(self.show_dialog)
|
||||
if hasattr(self.editor, "init"):
|
||||
self.editor.init()
|
||||
self.editor.init(action=action)
|
||||
|
||||
def set_readonly(self, readonly=True):
|
||||
self.editor.set_readonly(readonly=readonly)
|
||||
@ -220,7 +220,12 @@ class Json_External_Dialog_Editor_Cell_Widget(QPushButton, Cell):
|
||||
def render(self, data, field_name=None, row_number=None, crud=None):
|
||||
self.editor.render(data, field_name=field_name, row_number=row_number, crud=crud)
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
# def _parse(self, action=None, row_number=None, crud=None):
|
||||
# if action != "commit" and self.connected_modified and not self.is_modified:
|
||||
# return self.value
|
||||
# return self.editor.parse(action=action, row_number=row_number, crud=crud)
|
||||
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
return self.editor.parse(row_number=row_number, crud=crud)
|
||||
|
||||
|
||||
@ -380,7 +385,7 @@ class Crud(Widget):
|
||||
for fn, cn in self.select_index.items():
|
||||
w = self.db_tw.cellWidget(rn, cn)
|
||||
try:
|
||||
r[fn] = w._parse(row_number=rn, crud=weakref.ref(self))
|
||||
r[fn] = w._parse(action="commit", row_number=rn, crud=weakref.ref(self))
|
||||
except Exception as e:
|
||||
self.log.exception(traceback.format_exc())
|
||||
self.set_row_color(rn, "red")
|
||||
@ -472,7 +477,7 @@ class Crud(Widget):
|
||||
r = self.row_upgrader(r, rn, self)
|
||||
for fn, cn in self.select_index.items():
|
||||
readonly = self.readonly is None or self.readonly is True or (self.readonly is not False and fn in self.readonly)
|
||||
w = self.widget_classes.get(fn, self.default_widget_class)(readonly=readonly, autocomplete=self.autocomplete.get(fn, None), field_name=fn, field_alias=self.fields_aliases[fn], field=self.db.table_model._meta.fields.get(fn, None), row_number=rn, crud=weakref.ref(self))
|
||||
w = self.widget_classes.get(fn, self.default_widget_class)(action="refresh", readonly=readonly, autocomplete=self.autocomplete.get(fn, None), field_name=fn, field_alias=self.fields_aliases[fn], field=self.db.table_model._meta.fields.get(fn, None), row_number=rn, crud=weakref.ref(self))
|
||||
w.set_readonly(readonly=w.readonly)
|
||||
w.do_autocomplete(w.autocomplete)
|
||||
w.modified.connect(self.set_modified)
|
||||
@ -497,7 +502,7 @@ class Crud(Widget):
|
||||
self.db_tw.setRowCount(rn + 1)
|
||||
for fn, cn in self.select_index.items():
|
||||
readonly = self.readonly is None or self.readonly is True or (self.readonly is not False and fn in self.readonly)
|
||||
w = self.widget_classes.get(fn, self.default_widget_class)(readonly=readonly, autocomplete=self.autocomplete.get(fn, None), field_name=fn, field_alias=self.fields_aliases[fn], field=self.db.table_model._meta.fields.get(fn, None), row_number=rn, crud=weakref.ref(self))
|
||||
w = self.widget_classes.get(fn, self.default_widget_class)(action="add", readonly=readonly, autocomplete=self.autocomplete.get(fn, None), field_name=fn, field_alias=self.fields_aliases[fn], field=self.db.table_model._meta.fields.get(fn, None), row_number=rn, crud=weakref.ref(self))
|
||||
w.set_readonly(readonly=w.readonly)
|
||||
w.do_autocomplete(w.autocomplete)
|
||||
w.modified.connect(self.set_modified)
|
||||
|
||||
@ -8,7 +8,7 @@ from ui.widget import Widget
|
||||
|
||||
|
||||
class Editor(Widget):
|
||||
def __init__(self, cell_widget=None):
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__()
|
||||
if cell_widget is None:
|
||||
self.cell_widget = None
|
||||
@ -116,7 +116,7 @@ class Editor(Widget):
|
||||
# ignore default values
|
||||
pass
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
ret = {}
|
||||
for k, w in self.spec.items():
|
||||
if isinstance(w, QCheckBox):
|
||||
|
||||
@ -2,8 +2,8 @@ from ui.editor import Editor
|
||||
|
||||
|
||||
class Leak_Step_Editor(Editor):
|
||||
def __init__(self, cell_widget=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.spec.update({
|
||||
# pre-filling
|
||||
"pre_filling_time": self.pre_filling_time_sb,
|
||||
|
||||
@ -2,8 +2,8 @@ from ui.editor import Editor
|
||||
|
||||
|
||||
class Print_Step_Editor(Editor):
|
||||
def __init__(self, cell_widget=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.spec.update({
|
||||
"template": self.label_template_cb,
|
||||
})
|
||||
|
||||
@ -159,6 +159,7 @@ class Recipe_Selection(Widget):
|
||||
"barcodes": {
|
||||
"serial": row.get(barcode_serial_field, defaults["codice_a_barre"]),
|
||||
},
|
||||
"screwdriver": {},
|
||||
"resistance": {
|
||||
"scale": float(row.get("scala_resistenza", defaults["scala_resistenza"])),
|
||||
"expected": float(row.get("resistenza_attesa", defaults["resistenza_attesa"])),
|
||||
@ -246,6 +247,7 @@ class Recipe_Selection(Widget):
|
||||
recipe.spec = {
|
||||
"connector": len(row.get("verifica_connettore_abilitata", defaults["verifica_connettore_abilitata"])) and "connector" not in self.unsupported_steps,
|
||||
"barcodes": len(row.get(barcode_enale_field, defaults["verifica_codice_a_barre_abilitata"])) and "barcodes" not in self.unsupported_steps,
|
||||
"screwdriver": len(row.get("step_avvitatore_connettore_abilitata", defaults["step_avvitatore_connettore_abilitata"])) and "screwdriver" not in self.unsupported_steps,
|
||||
"resistance": len(row.get("verifica_resistenza_connettore_abilitata", defaults["verifica_resistenza_connettore_abilitata"])) and "resistance" not in self.unsupported_steps,
|
||||
"leak_1": len(row.get("prova_tenuta_abilitata", defaults["prova_tenuta_abilitata"])) and "leak" not in self.unsupported_steps,
|
||||
"leak_2": len(row.get("prova_tenuta_abilitata_2", defaults["prova_tenuta_abilitata_2"])) and "leak" not in self.unsupported_steps,
|
||||
@ -255,6 +257,7 @@ class Recipe_Selection(Widget):
|
||||
"available_steps": {
|
||||
"connector": steps["connector"].get_id(),
|
||||
"barcodes": steps["barcodes"].get_id(),
|
||||
"screwdriver": steps["screwdriver"].get_id(),
|
||||
"resistance": steps["resistance"].get_id(),
|
||||
"leak_1": steps["leak_1"].get_id(),
|
||||
"leak_2": steps["leak_2"].get_id(),
|
||||
|
||||
@ -12,8 +12,8 @@ from ui.vision_step_editor import Vision_Step_Editor
|
||||
|
||||
|
||||
class Recipe_Spec_And_Step_Editor(Editor):
|
||||
def __init__(self, cell_widget=None, unsupported_steps=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None, unsupported_steps=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.map = {
|
||||
"connector": {
|
||||
"type": "connector",
|
||||
@ -105,19 +105,24 @@ class Recipe_Spec_And_Step_Editor(Editor):
|
||||
if editor is not None:
|
||||
editor.do_autocomplete(step_editors_autocomplete.get(step_name, None))
|
||||
|
||||
def init(self):
|
||||
def init(self, action=None):
|
||||
self.get_steps()
|
||||
if action == "add":
|
||||
self.save_steps()
|
||||
|
||||
def connect_modified(self, check_modified):
|
||||
super().connect_modified(check_modified)
|
||||
for map in self.map.values():
|
||||
editor = map.get("editor", None)
|
||||
if editor is not None:
|
||||
editor.connect_modified(check_modified)
|
||||
def showing_dialog(self):
|
||||
self.reset_steps()
|
||||
|
||||
# def connect_modified(self, check_modified):
|
||||
# super().connect_modified(check_modified)
|
||||
# for map in self.map.values():
|
||||
# editor = map.get("editor", None)
|
||||
# if editor is not None:
|
||||
# editor.connect_modified(check_modified)
|
||||
|
||||
def render(self, data, field_name=None, row_number=None, crud=None):
|
||||
super().render(data, field_name=field_name, row_number=row_number, crud=crud)
|
||||
self.available_steps = data.get("available_steps", {})
|
||||
self.available_steps = data.get("available_steps", None)
|
||||
self.get_steps()
|
||||
steps = set(data.get("steps", set()))
|
||||
for map in self.map.values():
|
||||
@ -126,7 +131,9 @@ class Recipe_Spec_And_Step_Editor(Editor):
|
||||
map["enable"].setChecked(step.name in steps and not map.get("hidden", False))
|
||||
self.render_steps()
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
# if action == "commit":
|
||||
# self.save_steps()
|
||||
ret = super().parse(row_number=row_number, crud=crud)
|
||||
ret["steps"] = []
|
||||
ret["available_steps"] = {}
|
||||
|
||||
@ -3,8 +3,8 @@ from ui.editor import Editor
|
||||
|
||||
|
||||
class Recipe_Spec_Editor(Editor):
|
||||
def __init__(self, cell_widget=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.spec.update({
|
||||
"steps": self.steps_lw,
|
||||
})
|
||||
|
||||
@ -2,8 +2,8 @@ from ui.editor import Editor
|
||||
|
||||
|
||||
class Resistance_Step_Editor(Editor):
|
||||
def __init__(self, cell_widget=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.spec.update({
|
||||
"scale": self.scale_dsb,
|
||||
"expected": self.expected_dsb,
|
||||
|
||||
@ -2,8 +2,8 @@ from ui.editor import Editor
|
||||
|
||||
|
||||
class Screwdriver_Step_Editor(Editor):
|
||||
def __init__(self, cell_widget=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.spec.update({
|
||||
"connector": self.connector_le,
|
||||
})
|
||||
|
||||
@ -10,7 +10,7 @@ from ui.widget import Widget
|
||||
|
||||
|
||||
class Step_Spec_JEDECW(QPushButton, Cell):
|
||||
def __init__(self, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
def __init__(self, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
self.editors = {
|
||||
"vision": Vision_Step_Editor(cell_widget=self),
|
||||
"leak": Leak_Step_Editor(cell_widget=self),
|
||||
@ -20,7 +20,7 @@ class Step_Spec_JEDECW(QPushButton, Cell):
|
||||
self.dialog = Dialog()
|
||||
self.dialog.setAttribute(Qt.WA_DeleteOnClose, on=False)
|
||||
super().__init__(u"\u238B modifica")
|
||||
Cell.__init__(self, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
Cell.__init__(self, action=action, readonly=readonly, autocomplete=autocomplete, field_name=field_name, field_alias=field_alias, field=field, row_number=row_number, crud=crud)
|
||||
self.update_editor()
|
||||
self.crud().modified.connect(self.update_editor)
|
||||
self.dialog.setWindowTitle(self.field_alias)
|
||||
@ -51,7 +51,7 @@ class Step_Spec_JEDECW(QPushButton, Cell):
|
||||
def render(self, data, field_name=None, row_number=None, crud=None):
|
||||
self.editor.render(data, field_name=field_name, row_number=row_number, crud=crud)
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
return self.editor.parse(row_number=row_number, crud=crud)
|
||||
|
||||
|
||||
|
||||
@ -68,6 +68,7 @@ class Test(Widget):
|
||||
"leak": Test_Assembly(img_path=None, text=None, widget=Test_Leak(components=self.components, recipe=self.recipe, step=self.step)),
|
||||
"print": Test_Assembly(img_path=self.select_step_img("print"), text=u"STAMPA ETICHETTA IN CORSO", widget=None),
|
||||
"resistance": Test_Assembly(img_path=None, text=u"COLLEGARE CONNETTORE ELETTRICO PER EFFETTUARE PROVA RESISTENZA", widget=Test_Resistance(components=self.components, recipe=self.recipe, step=self.step)),
|
||||
"screwdriver": Test_Assembly(img_path=self.select_step_img("fail"), text=u"STEP SCREWDRIVER NON SUPPORTATO", widget=None),
|
||||
"select_recipe": Test_Assembly(img_path=None, text=u"SELEZIONARE IL CODICE DA COLLAUDARE", widget=Recipe_Selection(config=self.config, unsupported_steps=self.unsupported_steps)),
|
||||
"vision": Test_Assembly(img_path=None, text=u"VERIFICARE CONTROLLO CON TELECAMERA", widget=Test_Vision(components=self.components, recipe=self.recipe, step=self.step)),
|
||||
"wait": Test_Assembly(img_path=self.select_step_img("wait"), text=u"ATTENDERE - PAUSA INTER CICLO", widget=None),
|
||||
|
||||
@ -11,8 +11,8 @@ class Users_Management(Widget):
|
||||
super().__init__()
|
||||
|
||||
class Username_Line_Edit_Cell_Widget(Line_Edit_Cell_Widget):
|
||||
def parse(self, row_number=None, crud=None):
|
||||
data = super().parse(row_number=row_number, crud=crud)
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
data = super().parse(action=action, row_number=row_number, crud=crud)
|
||||
if data is not None and len(data):
|
||||
return data.upper()
|
||||
return None
|
||||
@ -29,7 +29,7 @@ class Users_Management(Widget):
|
||||
data = None
|
||||
self.setText(data)
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
data = self.text()
|
||||
if data is not None and len(data):
|
||||
return [data, False] # mark as NOT hash
|
||||
@ -39,7 +39,7 @@ class Users_Management(Widget):
|
||||
def render(self, data, row_number=None, crud=None):
|
||||
super().render(", ".join(data) if data is not None else None, row_number=row_number, crud=crud)
|
||||
|
||||
def parse(self, row_number=None, crud=None):
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
return Users.parse_roles(self.text())
|
||||
|
||||
crud_aliases = {
|
||||
|
||||
@ -2,8 +2,8 @@ from ui.editor import Editor
|
||||
|
||||
|
||||
class Vision_Step_Editor(Editor):
|
||||
def __init__(self, cell_widget=None):
|
||||
super().__init__(cell_widget=cell_widget)
|
||||
def __init__(self, action=None, cell_widget=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.spec.update({
|
||||
"recipe": self.vision_recipe_cb,
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user