diff --git a/lib/controller.py b/lib/controller.py index 649dad2..de7ae1c 100644 --- a/lib/controller.py +++ b/lib/controller.py @@ -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