diff --git a/CreoMigrate.code-workspace b/CreoMigrate.code-workspace deleted file mode 100644 index 53db69b..0000000 --- a/CreoMigrate.code-workspace +++ /dev/null @@ -1,13 +0,0 @@ -{ - "folders": [ - { - "path": "." - } - ], - "settings": { - "[python]": { - "editor.defaultFormatter": "ms-python.autopep8" - }, - "python.formatting.provider": "none" - } -} \ No newline at end of file diff --git a/cfg/Allgemein.cfg b/cfg/Allgemein.cfg index 853790c..a59589c 100644 --- a/cfg/Allgemein.cfg +++ b/cfg/Allgemein.cfg @@ -1,4 +1,5 @@ [Kategorien] + Baugruppe Einzelteil Kaufteil diff --git a/lib/CreoMigrateGui.py b/lib/CreoMigrateGui.py index 7439c22..f9d194a 100644 --- a/lib/CreoMigrateGui.py +++ b/lib/CreoMigrateGui.py @@ -59,13 +59,10 @@ demo_data = """ "gui_data": { "asm_id": "400102190", "teilenummer": "400102195", - "pdm_kategorie_neu": "Einzelteil", "neuaufbau": "False", "lebenszyklus_status_neu": "Serie", "aus_halbzeug_neu": "True", - "zusatzinfos_auto_text": "Dies sind neue Zusatzinfos", - "cb_lebenszyklus_status_neu": ["Serie", "Prototyp"], - "cb_werkstofftyp_neu": ["Stahl", "Aluminium", "Kunst-/ Verbundstoff", "Schwermetall"] + "zusatzinfos_auto_text": "Dies sind neue Zusatzinfos" }, "data": {} } diff --git a/lib/caditem.py b/lib/caditem.py index f4146e6..8ea38f4 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -42,6 +42,7 @@ class CadItem(): "halbzeugnummer_neu", "halbzeuglaenge_neu", "halbzeugoberflaeche_neu", + "halbzeugfarbe_neu", "lebenszyklus_status_neu", "bezeichnung1_sivas", "bezeichnung1_neu", "bezeichnung2_sivas", "bezeichnung2_neu", @@ -182,7 +183,10 @@ class CadItem(): self.gui_data[key] = val def get_gui_data(self, key): - return self.gui_data[key] + if key in self.gui_data: + return self.gui_data[key] + else: + return None def get_all_gui_data(self): return self.gui_data diff --git a/lib/controller.py b/lib/controller.py index d1a1b76..de7ae1c 100644 --- a/lib/controller.py +++ b/lib/controller.py @@ -30,79 +30,7 @@ messages = { } -# die folgende Hash ist nur für schnelleres Editieren hier -gui_data_keys = [ - "asm_id", - "teilenummer", - "datenbank", - "pdm_kategorie_neu", - "neuaufbau", - "aus_halbzeug_neu", - "halbzeugnummer_neu", - "halbzeuglaenge_neu", - "halbzeugoberflaeche_neu", - "lebenszyklus_status_neu", - "bezeichnung1_sivas", "bezeichnung1_neu", - "bezeichnung2_sivas", "bezeichnung2_neu", - "halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu", - "ruestcode_sivas", "ruestcode_neu", - "fertigungsart_sivas", "fertigungsart_neu", - "allgemeintoleranz_sivas", "allgemeintoleranz_neu", - "fosGruppe_sivas", "fosGruppe_neu", - "kalkulationsart_sivas", "kalkulationsart_neu", - "beschaffungsart_sivas", "beschaffungsart_neu", - "mengeneinheit_sivas", "mengeneinheit_neu", - "halbzeug_sivas", "halbzeug_neu", - "tosgruppe_sivas", "tosgruppe_neu", - "dispogruppe_sivas", "dispogruppe_neu", - "dispolaufgruppe_sivas","dispolaufgruppe_neu", - "hersteller_sivas", "hersteller_neu", - "ersatzfuer_sivas", "ersatzfuer_neu", - "ersetztdurch_sivas", "ersetztdurch_neu", - "herstteilenr_sivas", "herstteilenr_neu", - "werkstoffdiskr_sivas", - "werkstofftyp_sivas", "werkstofftyp_neu", - "material_sivas", "material_neu", - "oberflaeche_neu", - "farbe_neu", - "version_sivas", "version_neu", - "aenderungsindex_sivas", "aenderungsindex_neu", - "aenderungstext_sivas", "aenderungstext_neu", - "freigabevermerk_sivas", "freigabevermerk_neu", - "zusatzinfos_auto_text", - "zusatzinfos_bendef_text", - # Felder der Comboboxen. benannt wie deren callbacks - "cb_pdm_kategorie_neu", - "cb_halbzeug_neu", - "cb_halbzeugoberflaeche", - "cb_halbzeugfarbe", - "cb_lebenszyklus_status_neu", - "cb_3Dmodel_neu", - "cb_halbzeugOhneSaege_neu", - "cb_ruestcode_neu", - "cb_fertigungsart_neu", - "cb_allgemeintoleranz_neu", - "cb_fosGruppe_neu", - "cb_kalkulationsart_neu", - "cb_beschaffungsart_neu", - "cb_mengeneinheit_neu", - "cb_dispogruppe_neu", - "cb_dispolaufgruppe_neu", - "cb_hersteller_neu", - "cb_werkstofftyp_neu", - "cb_material_neu", - "cb_oberflaeche_neu", - "cb_farbe_neu", - # buttons - "cb_speichern", - "cb_migrieren", - "cb_zurücksetzen", -] - - class Controller(): - - """ Class for manipulating the model and returning data for the view """ @@ -152,12 +80,36 @@ class Controller(): def set_current_item_id(self, cid): + """setze eine neue Item ID """ + # check before. change to given item just in case it is valid, e.g. name is a number of 9 digits + if not cid.isnumeric(): + return + + # TODO save current given data. In case, ask whether you should save or drop self.set_gui_data('teilenummer', cid) - - loaded_csv = self.model.sivas_data_from_csv(cid) - gui_dict = self.logic.csv2guidata(loaded_csv) - self.model.set_gui_dict(gui_dict) - self.refresh_gui() + + # falls eine .json Datei davon existiert, dann diese zuerst versuchen zu laden + #self.model.load(demo_data) + gui_dict = None + loaded_json = self.model.sivas_data_from_json(cid) + 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 + loaded_csv = self.model.sivas_data_from_csv(cid) + if loaded_csv: + # und dann diese laden + gui_dict = self.logic.csv2guidata(loaded_csv) + if not gui_dict: + print("no file found "+ cid) + else: + self.refresh_gui() + + def get_current_item_id(self): + return self.get_gui_data('teilenummer') def set_red_ids(self, red_ids): @@ -201,10 +153,28 @@ class Controller(): def callback(self, key, value): if not self.logic: return + + # Logik um neue Werte in Oberfläche oder Modell zu füllen model_values = self.logic.callback(key, value) if model_values: self.set_gui_dict(model_values) self.refresh_gui() + + # reine Aktionen + if key == 'cb_speichern': + self.save_to_file() + elif key == 'cb_migrieren': + pass + elif key == 'cb_zurücksetzen': + pass + elif key == 'cb_suche_asm': + pass + + def save_to_file(self): + """speichert die bisherigen Eingaben beider Spalten in eine json Datei""" + path = os.path.join(self.get_env("out"), str(self.get_current_item_id()) + '.json') + # die Bauminfos und RedIds dazu werden standardmässig nicht mit gemerkt. + self.model.save(path, False) class GuiLogic(): """ @@ -217,34 +187,7 @@ class GuiLogic(): # hier holt man die Daten der Configs self.config = configs # hier sind alle Callbacks bzw. deren Comboboxen - self.callbacks = [ - 'cb_pdm_kategorie_neu', - 'cb_neuaufbau', - 'cb_aus_halbzeug_neu', - 'cb_lebenszyklus_status_neu', - 'cb_3Dmodel_neu', - 'cb_halbzeugOhneSaege_neu', - 'cb_ruestcode_neu', - 'cb_fertigungsart_neu', - 'cb_allgemeintoleranz_neu', - 'cb_fosGruppe_neu', - 'cb_kalkulationsart_neu', - 'cb_beschaffungsart_neu', - 'cb_mengeneinheit_neu', - 'cb_halbzeug_neu', - 'cb_dispogruppe_neu', - 'cb_dispolaufgruppe_neu', - 'cb_hersteller_neu', - 'cb_werkstoffdiskrepanz', - 'cb_werkstofftyp_neu', - 'cb_material_neu', - 'cb_oberflaeche_neu', - 'cb_farbe_neu', - 'cb_speichern', - 'cb_migrieren', - 'cb_zurücksetzen', - 'cb_suche_asm' - ] + # dies sind die Excel Headel der SIVAS csv Export Datei # und wie diese in das Datenmodell der Gui integriert werden kann self.excel_to_gui = { @@ -288,41 +231,42 @@ 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) + 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): - ret = dict() + return {} - halbzeugoberflaeche = data["halbzeugoberflaeche_neu"] - if data["aus_halbzeug_neu"] == True: - if halbzeugoberflaeche == "eloxieren" or halbzeugoberflaeche == "lackieren" or halbzeugoberflaeche == "pulverbeschichten": - pass - else: - ret["halbzeugoberflaeche_neu"] = '' - else: - ret["halbzeugoberflaeche_neu"] = '' - return ret def callback(self, key, value): """gibt ein dict zurück, welches neu im Modell gesetzt wird""" - if key not in self.callbacks: - raise Exception("this callback does not exist "+key) + if key == 'cb_pdm_kategorie_neu': - pass + 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': @@ -354,13 +298,14 @@ class GuiLogic(): elif key == 'cb_werkstoffdiskrepanz': pass elif key == 'cb_werkstofftyp_neu': - return self.werkstofftyp(value) + pass + # return self.werkstofftyp(value) elif key == 'cb_material_neu': pass 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': @@ -371,15 +316,25 @@ 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": @@ -388,64 +343,113 @@ class GuiLogic(): ret["aus_halbzeug_neu"] = False return ret - def werkstofftyp(self, selected_werkstoff): - """bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche""" - # Logik, die steuert, welcher Defaultwert gilt: - # In den nachfolgenden Fällen darf kein Defaultwert eingetragen - # werden (selbst wenn in from_siv.csv ein Wert in der Spalte - # "Werkstoff" eingetragen sein sollte): - # PDM-Kategorie == "Baugruppe" - # PDM-Kategorie == "Schweissbaugruppe" - # PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt) - - # Gilt PDM-Kategorie == "Kaufteil" soll der Defaultwert "siehe - # Hersteller" eingetragen werden - - # Gilt PDM-Kategorie == "Einzelteil" und Aus Halbzeug == False (kein - # Haken), dann wird der Defaultwert wie folgt bestimmt: + def cb_halbzeugoberflaeche(self, selected): ret = dict() - # das Feld selbst mit dem Selektierten beschreiben - ret['werkstofftyp_neu']= selected_werkstoff - - pdm_kat = self.model.get_gui_data("pdm_kategorie_neu") aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu") - - if pdm_kat == 'Einzelteil' and aus_halbzeug is False: - wnamen = self.config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff) - # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell + if aus_halbzeug == "True": + oarten = self.config.Oberfläche.get_oberflächen_behandlungen() + if selected is None: + ret['halbzeugoberflaeche_neu'] = oarten[0] + ret['cb_halbzeugoberflaeche'] = oarten + else: + ret['halbzeugoberflaeche_neu'] = selected + else: ret = { - # das Feld selbst mit dem Selektierten beschreiben - 'werkstofftyp_neu': selected_werkstoff, - # die neuen Inhalte der comboboxen setzen - 'cb_material_neu': wnamen, - # der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen - 'material_neu': wnamen[0], + 'halbzeugoberflaeche_neu': "", + 'cb_halbzeugoberflaeche': "", } return ret - - def oberfläche(self, selected): - + + def cb_halbzeugfarbe(self, selected): ret = dict() - # das Feld selbst mit dem Selektierten beschreiben - ret['oberflaeche_neu']= selected - - pdm_kat = self.model.get_gui_data("pdm_kategorie_neu") + halbzeugoberflaeche = self.model.get_gui_data("halbzeugoberflaeche_neu") aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu") - if pdm_kat == 'Einzelteil' and aus_halbzeug is False: - onamen = self.config.Oberfläche.get_oberfläche_of_type(selected) - # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell - ret = { - # die neuen Inhalte der comboboxen setzen - 'cb_oberflaeche_neu': onamen, - # der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen - 'oberflaeche_neu': onamen[0], - } + # 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['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 - def farbe(self, selected): + + # def werkstofftyp(self, selected_werkstoff): + # """bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche""" + + # # Logik, die steuert, welcher Defaultwert gilt: + + # # In den nachfolgenden Fällen darf kein Defaultwert eingetragen + # # werden (selbst wenn in from_siv.csv ein Wert in der Spalte + # # "Werkstoff" eingetragen sein sollte): + # # PDM-Kategorie == "Baugruppe" + # # PDM-Kategorie == "Schweissbaugruppe" + # # PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt) + + # # Gilt PDM-Kategorie == "Kaufteil" soll der Defaultwert "siehe + # # Hersteller" eingetragen werden + + # # Gilt PDM-Kategorie == "Einzelteil" und Aus Halbzeug == False (kein + # # Haken), dann wird der Defaultwert wie folgt bestimmt: + # ret = dict() + # # das Feld selbst mit dem Selektierten beschreiben + # ret['werkstofftyp_neu']= selected_werkstoff + + # pdm_kat = self.model.get_gui_data("pdm_kategorie_neu") + # aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu") + + # if pdm_kat == 'Einzelteil' and aus_halbzeug is False: + # wnamen = self.config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff) + # # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell + # ret = { + # # das Feld selbst mit dem Selektierten beschreiben + # 'werkstofftyp_neu': selected_werkstoff, + # # die neuen Inhalte der comboboxen setzen + # 'cb_material_neu': wnamen, + # # der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen + # 'material_neu': wnamen[0], + # } + # return ret + + # def oberfläche(self, selected): + + # ret = dict() + # # das Feld selbst mit dem Selektierten beschreiben + # ret['oberflaeche_neu']= selected + + # pdm_kat = self.model.get_gui_data("pdm_kategorie_neu") + # aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu") + + # if pdm_kat == 'Einzelteil' and aus_halbzeug is False: + # onamen = self.config.Oberfläche.get_oberfläche_of_type(selected) + # # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell + # ret = { + # # die neuen Inhalte der comboboxen setzen + # 'cb_oberflaeche_neu': onamen, + # # der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen + # 'oberflaeche_neu': onamen[0], + # } + # 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 diff --git a/lib/gui.py b/lib/gui.py index 8638d7e..09e82ac 100644 --- a/lib/gui.py +++ b/lib/gui.py @@ -235,12 +235,12 @@ class RightFramePDM(AllFrames): self.rownum += 1 # pdmkategorie - categories = configs.Allgemein.get_options("Kategorien") #"Baugruppe", "Einzelteil", "Kaufteil", "NichtSivas", "Normteil", "Schweissbaugruppe" + #categories = configs.Allgemein.get_options("Kategorien") #"Baugruppe", "Einzelteil", "Kaufteil", "NichtSivas", "Normteil", "Schweissbaugruppe" pdmkategorie_label = ttk.Label(frame, text="PDM-Kategorie:" ) pdmkategorie_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.pdm_category = tk.StringVar() self.pdmkategorie_combo = ttk.Combobox(frame, textvariable=self.pdm_category) - self.pdmkategorie_combo['values'] = categories + #self.pdmkategorie_combo['values'] = categories self.pdmkategorie_combo['state'] = 'readonly' self.pdmkategorie_combo.bind('<>', lambda event:self.callback('cb_pdm_kategorie_neu', self.pdm_category.get())) self.pdmkategorie_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -254,7 +254,7 @@ class RightFramePDM(AllFrames): self.neuaufbau_checkbutton = ttk.Checkbutton(frame, #text='ja', variable=self.neuaufbau, - command=lambda: self.callback("cb_neuaufbau", self.neuaufbau), + command=lambda:self.callback("cb_neuaufbau", self.neuaufbau), onvalue=True, offvalue=False) self.neuaufbau_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -267,7 +267,7 @@ class RightFramePDM(AllFrames): self.aushalbzeug_checkbutton = ttk.Checkbutton(frame, #text='neu', variable=self.aus_halbzeug_neu, - command=lambda: self.callback("cb_aus_halbzeug_neu", self.aus_halbzeug_neu), + command=lambda:self.callback("cb_aus_halbzeug_neu", self.aus_halbzeug_neu), onvalue=True, offvalue=False) self.aushalbzeug_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -295,7 +295,7 @@ class RightFramePDM(AllFrames): self.halbzeugoberflaeche_neu = tk.StringVar() self.halbzeugoberflaeche_combo = ttk.Combobox(frame, textvariable=self.halbzeugoberflaeche_neu) self.halbzeugoberflaeche_combo['state'] = 'readonly' - self.halbzeugoberflaeche_combo.bind('<>', lambda event:self.callback('cb_halbzeugoberflaeche', self.lebenszyklus_status_neu.get())) + self.halbzeugoberflaeche_combo.bind('<>', lambda event:self.callback('cb_halbzeugoberflaeche', self.halbzeugoberflaeche_neu.get())) self.halbzeugoberflaeche_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.rownum += 1 @@ -362,13 +362,15 @@ class RightFramePDM(AllFrames): "halbzeugnummer_neu": self.halbzeugnummer_neu.get(), "halbzeuglaenge_neu": self.halbzeuglaenge_neu.get(), "halbzeugoberflaeche_neu": self.halbzeugoberflaeche_neu.get(), + "halbzeugfarbe_neu": self.halbzeugfarbe_neu.get(), "lebenszyklus_status_neu": self.lebenszyklus_status_neu.get(), # ab hier die Dropdowns der Oberfläche auslesen. + "cb_pdm_kategorie_neu": self.pdmkategorie_combo['values'], + "cb_lebenszyklus_status_neu": self.lebenszyklusstatus_combo['values'], "cb_halbzeugoberflaeche": self.halbzeugoberflaeche_combo['values'], "cb_halbzeugfarbe": self.halbzeugfarbe_combo['values'], - "cb_lebenszyklus_status_neu": self.lebenszyklusstatus_combo['values'], "cb_3Dmodel_neu": self.model3d_combo['values'], - "cb_pdm_kategorie_neu": self.pdmkategorie_combo['values'], + } def data_from_model(self): @@ -385,6 +387,8 @@ class RightFramePDM(AllFrames): self.halbzeuglaenge_neu.set(data["halbzeuglaenge_neu"]) if 'halbzeugoberflaeche_neu' in data: self.halbzeugoberflaeche_neu.set(data["halbzeugoberflaeche_neu"]) + if 'halbzeugfarbe_neu' in data: + self.halbzeugfarbe_neu.set(data["halbzeugfarbe_neu"]) if 'lebenszyklus_status_neu' in data: self.lebenszyklus_status_neu.set(data["lebenszyklus_status_neu"]) if 'aus_halbzeug_neu' in data: @@ -412,7 +416,7 @@ class RightFrameBezeichnung(AllFrames): self.rownum = AllFrames.get_rows(self) col_left = 0 - categories = configs.Allgemein.get_options("Kategorien") + #categories = configs.Allgemein.get_options("Kategorien") # Bezeichnung 1 bezeichnung1_label = ttk.Label(frame, text="Bezeichnung 1:" ) @@ -468,8 +472,8 @@ class RightFrameHalbzeugOhneS(AllFrames): self.rownum = AllFrames.get_rows(self) col_left = 0 - categories = configs.Allgemein.get_options("Kategorien") - ruestcodes = configs.Allgemein.get_options("Ruestcode") + # categories = configs.Allgemein.get_options("Kategorien") + # ruestcodes = configs.Allgemein.get_options("Ruestcode") # Halbzeug ohne Sägeliste halbzeugOhneSaege_label = ttk.Label(frame, text="Halbzeug ohne Sägeliste:" ) @@ -495,7 +499,7 @@ class RightFrameHalbzeugOhneS(AllFrames): self.ruestcode_neu = tk.StringVar() self.ruestcode_neu_combo = ttk.Combobox(frame, textvariable=self.ruestcode_neu) - self.ruestcode_neu_combo['values'] = ruestcodes + #self.ruestcode_neu_combo['values'] = ruestcodes self.ruestcode_neu_combo['state'] = 'readonly' self.ruestcode_neu_combo.bind('<>', lambda event:self.callback('cb_ruestcode_neu', self.ruestcode_neu.get())) self.ruestcode_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -510,7 +514,7 @@ class RightFrameHalbzeugOhneS(AllFrames): self.fertigungsart_neu = tk.StringVar() self.fertigungsart_neu_combo = ttk.Combobox(frame, textvariable=self.fertigungsart_neu) - self.fertigungsart_neu_combo['values'] = categories + #self.fertigungsart_neu_combo['values'] = categories self.fertigungsart_neu_combo['state'] = 'readonly' self.fertigungsart_neu_combo.bind('<>', lambda event:self.callback('cb_fertigungsart_neu', self.fertigungsart_neu.get())) self.fertigungsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -525,7 +529,7 @@ class RightFrameHalbzeugOhneS(AllFrames): self.allgemeintoleranz_neu = tk.StringVar() self.allgemeintoleranz_neu_combo = ttk.Combobox(frame, textvariable=self.allgemeintoleranz_neu) - self.allgemeintoleranz_neu_combo['values'] = categories + #self.allgemeintoleranz_neu_combo['values'] = categories self.allgemeintoleranz_neu_combo['state'] = 'readonly' self.allgemeintoleranz_neu_combo.bind('<>', lambda event:self.callback('cb_allgemeintoleranz_neu', self.allgemeintoleranz_neu.get())) self.allgemeintoleranz_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -540,7 +544,7 @@ class RightFrameHalbzeugOhneS(AllFrames): self.fosGruppe_neu = tk.StringVar() self.fosGruppe_neu_combo = ttk.Combobox(frame, textvariable=self.fosGruppe_neu) - self.fosGruppe_neu_combo['values'] = categories + #self.fosGruppe_neu_combo['values'] = categories self.fosGruppe_neu_combo['state'] = 'readonly' self.fosGruppe_neu_combo.bind('<>', lambda event:self.callback('cb_fosGruppe_neu', self.fosGruppe_neu.get())) self.fosGruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -555,7 +559,7 @@ class RightFrameHalbzeugOhneS(AllFrames): self.kalkulationsart_neu = tk.StringVar() self.kalkulationsart_neu_combo = ttk.Combobox(frame, textvariable=self.kalkulationsart_neu) - self.kalkulationsart_neu_combo['values'] = categories + #self.kalkulationsart_neu_combo['values'] = categories self.kalkulationsart_neu_combo['state'] = 'readonly' self.kalkulationsart_neu_combo.bind('<>', lambda event:self.callback('cb_kalkulationsart_neu', self.kalkulationsart_neu.get())) self.kalkulationsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -642,7 +646,7 @@ class RightFrameBeschaffungsart(AllFrames): self.rownum = AllFrames.get_rows(self) col_left = 0 - categories = configs.Allgemein.get_options("Kategorien") + #categories = configs.Allgemein.get_options("Kategorien") # Beschaffungsart beschaffungsart_label = ttk.Label(frame, text="Beschaffungsart:" ) @@ -653,7 +657,7 @@ class RightFrameBeschaffungsart(AllFrames): self.beschaffungsart_neu = tk.StringVar() self.beschaffungsart_combo = ttk.Combobox(frame, textvariable=self.beschaffungsart_neu) - self.beschaffungsart_combo['values'] = categories + #self.beschaffungsart_combo['values'] = categories self.beschaffungsart_combo['state'] = 'readonly' self.beschaffungsart_combo.bind('<>', lambda event:self.callback('cb_beschaffungsart_neu', self.beschaffungsart_neu.get())) self.beschaffungsart_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -668,7 +672,7 @@ class RightFrameBeschaffungsart(AllFrames): self.mengeneinheit_neu = tk.StringVar() self.mengeneinheit_combo = ttk.Combobox(frame, textvariable=self.mengeneinheit_neu) - self.mengeneinheit_combo['values'] = categories + #self.mengeneinheit_combo['values'] = categories self.mengeneinheit_combo['state'] = 'readonly' self.mengeneinheit_combo.bind('<>', lambda event:self.callback('cb_mengeneinheit_neu', self.mengeneinheit_neu.get())) self.mengeneinheit_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -741,7 +745,7 @@ class RightFrameTOSGruppe(AllFrames): self.rownum = AllFrames.get_rows(self) col_left = 0 - categories = configs.Allgemein.get_options("Kategorien") + #categories = configs.Allgemein.get_options("Kategorien") # TOS-Gruppe tosgruppe_label = ttk.Label(frame, text="TOS-Gruppe:" ) @@ -763,7 +767,7 @@ class RightFrameTOSGruppe(AllFrames): self.dispogruppe_neu = tk.StringVar() self.dispogruppe_neu_combo = ttk.Combobox(frame, textvariable=self.dispogruppe_neu) - self.dispogruppe_neu_combo['values'] = categories + #self.dispogruppe_neu_combo['values'] = categories self.dispogruppe_neu_combo['state'] = 'readonly' self.dispogruppe_neu_combo.bind('<>', lambda event:self.callback('cb_dispogruppe_neu', self.dispogruppe_neu.get())) self.dispogruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -778,7 +782,7 @@ class RightFrameTOSGruppe(AllFrames): self.dispolaufgruppe_neu = tk.StringVar() self.dispolaufgruppe_neu_combo = ttk.Combobox(frame, textvariable=self.dispolaufgruppe_neu) - self.dispolaufgruppe_neu_combo['values'] = categories + #self.dispolaufgruppe_neu_combo['values'] = categories self.dispolaufgruppe_neu_combo['state'] = 'readonly' self.dispolaufgruppe_neu_combo.bind('<>', lambda event:self.callback('cb_dispolaufgruppe_neu', self.dispolaufgruppe_neu.get())) self.dispolaufgruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -816,7 +820,7 @@ class RightFrameTOSGruppe(AllFrames): self.hersteller_neu = tk.StringVar() self.hersteller_neu_combo = ttk.Combobox(frame, textvariable=self.hersteller_neu) - self.hersteller_neu_combo['values'] = categories + #self.hersteller_neu_combo['values'] = categories self.hersteller_neu_combo['state'] = 'readonly' self.hersteller_neu_combo.bind('<>', lambda event:self.callback('cb_hersteller_neu', self.hersteller_neu.get())) self.hersteller_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) @@ -1029,7 +1033,7 @@ class RightFrameVersion(AllFrames): self.rownum = AllFrames.get_rows(self) col_left = 0 - categories = configs.Allgemein.get_options("Kategorien") + #categories = configs.Allgemein.get_options("Kategorien") # Version version_label = ttk.Label(frame, text="Version:" ) diff --git a/lib/manage_configs.py b/lib/manage_configs.py index 6c15c0b..2231521 100644 --- a/lib/manage_configs.py +++ b/lib/manage_configs.py @@ -364,6 +364,10 @@ class OberflächeConfig(IniBasedConfig): """hole alle Oberflächen, welche als Sektionen in der config gegeben sind, also OberflächenbehandlungStahl, OberflächenbehandlungAluminium, ... """ return super().sections() + + def get_oberflächen_behandlungen(self): + """hole alle möglichen Arten von Oberflächenbehandlungen""" + return super().get_section_options('Oberflaechenbehandlungen') def get_oberfläche_of_type(self, otype): """hole alle möglichen Oberflächen Behandlungsarten zum gegebenen Material