From 00f180ea39c56634828bd8aaa512794588391465 Mon Sep 17 00:00:00 2001 From: mistangl Date: Tue, 5 Mar 2024 17:45:00 +0100 Subject: [PATCH] =?UTF-8?q?Verweise=20f=C3=BCr=20die=20Pflichtfelder=20aus?= =?UTF-8?q?=20der=20spec=20rein=20kopiert.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/caditem.py | 105 +++++++++++++++++++++++++++++++++++++++++----- lib/controller.py | 6 +-- lib/gui.py | 12 +++--- 3 files changed, 103 insertions(+), 20 deletions(-) diff --git a/lib/caditem.py b/lib/caditem.py index ed8c2de..1977b8e 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -284,6 +284,11 @@ class CadItem(DataModel): else: translated_data["beschaffungsart_neu"] = "" + # Spezial Freigabevermerk + if "freigabevermerk_sivas" in translated_data: + text = translated_data["freigabevermerk_sivas"] + translated_data["freigabevermerk_sivas"] = re.sub(r";", " /", text, flags=re.I) + # Spezial Hersteller: aus "80312 - Rehau AG & Co." wird "Rehau AG & Co." if "hersteller_sivas" in translated_data: text = translated_data["hersteller_sivas"] @@ -300,8 +305,11 @@ class CadItem(DataModel): # Spezial: Befüllung von Änderungstext mit dem Author, falls in der .csv vorhanden if "Indexerfasser" in data and "Aenderungstext" in data: - translated_data["aenderungstext_sivas"] = '{aenderungstext} (von {author})'.format(aenderungstext=data["Aenderungstext"], author=data["Indexerfasser"]) - # Indexerfasser wird nicht in der gui verwaltet. Deshalb Modifikation aus den Rohdaten + if data["Indexerfasser"] is not None: + translated_data["aenderungstext_sivas"] = '{aenderungstext} (von {author})'.format(aenderungstext=data["Aenderungstext"], author=data["Indexerfasser"]) + # Indexerfasser wird nicht in der gui verwaltet. Deshalb Modifikation aus den Rohdate + else: + translated_data["aenderungstext_sivas"] = data["Aenderungstext"] translated_data = self._transform_content_from_csv(translated_data) self.set_gui_dict(translated_data) @@ -426,6 +434,81 @@ class CadItem(DataModel): def message_error(self, title, key): return self._controller.message_error(title, key) + + def check(self): + self.check_pflichtfelder() + + def check_pflichtfelder(self): + # Datenbank + # Pflichtfeld: Ja, immer + # Teilenummer + # Pflichtfeld: Ja, immer + # Datenbank + # Pflichtfeld: Ja, immer + # PDM-Kategorie + # Pflichtfeld: Ja, immer + # Halbzeugfarbe + # Logik, die steuert, wann es sich um ein Pflichtfeld handelt: + # IF Halbzeugoberfläche == "eloxieren" OR "lackieren" OR "pulverbeschichten": + # Pflichtfeld = True + # ELSE: + # Pflichtfeld = False + # Lebenszyklusstatus + # Pflichtfeld: Ja, immer + # 3D-Modell + # Pflichtfeld: Ja, immer + # Bezeichnung 1 + # Pflichtfeld: Ja, immer + # Bezeichnung 2 + # Pflichtfeld: Nein + # Halbzeug ohne Sägeliste + # Pflichtfeld: Ja, immer + # Rüstcode + # Pflichtfeld: Ja, immer + # Fertigungsart + # Logik, die steuert, wann es sich um ein Pflichtfeld handelt: + # IF PDM-Kategorie == "Einzelteil" OR "Schweissbaugruppe": + # Pflichtfeld = True + # ELSE IF PDM-Kategorie == "Baugruppe" OR "Kaufteil": + # Pflichtfeld = False + # Allgemeintoleranz + # Logik, die steuert, wann es sich um ein Pflichtfeld handelt: + # FOS-Gruppe + # Pflichtfeld: Ja, immer + # Kalkulationsart + # Pflichtfeld: Ja, immer + # Beschaffungsart + # Pflichtfeld: Ja, immer + # Mengeneinheit + # Pflichtfeld: Ja, immer + # Halbzeug + # Pflichtfeld: Ja, immer + # TOS-Gruppe + # Pflichtfeld: Ja, immer + # Dispogruppe + # Pflichtfeld: Ja, immer + # Dispolaufgruppe + # Pflichtfeld: Ja, immer + # Werkstoffdiskrepanz + # Pflichtfeld: Nein + + # Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) + # IF Aus Halbzeug == True (Haken gesetzt): + # Pflichtfeld = False + # ELSE: + # Pflichtfeld = True + + # Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) + # Änderungstext + # Pflichtfeld: Ja, immer + # Freigabevermerk + # Pflichtfeld: Ja, immer + # Automatische Zusatzinformationen + # Pflichtfeld: Nein + # Allgemeine Prüfungen: + # Solange nicht alle Pflichtfelder einen Wert aufweisen, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox erscheinen, in der alle Pflichtfelder aufgelistet sind, die keinen Wert aufweisen + pass + class CadItemRepository: """ container class for all CadItems in the local folder @@ -546,16 +629,16 @@ class GuiLogic(): ret = list() if key == 'cb_pdm_kategorie_neu': ret = ['cb_neuaufbau', 'cb_aus_halbzeug_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_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'] elif key == 'cb_neuaufbau': ret = [] elif key == 'cb_aus_halbzeug_neu': - ret = ['cb_halbzeugoberflaeche', 'cb_halbzeugfarbe', "cb_werkstoffdiskrepanz", "cb_werkstofftyp_neu"] - elif key == "cb_halbzeugoberflaeche": + ret = ['cb_halbzeugoberflaeche', 'cb_halbzeugfarbe', 'cb_werkstoffdiskrepanz', 'cb_werkstofftyp_neu'] + elif key == 'cb_halbzeugoberflaeche': ret = ['cb_halbzeugfarbe'] - elif key == "cb_halbzeugfarbe": + elif key == 'cb_halbzeugfarbe': ret = [] elif key == 'cb_lebenszyklus_status_neu': ret = [] @@ -564,11 +647,11 @@ class GuiLogic(): elif key == 'cb_halbzeugOhneSaege_neu': ret = [] elif key == 'cb_ruestcode_neu': - ret = [ 'cb_halbzeugOhneSaege_neu', "cb_mengeneinheit_neu", "cb_halbzeug_neu"] + ret = [ 'cb_halbzeugOhneSaege_neu', 'cb_mengeneinheit_neu', 'cb_halbzeug_neu'] elif key == 'cb_fertigungsart_neu': ret = [] elif key == 'cb_allgemeintoleranz_neu': - ret = ["cb_fertigungsart_neu"] + ret = ['cb_fertigungsart_neu'] elif key == 'cb_fosGruppe_neu': ret = [] elif key == 'cb_kalkulationsart_neu': @@ -592,7 +675,7 @@ class GuiLogic(): elif key == 'cb_material_neu': ret = [] elif key == 'cb_oberflaeche_neu': - ret = ["cb_farbe_neu"] + ret = ['cb_farbe_neu'] elif key == 'cb_farbe_neu': ret = [] # Aktionen der Knöpfe werden vom Controller verarbeitet diff --git a/lib/controller.py b/lib/controller.py index 4af5102..1e42e74 100644 --- a/lib/controller.py +++ b/lib/controller.py @@ -236,6 +236,9 @@ class Controller(Observer): # gib dem observer Bescheid, was aufgerufen wurde self.notify(self._model, key,value) self.refresh_gui() + + def migrieren(self): + self._model.check() def suche_3d(self): pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") @@ -248,8 +251,5 @@ class Controller(Observer): self._model.set_gui_data('cb_3Dmodel_neu', '') - - - if __name__ == "__main__": pass diff --git a/lib/gui.py b/lib/gui.py index 885bad1..e114acf 100644 --- a/lib/gui.py +++ b/lib/gui.py @@ -1124,10 +1124,10 @@ class RightFrameVersion(AllFrames): self.freigabevermerk_neu.insert('1.0', data["freigabevermerk_neu"]) def clear_texts(self): - 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") + 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): @@ -1181,8 +1181,8 @@ class RightFrameZusatzinfos(AllFrames): self.zusatzinfos_bendef_text.insert('1,0', data["zusatzinfos_bendef_text"]) def clear_texts(self): - self.zusatzinfos_auto_text.delete('1.0', "end") - self.zusatzinfos_bendef_text.delete('1.0', "end") + self.zusatzinfos_auto_text.delete('1.0', 'end') + self.zusatzinfos_bendef_text.delete('1.0', 'end') class App(): def __init__(self, root):