set_env und get_env an Controller weitergeben, um Pfade zu erhalten und csv Dateien bzw. lokale Datenbank lesen zu können

This commit is contained in:
2024-01-31 17:07:35 +01:00
parent 13c1e399d2
commit a1e688636d
+70 -11
View File
@@ -1,7 +1,7 @@
import os
""" """
Contains the logic for the MVC of CreoMigrate Gui Contains the logic for the MVC of CreoMigrate Gui
""" """
# Infos und Fehlermeldungen die ausgelöst werden können # Infos und Fehlermeldungen die ausgelöst werden können
messages = { messages = {
"rüstcode_infos": 'Bitte Rüstcode auswählen!', "rüstcode_infos": 'Bitte Rüstcode auswählen!',
@@ -72,9 +72,12 @@ gui_data_keys = [
"zusatzinfos_auto_text", "zusatzinfos_auto_text",
"zusatzinfos_bendef_text", "zusatzinfos_bendef_text",
# Felder der Comboboxen. benannt wie deren callbacks # Felder der Comboboxen. benannt wie deren callbacks
"cb_pdm_kategorie_neu",
"cb_halbzeug_neu",
"cb_halbzeugoberflaeche",
"cb_halbzeugfarbe",
"cb_lebenszyklus_status_neu", "cb_lebenszyklus_status_neu",
"cb_3Dmodel_neu", "cb_3Dmodel_neu",
"cb_pdm_kategorie_neu",
"cb_halbzeugOhneSaege_neu", "cb_halbzeugOhneSaege_neu",
"cb_ruestcode_neu", "cb_ruestcode_neu",
"cb_fertigungsart_neu", "cb_fertigungsart_neu",
@@ -83,20 +86,18 @@ gui_data_keys = [
"cb_kalkulationsart_neu", "cb_kalkulationsart_neu",
"cb_beschaffungsart_neu", "cb_beschaffungsart_neu",
"cb_mengeneinheit_neu", "cb_mengeneinheit_neu",
"cb_halbzeug_neu",
"cb_dispogruppe_neu", "cb_dispogruppe_neu",
"cb_dispolaufgruppe_neu", "cb_dispolaufgruppe_neu",
"cb_hersteller_neu", "cb_hersteller_neu",
"cb_werkstofftyp_neu", "cb_werkstofftyp_neu",
"cb_material_neu", "cb_material_neu",
"cb_oberflaeche_neu", "cb_oberflaeche_neu",
"cb_farbe_neu", "cb_farbe_neu",
# Buttons # buttons
"cb_suche_asm",
"cb_speichern", "cb_speichern",
"cb_migrieren", "cb_migrieren",
"cb_zurücksetzen", "cb_zurücksetzen",
] ]
class Controller(): class Controller():
@@ -109,6 +110,25 @@ class Controller():
self.set_model(model) self.set_model(model)
self.set_view(view) self.set_view(view)
self.logic = None self.logic = None
self.env = None
def set_env(self, env):
self.environment = env
def get_env(self, env_path):
if self.environment == None:
raise Exception("No environment set")
if env_path == "lib":
ret = self.environment.lib_dir
elif env_path == "data":
ret = self.environment.data_dir
elif env_path == "out":
ret = self.environment.out_dir
elif env_path == "cfg":
ret = self.environment.cfg_dir
else:
raise Exception("this path is not defined "+env_path)
return ret
def add_logic(self, logic): def add_logic(self, logic):
self.logic = logic self.logic = logic
@@ -264,11 +284,34 @@ class GuiLogic():
if k in self.excel_to_gui and v is not None: if k in self.excel_to_gui and v is not None:
ret[self.excel_to_gui[k]] = v ret[self.excel_to_gui[k]] = v
# Spezial: Befüllung von Änderungstext mit dem Author, falls vorhanden # Spezial: Befüllung von Änderungstext mit dem Author, falls in der .csv vorhanden
if "Indexerfasser" in data and "Aenderungstext" in data: if "Indexerfasser" in data and "Aenderungstext" in data:
ret["aenderungstext_sivas"] = '{aenderungstext} (von {author})'.format(aenderungstext=data["Aenderungstext"], author=data["Indexerfasser"]) 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
# set defaults from given logic
r1 = self.callback("cb_neuaufbau", None)
ret.update(r1)
r2 = self.callback("cb_aus_halbzeug_neu", None)
ret.update(r2)
# add entry dependencies
dep = self.entry_dependencies(ret)
ret.update(dep)
return ret return ret
def entry_dependencies(self, data):
ret = dict()
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): def callback(self, key, value):
"""gibt ein dict zurück, welches neu im Modell gesetzt wird""" """gibt ein dict zurück, welches neu im Modell gesetzt wird"""
@@ -277,9 +320,9 @@ class GuiLogic():
if key == 'cb_pdm_kategorie_neu': if key == 'cb_pdm_kategorie_neu':
pass pass
elif key == 'cb_neuaufbau': elif key == 'cb_neuaufbau':
pass return self.neuaufbau(value)
elif key == 'cb_aus_halbzeug_neu': elif key == 'cb_aus_halbzeug_neu':
pass return self.aus_halbzeug_neu(value)
elif key == 'cb_lebenszyklus_status_neu': elif key == 'cb_lebenszyklus_status_neu':
pass pass
elif key == 'cb_3Dmodel_neu': elif key == 'cb_3Dmodel_neu':
@@ -317,7 +360,7 @@ class GuiLogic():
elif key == 'cb_oberflaeche_neu': elif key == 'cb_oberflaeche_neu':
pass pass
elif key == 'cb_farbe_neu': elif key == 'cb_farbe_neu':
self.farbe(value) return self.farbe(value)
elif key == 'cb_speichern': elif key == 'cb_speichern':
pass pass
elif key == 'cb_migrieren': elif key == 'cb_migrieren':
@@ -329,6 +372,22 @@ class GuiLogic():
else: else:
raise Exception("this callback does not exist "+key) raise Exception("this callback does not exist "+key)
def 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):
ret = dict()
pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
if pdm_kat == "Einzelteil":
pass
else:
ret["aus_halbzeug_neu"] = False
return ret
def werkstofftyp(self, selected_werkstoff): def werkstofftyp(self, selected_werkstoff):
"""bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche""" """bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche"""