Callbackfunktionen gleich benannt wie die jeweiligen Callbacks. Pflege der DAten beim csv Import immer gleich nach dem Aufruf der Callbackfunktion, da jede Callback auf Daten daraus zugreift

This commit is contained in:
2024-02-06 12:37:28 +01:00
parent 6c1bb728c7
commit 716ff80905
+77 -66
View File
@@ -95,6 +95,7 @@ class Controller():
if loaded_json:
# falls eine .json Datei dieser ID existiert, dann diese laden
gui_dict = self.logic.csv2guidata(loaded_csv)
self.model.set_gui_dict(gui_dict)
else:
# ansonsten die .csv Datei mit den SIVAS Infos holen
# TODO
@@ -105,7 +106,6 @@ class Controller():
if not gui_dict:
print("no file found "+ cid)
else:
self.model.set_gui_dict(gui_dict)
self.refresh_gui()
def get_current_item_id(self):
@@ -231,18 +231,23 @@ class GuiLogic():
if "Indexerfasser" in data and "Aenderungstext" in data:
ret["aenderungstext_sivas"] = '{aenderungstext} (von {author})'.format(aenderungstext=data["Aenderungstext"], author=data["Indexerfasser"])
# Indexerfasser wird nicht in der gui verwaltet. Deshalb Modifikation aus den Rohdaten
self.model.set_gui_dict(ret)
# set defaults from given logic
r0 = self.callback("cb_pdm_kategorie_neu", None)
self.model.set_gui_dict(r0)
r1 = self.callback("cb_neuaufbau", None)
ret.update(r1)
self.model.set_gui_dict(r1)
r2 = self.callback("cb_aus_halbzeug_neu", None)
ret.update(r2)
self.model.set_gui_dict(r2)
r3 = self.callback("cb_halbzeugoberflaeche", None)
ret.update(r3)
self.model.set_gui_dict(r3)
r4 = self.callback("cb_halbzeugfarbe", None)
self.model.set_gui_dict(r4)
# add entry dependencies
dep = self.entry_dependencies(ret)
ret.update(dep)
self.model.set_gui_dict(dep)
return ret
def entry_dependencies(self, data):
@@ -253,17 +258,15 @@ class GuiLogic():
"""gibt ein dict zurück, welches neu im Modell gesetzt wird"""
if key == 'cb_pdm_kategorie_neu':
pass
elif key == "cb_halbzeug_neu":
pass
elif key == "cb_halbzeugoberflaeche":
return self.halbzeug_oberflaeche_neu(value)
elif key == "cb_halbzeugfarbe":
return self.halbzeug_farbe_neu(value)
return self.cb_pdm_kategorie_neu(value)
elif key == 'cb_neuaufbau':
return self.neuaufbau(value)
return self.cb_neuaufbau(value)
elif key == 'cb_aus_halbzeug_neu':
return self.aus_halbzeug_neu(value)
return self.cb_aus_halbzeug_neu(value)
elif key == "cb_halbzeugoberflaeche":
return self.cb_halbzeugoberflaeche(value)
elif key == "cb_halbzeugfarbe":
return self.cb_halbzeugfarbe(value)
elif key == 'cb_lebenszyklus_status_neu':
pass
elif key == 'cb_3Dmodel_neu':
@@ -302,7 +305,7 @@ class GuiLogic():
elif key == 'cb_oberflaeche_neu':
pass
elif key == 'cb_farbe_neu':
return self.farbe(value)
return self.cb_farbe_neu(value)
elif key == 'cb_speichern':
pass
elif key == 'cb_migrieren':
@@ -313,51 +316,45 @@ class GuiLogic():
pass
else:
raise Exception("this callback does not exist "+key)
def cb_pdm_kategorie_neu(self, selected):
ret = dict()
categories = self.config.Allgemein.get_options("Kategorien")
if selected is None:
ret['pdm_kategorie_neu'] = categories[0]
ret['cb_pdm_kategorie_neu'] = categories
else:
ret['pdm_kategorie_neu'] = selected
return ret
def neuaufbau(self, trueOrfalse):
def cb_neuaufbau(self, trueOrfalse):
ret = dict()
pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
if pdm_kat != "Einzelteil" or pdm_kat != "Kaufteil":
ret["neuaufbau"] = False
return ret
def aus_halbzeug_neu(self, trueOrfalse):
def cb_aus_halbzeug_neu(self, trueOrfalse):
ret = dict()
pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
if pdm_kat == "Einzelteil":
ret = self.callback("cb_halbzeugoberflaeche", None)
pass
else:
ret["aus_halbzeug_neu"] = False
return ret
def farbe(self, selected):
farben_alle = self.config.Farben.get_farbauswahl()
farben_elox = self.config.Farben.get_farben_eloxieren()
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
ret = {
# das Feld selbst mit dem Selektierten beschreiben
'farbe_neu': selected,
# die neuen Inhalte der comboboxen setzen
'cb_farben': farben_alle,
# der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen
'farbe_neu': farben_alle[0],
}
return ret
def halbzeug_oberflaeche_neu(self, selected):
def cb_halbzeugoberflaeche(self, selected):
ret = dict()
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
if aus_halbzeug == "True":
oarten = self.config.Oberfläche.get_oberflächen_behandlungen()
if not selected is None:
ret['cb_halbzeugoberflaeche'] = selected
else:
ret = {
'halbzeugoberflaeche_neu': oarten[0],
'cb_halbzeugoberflaeche': oarten,
}
if selected is None:
ret['halbzeugoberflaeche_neu'] = oarten[0]
ret['cb_halbzeugoberflaeche'] = oarten
else:
ret['halbzeugoberflaeche_neu'] = selected
else:
ret = {
'halbzeugoberflaeche_neu': "",
@@ -365,34 +362,33 @@ class GuiLogic():
}
return ret
def halbzeug_farbe_neu(self, selected):
def cb_halbzeugfarbe(self, selected):
ret = dict()
data = self.model.get_gui_data("halbzeug_farbe_neu")
if "halbzeugoberflaeche_neu" in data:
halbzeugoberflaeche = data["halbzeugoberflaeche_neu"]
if data["aus_halbzeug_neu"] == True:
if halbzeugoberflaeche == "eloxieren" or halbzeugoberflaeche == "lackieren" or halbzeugoberflaeche == "pulverbeschichten":
if halbzeugoberflaeche == "eloxieren":
farben_elox = self.config.Farben.get_farben_eloxieren()
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
ret = {
# die neuen Inhalte der comboboxen setzen
'halbzeugfarbe_neu': farben_elox[0],
'cb_halbzeugfarbe': farben_elox,
halbzeugoberflaeche = self.model.get_gui_data("halbzeugoberflaeche_neu")
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
}
elif halbzeugoberflaeche == "lackieren" or halbzeugoberflaeche == "pulverbeschichten":
farbauswahl = self.config.Farben.get_farbauswahl()
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
ret = {
'halbzeugfarbe_neu': farbauswahl[0],
'cb_halbzeugfarbe': farbauswahl,
}
# setze die Inhalte der abhängigen Comboboxen neu
ret = {
'halbzeugfarbe_neu': '',
'cb_halbzeugfarbe': '',
}
if aus_halbzeug == "True":
if halbzeugoberflaeche == "eloxieren":
farben_elox = self.config.Farben.get_farben_eloxieren()
if selected is None:
ret['halbzeugfarbe_neu'] = farben_elox[0] # Default, falls nichts gewählt ist
ret['cb_halbzeugfarbe'] = farben_elox # Liste in der Combobox
else:
ret["halbzeugoberflaeche_neu"] = ''
else:
ret["halbzeugoberflaeche_neu"] = ''
ret['halbzeugfarbe_neu'] = selected # vom Nutzer ausgewählter Wert
elif halbzeugoberflaeche == "lackieren" or halbzeugoberflaeche == "pulverbeschichten":
farbauswahl = self.config.Farben.get_farbauswahl()
if selected is None:
ret['halbzeugfarbe_neu'] = farbauswahl[0]
ret['cb_halbzeugfarbe'] = farbauswahl
else:
ret['halbzeugfarbe_neu'] = selected
else:
pass
return ret
@@ -453,6 +449,21 @@ class GuiLogic():
# }
# return ret
def cb_farbe_neu(self, selected):
farben_alle = self.config.Farben.get_farbauswahl()
farben_elox = self.config.Farben.get_farben_eloxieren()
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
ret = {
# das Feld selbst mit dem Selektierten beschreiben
'farbe_neu': selected,
# die neuen Inhalte der comboboxen setzen
'cb_farben': farben_alle,
# der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen
'farbe_neu': farben_alle[0],
}
return ret
if __name__ == "__main__":
pass