gui Aufruf mit einem Assembly holt sich alle nötigen Infos von den DAtenbanken.
This commit is contained in:
+93
-84
@@ -84,29 +84,25 @@ class Controller():
|
||||
# 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
|
||||
# nur die red-id Daten können geladen werden.
|
||||
red_ids = self.model.get_red_ids()
|
||||
if not cid in red_ids:
|
||||
return
|
||||
|
||||
# TODO save current given data. In case, ask whether you should save or drop
|
||||
self.set_gui_data('teilenummer', cid)
|
||||
|
||||
# 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()
|
||||
# falls eine .json Datei davon im Work Ordner existiert, dann diese zuerst versuchen ins Modell zu laden
|
||||
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
|
||||
loaded = self.model.sivas_data_from_csv(cid)
|
||||
if loaded == None:
|
||||
print("no file found "+ cid)
|
||||
else:
|
||||
# und diese in der Gui setzen
|
||||
set_data = self.model.csv2guidata(loaded)
|
||||
self.refresh_gui()
|
||||
|
||||
def get_current_item_id(self):
|
||||
return self.get_gui_data('teilenummer')
|
||||
@@ -188,70 +184,34 @@ class GuiLogic():
|
||||
self.config = configs
|
||||
# hier sind alle Callbacks bzw. deren Comboboxen
|
||||
|
||||
# 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 = {
|
||||
"Teilenummer":"teilenummer",
|
||||
"Bezeichnung1":"bezeichnung1_sivas",
|
||||
"Bezeichnung2":"bezeichnung2_sivas",
|
||||
"Beschaffungsart":"beschaffungsart_sivas",
|
||||
"Mengeneinheit":"mengeneinheit_sivas",
|
||||
"Halbzeug":"halbzeug_sivas",
|
||||
"TOS_Gruppe":"tosgruppe_sivas",
|
||||
"Dispogruppe":"dispolaufgruppe_sivas",
|
||||
"Dispolaufgruppe":"dispolaufgruppe_sivas",
|
||||
"ErsatzFuer":"ersatzfuer_neu",
|
||||
"ErsetztDurch":"ersetztdurch_neu",
|
||||
"AktuellerIndex":"aenderungsindex_sivas",
|
||||
"Hersteller":"hersteller_sivas",
|
||||
"HerstellerTeilenummer":"herstteilenr_sivas",
|
||||
"Version":"version_sivas",
|
||||
"HalbzeugExtern":"halbzeug_sivas",
|
||||
"Werkstoff":"werkstofftyp_sivas",
|
||||
"Oberfläche":"cb_oberflaeche_neu",
|
||||
# "Truemmer":"truemmer",
|
||||
# "HzOhneSaegeliste":"",
|
||||
"Ruestcode":"ruestcode_sivas",
|
||||
"Fertigungsart":"fertigungsart_sivas",
|
||||
"FosGruppe":"fosGruppe_sivas",
|
||||
"Kalkulationsart":"kalkulationsart_sivas",
|
||||
#"Indexerfasser":"",
|
||||
"Aenderungstext":"aenderungstext_sivas",
|
||||
"Freigabevermerk":"freigabevermerk_sivas",
|
||||
# "Indexbearbeiter":"in"
|
||||
}
|
||||
|
||||
def csv2guidata(self, data):
|
||||
ret = dict()
|
||||
for k,v in data.items():
|
||||
if k in self.excel_to_gui and v is not None:
|
||||
ret[self.excel_to_gui[k]] = v
|
||||
|
||||
# Spezial: Befüllung von Änderungstext mit dem Author, falls in der .csv vorhanden
|
||||
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)
|
||||
|
||||
def create_gui_dependencies(self, data):
|
||||
# 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)
|
||||
self.model.set_gui_dict(r1)
|
||||
r2 = self.callback("cb_aus_halbzeug_neu", None)
|
||||
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)
|
||||
# r0 = self.callback("cb_pdm_kategorie_neu", None)
|
||||
# self.model.set_gui_dict(r0)
|
||||
# r1 = self.callback("cb_neuaufbau", None)
|
||||
# self.model.set_gui_dict(r1)
|
||||
# r2 = self.callback("cb_aus_halbzeug_neu", None)
|
||||
# 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)
|
||||
self.model.set_gui_dict(dep)
|
||||
return ret
|
||||
|
||||
def entry_dependencies(self, data):
|
||||
return {}
|
||||
value = None
|
||||
r = self.cb_pdm_kategorie_neu(value)
|
||||
self.model.set_gui_dict(r)
|
||||
r= self.cb_neuaufbau(value)
|
||||
self.model.set_gui_dict(r)
|
||||
r= self.cb_aus_halbzeug_neu(value)
|
||||
self.model.set_gui_dict(r)
|
||||
r= self.cb_halbzeugoberflaeche(value)
|
||||
self.model.set_gui_dict(r)
|
||||
r= self.cb_halbzeugfarbe(value)
|
||||
self.model.set_gui_dict(r)
|
||||
r= self.cb_lebenszyklus_status_neu(value)
|
||||
self.model.set_gui_dict(r)
|
||||
r= self.cb_3Dmodel_neu(value)
|
||||
self.model.set_gui_dict(r)
|
||||
|
||||
|
||||
def callback(self, key, value):
|
||||
@@ -268,9 +228,9 @@ class GuiLogic():
|
||||
elif key == "cb_halbzeugfarbe":
|
||||
return self.cb_halbzeugfarbe(value)
|
||||
elif key == 'cb_lebenszyklus_status_neu':
|
||||
pass
|
||||
return self.cb_lebenszyklus_status_neu(value)
|
||||
elif key == 'cb_3Dmodel_neu':
|
||||
pass
|
||||
return self.cb_3Dmodel_neu(value)
|
||||
elif key == 'cb_halbzeugOhneSaege_neu':
|
||||
pass
|
||||
elif key == 'cb_ruestcode_neu':
|
||||
@@ -344,7 +304,6 @@ class GuiLogic():
|
||||
return ret
|
||||
|
||||
|
||||
|
||||
def cb_halbzeugoberflaeche(self, selected):
|
||||
ret = dict()
|
||||
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
||||
@@ -361,6 +320,16 @@ class GuiLogic():
|
||||
'cb_halbzeugoberflaeche': "",
|
||||
}
|
||||
return ret
|
||||
|
||||
def cb_lebenszyklus_status_neu(self, selected):
|
||||
ret = dict()
|
||||
lstatus = self.config.Allgemein.get_options("Lebenszyklus") # Serie, Prototyp
|
||||
if selected is None:
|
||||
ret['lebenszyklus_status_neu'] = lstatus[0]
|
||||
ret['cb_lebenszyklus_status_neu'] = lstatus
|
||||
else:
|
||||
ret['cb_lebenszyklus_status_neu'] = selected
|
||||
return ret
|
||||
|
||||
def cb_halbzeugfarbe(self, selected):
|
||||
ret = dict()
|
||||
@@ -391,6 +360,46 @@ class GuiLogic():
|
||||
pass
|
||||
return ret
|
||||
|
||||
def cb_3Dmodel_neu(self, selected):
|
||||
ret = dict()
|
||||
pdm_kategorie_neu = self.model.get_gui_data("pdm_kategorie_neu")
|
||||
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
# Defaultwert = \\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm
|
||||
# Dropdownwerte = keine
|
||||
# state_ComboBox = disabled
|
||||
# state_Button = disabled
|
||||
# ret = {
|
||||
# '': '',
|
||||
# '': '',
|
||||
# }
|
||||
pass
|
||||
elif pdm_kategorie_neu == "Kaufteil":
|
||||
# Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par
|
||||
# Dropdownwerte = keine
|
||||
# state_ComboBox = disabled
|
||||
# state_Button = disabled
|
||||
pass
|
||||
elif pdm_kategorie_neu == "Einzelteil":
|
||||
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
||||
neuaufbau = self.model.get_gui_data("neuaufbau")
|
||||
if aus_halbzeug == "True" or neuaufbau == "True":
|
||||
# Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par
|
||||
# Dropdownwerte = keine
|
||||
# state_ComboBox = disabled
|
||||
# state_Button = disabled
|
||||
pass
|
||||
else:
|
||||
# Defaultwert = ""
|
||||
# Dropdownwerte = Dateipfade von allen .par-Dateien, die die aktuelle Teilenummer im Dateinamen aufweisen und sich gleichzeitig in einem der rekursiv durchsuchten Pfade aus der Sektion "3D-Modelle" in "Zielpfade.cfg" befinden.
|
||||
# state_ComboBox = readonly
|
||||
# state_Button = keiner
|
||||
|
||||
# IF Button "Durchsuchen" geklickt und benutzerdefinierte Solid Edge-Datei gewählt:
|
||||
# Defaultwert = Dateipfad der gewählten Solid Edge-Datei
|
||||
pass
|
||||
return ret
|
||||
|
||||
|
||||
|
||||
# def werkstofftyp(self, selected_werkstoff):
|
||||
# """bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche"""
|
||||
|
||||
Reference in New Issue
Block a user