From f471138b96f62583c414272ce1327fd8c9f00caf Mon Sep 17 00:00:00 2001 From: mistangl Date: Mon, 11 Mar 2024 17:42:59 +0100 Subject: [PATCH] =?UTF-8?q?clear=20funktionen=20f=C3=BCr=20die=20gesamte?= =?UTF-8?q?=20Oberfl=C3=A4che=20implementiert.=20Zuruecksetzen=20Knopf=20i?= =?UTF-8?q?mplementiert.=20Combo=20Felder=20immer=20readonly=20gesetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/caditem.py | 33 ++++++------ lib/controller.py | 19 ++++++- lib/gui.py | 133 ++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 155 insertions(+), 30 deletions(-) diff --git a/lib/caditem.py b/lib/caditem.py index fc8f554..97776b5 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -343,7 +343,6 @@ class CadItem(DataModel): translated_data["aenderungstext_sivas"] = default translated_data = self._transform_content_from_csv(translated_data) - self.set_gui_dict(translated_data) return translated_data def get_child_of_id(self, sivasId): @@ -786,7 +785,7 @@ class GuiLogic(): if pdm_kat != "Einzelteil" and pdm_kat != "Kaufteil": self.set_state('neuaufbau', 'disabled') else: - self.set_state('neuaufbau', 'normal') + self.set_state('neuaufbau', 'readonly') if selected is None: # Default Vorbelegung @@ -880,7 +879,7 @@ class GuiLogic(): # setze die Inhalte der abhängigen Comboboxen neu if aus_halbzeug == True: - self.set_state('cb_halbzeugfarbe', 'normal') + self.set_state('cb_halbzeugfarbe', 'readonly') if halbzeugoberflaeche == "eloxieren": farben_elox = self._config.Farben.get_farben_eloxieren() if selected is None: @@ -983,7 +982,7 @@ class GuiLogic(): if ruestcode == "HZS Halbzeuge Sägeteile": cblist = self._config.Allgemein.get_options("HalbzeugOhneSaegeliste") self.set_state('cb_halbzeugOhneSaege_neu', 'disabled') - self.set_state('cb_halbzeugOhneSaege_neu', 'normal') + self.set_state('cb_halbzeugOhneSaege_neu', 'readonly') ret['cb_halbzeugOhneSaege_neu'] = cblist @@ -1035,7 +1034,7 @@ class GuiLogic(): if pdm_kategorie_neu == "Kaufteil" or pdm_kategorie_neu == "Schweissbaugruppe": self.set_state('cb_fertigungsart_neu', 'disabled') else: - self.set_state('cb_fertigungsart_neu', 'normal') + self.set_state('cb_fertigungsart_neu', 'readonly') if pdm_kategorie_neu == "Baugruppe": cblist = self._config.Fertigung.get_list_in_section("FertigungsartenBaugruppe") @@ -1147,7 +1146,7 @@ class GuiLogic(): if pdm_kategorie_neu == "Kaufteil" or pdm_kategorie_neu == "Schweissbaugruppe": self.set_state('cb_allgemeintoleranz_neu', 'disabled') else: - self.set_state('cb_allgemeintoleranz_neu', 'normal') + self.set_state('cb_allgemeintoleranz_neu', 'readonly') return ret @@ -1157,7 +1156,7 @@ class GuiLogic(): fos_gruppe = self._model.get_gui_data("fosGruppe_sivas") ret['fosGruppe_neu'] = '' - self.set_state('cb_fosGruppe_neu', 'normal') + self.set_state('cb_fosGruppe_neu', 'readonly') if pdm_kategorie_neu == "Kaufteil": cblist = self._config.Allgemein.get_options("FOS_Gruppe") self.set_state('cb_fosGruppe_neu', 'disabled') @@ -1206,7 +1205,7 @@ class GuiLogic(): if pdm_kategorie_neu == "Baugruppe": cblist = self._config.Allgemein.get_options("Kalkulationsart") - self.set_state('cb_kalkulationsart_neu', 'normal') + self.set_state('cb_kalkulationsart_neu', 'readonly') else: cblist = None self.set_state('cb_kalkulationsart_neu', 'disabled') @@ -1234,7 +1233,7 @@ class GuiLogic(): if pdm_kategorie_neu == "Einzelteil": cblist = self._config.Allgemein.get_options("Beschaffungsart") - self.set_state('cb_beschaffungsart_neu', 'normal') + self.set_state('cb_beschaffungsart_neu', 'readonly') else: cblist = None self.set_state('cb_beschaffungsart_neu', 'disabled') @@ -1277,7 +1276,7 @@ class GuiLogic(): elif rcode == "HZS Halbzeuge Sägeteile": if pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Kaufteil": cblist = self._config.Allgemein.get_options("EinheitAusw") - self.set_state('cb_mengeneinheit_neu', 'normal') + self.set_state('cb_mengeneinheit_neu', 'readonly') elif pdm_kategorie_neu == "Schweissbaugruppe": self.set_state('cb_mengeneinheit_neu', 'disabled') else: @@ -1323,7 +1322,7 @@ class GuiLogic(): if rcode == "SRC Standard Rüstcode" or rcode == "Trümmerbaugruppe": self.set_state('cb_halbzeug_neu', 'disabled') elif rcode == "HZS Halbzeuge Sägeteile": - self.set_state('cb_halbzeug_neu', 'normal') + self.set_state('cb_halbzeug_neu', 'readonly') else: self.set_state('cb_halbzeug_neu', 'disabled') @@ -1377,7 +1376,7 @@ class GuiLogic(): ret['cb_hersteller_neu'] = cblist if pdm_kategorie_neu == "Kaufteil": - self.set_state('cb_hersteller_neu', 'normal') + self.set_state('cb_hersteller_neu', 'readonly') else: self.set_state('cb_hersteller_neu', 'disabled') @@ -1423,7 +1422,7 @@ class GuiLogic(): self.set_state('cb_werkstofftyp_neu', 'disabled') else: cblist = self._config.Werkstoffe.get_werkstoff_namen() - self.set_state('cb_werkstofftyp_neu', 'normal') + self.set_state('cb_werkstofftyp_neu', 'readonly') else: cblist = None self.set_state('cb_werkstofftyp_neu', 'disabled') @@ -1482,7 +1481,7 @@ class GuiLogic(): if aus_halbzeug == True: self.set_state('cb_material_neu', 'disabled') else: - self.set_state('cb_material_neu', 'normal') + self.set_state('cb_material_neu', 'readonly') else: self.set_state('cb_material_neu', 'disbled') @@ -1543,7 +1542,7 @@ class GuiLogic(): if aus_halbzeug == True: self.set_state('cb_oberflaeche_neu', 'disabled') else: - self.set_state('cb_oberflaeche_neu', 'normal') + self.set_state('cb_oberflaeche_neu', 'readonly') ret['oberflaeche_neu'] = '' if selected is None: @@ -1589,9 +1588,9 @@ class GuiLogic(): oberflaeche_neu == "lackieren" or \ oberflaeche_neu == "Masterbatch (Grundfarbe)" or \ oberflaeche_neu == "pulverbeschichten": - self.set_state('cb_farbe_neu', 'disabled') + self.set_state('cb_farbe_neu', 'readonly') else: - self.set_state('cb_farbe_neu', 'normal') + self.set_state('cb_farbe_neu', 'disabled') if selected is None: # Default Vorbelegung diff --git a/lib/controller.py b/lib/controller.py index 64d8e31..cf907d1 100644 --- a/lib/controller.py +++ b/lib/controller.py @@ -140,10 +140,14 @@ class Controller(Observer): self._model.set_current_item_id(cid) self._load_cid_data2model(cid) + def get_current_item_id(self): + return self._model.get_current_item_id() + def _load_cid_data2model(self, cid): """lädt alle nötigen Daten für diese ID """ # falls eine .json Datei davon im Work Ordner existiert, dann diese zuerst versuchen ins Modell zu laden + self._view.clear_rightframes() isok = self._model.from_json_file(self.get_env("out"), cid) if isok == False: # ansonsten die .csv Datei mit den SIVAS Infos aus data holen @@ -154,6 +158,7 @@ class Controller(Observer): # und diese in der Gui setzen self._model.clear() set_data = self._model.csv2guidata(loaded) + self.set_gui_dict(set_data) self._model.set_gui_defaults() self.refresh_gui() @@ -222,7 +227,7 @@ class Controller(Observer): self._model.set_gui_dict(data) self.migrieren() elif key == 'cb_zurücksetzen': - pass + self.zuruecksetzen() elif key == 'cb_suche_asm': # hole dir den in die gui eingetragene Nummer current_asmid = self.data_from_view('asm_id') @@ -240,7 +245,6 @@ class Controller(Observer): model_values = self._model.callback(key, value) if model_values: self.set_gui_dict(model_values) - self.refresh_gui() # gib dem observer Bescheid, was aufgerufen wurde self.notify(self._model, key,value) @@ -249,6 +253,17 @@ class Controller(Observer): def migrieren(self): self._model.check() + def zuruecksetzen(self): + cid = self.get_current_item_id() + self._model.clear() + self._view.clear_rightframes() + csv_data = self._model.sivas_data_from_csv(str(cid)) + # transform the csv keys into keys used behind the gui + gui_data = self._model.csv2guidata(csv_data) + self.set_gui_dict(gui_data) + # create dropdown and other defaults + self._model.set_gui_defaults() + def suche_3d(self): pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu") diff --git a/lib/gui.py b/lib/gui.py index 84c8192..629523d 100644 --- a/lib/gui.py +++ b/lib/gui.py @@ -196,6 +196,10 @@ class LeftFrameAsm(AllFrames): # not yet implemented. Not used pass + def clear(self): + # not yet implemented. Not used + pass + class RightFrameLabels(AllFrames): def __init__(self, frame, nrow=0): @@ -220,7 +224,6 @@ class RightFrameLabels(AllFrames): separator2.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) self.rownum += 1 - def get_data(self): return { "teilenummer": self.teilenummer_text.get(), @@ -236,6 +239,10 @@ class RightFrameLabels(AllFrames): if 'teilenummer' in data: self.teilenummer_text["state"] = data['teilenummer'] + def clear(self): + self.teilenummer_text.set("") + + class RightFramePDM(AllFrames): def __init__(self, frame, nrow=0): AllFrames.__init__(self, nrow) @@ -442,7 +449,25 @@ class RightFramePDM(AllFrames): # buttons if 'cb_3dsuchen' in data: self.suche3d_button['state'] =data["cb_3dsuchen"] + + def clear(self): + self.datenbank.set('') + self.pdm_category.set('') + self.neuaufbau.set(False) + self.aus_halbzeug_neu.set(False) + self.halbzeugnummer_neu.set('') + self.halbzeuglaenge_neu.set('') + self.halbzeugoberflaeche_neu.set('') + self.halbzeugfarbe_neu.set('') + self.lebenszyklus_status_neu.set('') + self.model3d_neu.set('') + self.pdmkategorie_combo['values'] = '' + self.halbzeugoberflaeche_combo['values'] = '' + self.halbzeugfarbe_combo['values'] = '' + self.lebenszyklusstatus_combo['values'] = '' + self.model3d_combo['values'] = '' + class RightFrameBezeichnung(AllFrames): def __init__(self, frame, nrow=0): AllFrames.__init__(self, nrow) @@ -532,6 +557,12 @@ class RightFrameBezeichnung(AllFrames): if 'bezeichnung2_sivas' in data: self.bezeichnung2_sivas['state'] = data["bezeichnung2_sivas"] + def clear(self): + self.bezeichnung1_sivas.set('') + self.bezeichnung1_neu.set('') + self.bezeichnung2_sivas.set('') + + class RightFrameHalbzeugOhneS(AllFrames): def __init__(self, frame, nrow=0): AllFrames.__init__(self, nrow) @@ -744,6 +775,27 @@ class RightFrameHalbzeugOhneS(AllFrames): if 'cb_kalkulationsart_neu' in data: self.kalkulationsart_neu_combo['state'] = data['cb_kalkulationsart_neu'] + def clear(self): + self.halbzeugOhneSaege_sivas.set('') + self.halbzeugOhneSaege_neu.set('') + self.ruestcode_sivas.set('') + self.ruestcode_neu.set('') + self.fertigungsart_sivas.set('') + self.fertigungsart_neu.set('') + self.allgemeintoleranz_sivas.set('') + self.allgemeintoleranz_neu.set('') + self.fosGruppe_sivas.set('') + self.fosGruppe_neu.set('') + self.kalkulationsart_sivas.set('') + self.kalkulationsart_neu.set('') + self.halbzeugOhneSaege_neu_combo['values'] = '' + self.ruestcode_neu_combo['values'] = '' + self.fertigungsart_neu_combo['values'] = '' + self.allgemeintoleranz_neu_combo['values'] = '' + self.fosGruppe_neu_combo['values'] = '' + self.kalkulationsart_neu_combo['values'] = '' + + class RightFrameBeschaffungsart(AllFrames): def __init__(self, frame, nrow=0): AllFrames.__init__(self, nrow) @@ -804,7 +856,6 @@ class RightFrameBeschaffungsart(AllFrames): separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) self.rownum += 1 - def get_data(self): return { "beschaffungsart_sivas": self.beschaffungsart_sivas.get(), @@ -863,6 +914,18 @@ class RightFrameBeschaffungsart(AllFrames): if "cb_halbzeug_neu" in data: self.halbzeug_combo['state'] = data["cb_halbzeug_neu"] + def clear(self): + self.beschaffungsart_sivas.set('') + self.beschaffungsart_neu.set('') + self.mengeneinheit_sivas.set('') + self.mengeneinheit_neu.set('') + self.halbzeug_sivas.set('') + self.halbzeug_neu.set('') + self.beschaffungsart_combo['values'] = '' + self.mengeneinheit_combo['values'] = '' + self.halbzeug_combo['values'] = '' + + class RightFrameTOSGruppe(AllFrames): def __init__(self, frame, nrow=0): AllFrames.__init__(self, nrow) @@ -969,7 +1032,6 @@ class RightFrameTOSGruppe(AllFrames): separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) self.rownum += 1 - def get_data(self): return { "tosgruppe_neu": self.tosgruppe_neu.get(), @@ -1067,7 +1129,26 @@ class RightFrameTOSGruppe(AllFrames): self.dispolaufgruppe_neu_combo['state'] = data["cb_dispolaufgruppe_neu"] if "cb_hersteller_neu" in data: self.hersteller_neu_combo['state'] = data["cb_hersteller_neu"] - pass + + def clear(self): + self.tosgruppe_sivas.set('') + self.tosgruppe_neu.set('') + self.dispogruppe_sivas.set('') + self.dispogruppe_neu.set('') + self.dispolaufgruppe_sivas.set('') + self.dispolaufgruppe_neu.set('') + self.ersatzfuer_sivas.set('') + self.ersatzfuer_neu.set('') + self.ersetztdurch_sivas.set('') + self.ersetztdurch_neu.set('') + self.hersteller_sivas.set('') + self.hersteller_neu.set('') + self.herstteilenr_sivas.set('') + self.herstteilenr_neu.set('') + self.dispogruppe_neu_combo['values'] = '' + self.dispolaufgruppe_neu_combo['values'] = '' + self.hersteller_neu_combo['values'] = '' + class RightFrameWerkstoffdiskrepanz(AllFrames): def __init__(self, frame, nrow=0): @@ -1211,6 +1292,19 @@ class RightFrameWerkstoffdiskrepanz(AllFrames): if 'cb_farbe_neu' in data: self.farbe_neu_combo['state'] = data["cb_farbe_neu"] + def clear(self): + self.werkstoffdiskr_sivas.set(False) + self.werkstofftyp_neu.set('') + self.material_sivas.set('') + self.material_neu.set('') + self.oberflaeche_neu.set('') + self.farbe_neu.set('') + self.werkstofftyp_neu_combo['values'] = '' + self.material_neu_combo['values'] = '' + self.oberflaeche_neu_combo['values'] = '' + self.farbe_neu_combo['values'] = '' + + class RightFrameVersion(AllFrames): def __init__(self, frame, nrow=0): AllFrames.__init__(self, nrow) @@ -1268,7 +1362,6 @@ class RightFrameVersion(AllFrames): separator.grid(column=col_left, columnspan=3, row=self.rownum, sticky=tk.EW, padx=3, pady=3) self.rownum += 1 - def get_data(self): return { "version_sivas": self.version_sivas.get(), @@ -1322,12 +1415,16 @@ class RightFrameVersion(AllFrames): if 'freigabevermerk_neu' in data: self.freigabevermerk_neu['state'] = data["freigabevermerk_neu"] - def clear_texts(self): + def clear(self): + self.version_sivas.set('') + self.aenderungsindex_sivas.set('') + self.aenderungsindex_neu.set('') self.aenderungstext_sivas.delete('1.0', 'end') self.aenderungstext_neu.delete('1.0', 'end') self.freigabevermerk_sivas.delete('1.0', 'end') self.freigabevermerk_neu.delete('1.0', 'end') + class RightFrameZusatzinfos(AllFrames): def __init__(self, frame, nrow=0): AllFrames.__init__(self, nrow) @@ -1390,7 +1487,7 @@ class RightFrameZusatzinfos(AllFrames): if 'zusatzinfos_bendef_text' in data: self.zusatzinfos_bendef_text['state'] = data["zusatzinfos_bendef_text"] - def clear_texts(self): + def clear(self): self.zusatzinfos_auto_text.delete('1.0', 'end') self.zusatzinfos_bendef_text.delete('1.0', 'end') @@ -1488,7 +1585,6 @@ class App(): def data_from_model(self): """ methode zum Auslesen aller Daten der Oberfläche aus dem Modell """ - self.clear_texts() self.lf1.data_from_model() self.lf2.data_from_model() @@ -1502,9 +1598,24 @@ class App(): self.rf8.data_from_model() self.rf9.data_from_model() - def clear_texts(self): - self.rf8.clear_texts() - self.rf9.clear_texts() + def clear_leftframes(self): + self.lf1.clear() + self.lf2.clear() + + def clear_rightframes(self): + self.rf1.clear() + self.rf2.clear() + self.rf3.clear() + self.rf4.clear() + self.rf5.clear() + self.rf6.clear() + self.rf7.clear() + self.rf8.clear() + self.rf9.clear() + + def clear(self): + self.clear_rightframes() + self.clear_leftframes() def set_states(self): # not used. So not implemented: