ein paar Variablen in caditem protected gemacht. Laden und Speichern der ausgefüllten Oberfläche im json file im Work Ordner implementiert
This commit is contained in:
+41
-33
@@ -178,9 +178,8 @@ class CadItem(DataModel):
|
|||||||
def get_asm_id(self):
|
def get_asm_id(self):
|
||||||
return self.get_gui_data("asm_id")
|
return self.get_gui_data("asm_id")
|
||||||
|
|
||||||
def get_current_part_id(self):
|
def get_current_item_id(self):
|
||||||
return self.get_gui_data("teilenummer")
|
return self.get_gui_data('teilenummer')
|
||||||
|
|
||||||
|
|
||||||
def set_parent_children(self, parent_children_mapping):
|
def set_parent_children(self, parent_children_mapping):
|
||||||
""" contains all id relations below, data of subassemblies etc. in
|
""" contains all id relations below, data of subassemblies etc. in
|
||||||
@@ -290,10 +289,10 @@ class CadItem(DataModel):
|
|||||||
path = os.path.join(subpath, cid + '.json')
|
path = os.path.join(subpath, cid + '.json')
|
||||||
if os.path.exists(path):
|
if os.path.exists(path):
|
||||||
self.load(path)
|
self.load(path)
|
||||||
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def from_json(self, json_str):
|
def from_json(self, jsonobj):
|
||||||
jsonobj = json.loads(json_str)
|
|
||||||
|
|
||||||
if "gui_data" in jsonobj:
|
if "gui_data" in jsonobj:
|
||||||
gui_data = jsonobj["gui_data"]
|
gui_data = jsonobj["gui_data"]
|
||||||
@@ -304,12 +303,10 @@ class CadItem(DataModel):
|
|||||||
if "parent_children_mapping" in jsonobj:
|
if "parent_children_mapping" in jsonobj:
|
||||||
parent_children_mapping = jsonobj["parent_children_mapping"]
|
parent_children_mapping = jsonobj["parent_children_mapping"]
|
||||||
self.set_parent_children(parent_children_mapping)
|
self.set_parent_children(parent_children_mapping)
|
||||||
else:
|
|
||||||
raise Exception("no parent_children_mapping given in string")
|
|
||||||
if "red_ids" in jsonobj:
|
if "red_ids" in jsonobj:
|
||||||
red_ids = jsonobj["red_ids"]
|
red_ids = jsonobj["red_ids"]
|
||||||
self.set_red_ids(red_ids)
|
self.set_red_ids(red_ids)
|
||||||
return True
|
|
||||||
|
|
||||||
def to_dict(self, tree=False ):
|
def to_dict(self, tree=False ):
|
||||||
jsonobj = dict()
|
jsonobj = dict()
|
||||||
@@ -340,11 +337,20 @@ class CadItem(DataModel):
|
|||||||
except Exception:
|
except Exception:
|
||||||
raise Exception("guid_data, data, parent_children_mapping or red_ids not found")
|
raise Exception("guid_data, data, parent_children_mapping or red_ids not found")
|
||||||
|
|
||||||
|
def save_to_file(self):
|
||||||
|
"""speichert die bisherigen Eingaben beider Spalten in eine json Datei"""
|
||||||
|
path = os.path.join(self._controller.get_env("out"), str(self.get_current_item_id()) + '.json')
|
||||||
|
if self.get_current_item_id == self.get_asm_id:
|
||||||
|
savePath = True
|
||||||
|
else:
|
||||||
|
savePath = False
|
||||||
|
# die Bauminfos und RedIds dazu werden standardmässig nicht mit gemerkt. Nur im obersten Assemblyfile
|
||||||
|
self.save(path, savePath)
|
||||||
|
|
||||||
def save(self, path, tree=False):
|
def save(self, path, tree=False):
|
||||||
"""saves all data of model to a json string"""
|
"""saves all data of model to a json string"""
|
||||||
with open(path, 'w') as f:
|
with open(path, 'w') as f:
|
||||||
json.dump(self.to_dict(tree), f)
|
json.dump(self.to_dict(tree), f, indent=4, sort_keys=True)
|
||||||
|
|
||||||
def callback(self, key, value):
|
def callback(self, key, value):
|
||||||
if self._logic == None:
|
if self._logic == None:
|
||||||
@@ -400,9 +406,9 @@ class GuiLogic():
|
|||||||
def __init__(self, model, configs):
|
def __init__(self, model, configs):
|
||||||
# das Modell soll hier nur verwendet werden um aktuell Zustände abzufragen!
|
# das Modell soll hier nur verwendet werden um aktuell Zustände abzufragen!
|
||||||
# alles weitere zum Setzen von Daten etc. muss über den Controller laufen, also zurück gegeben werden.
|
# alles weitere zum Setzen von Daten etc. muss über den Controller laufen, also zurück gegeben werden.
|
||||||
self.model = model
|
self._model = model
|
||||||
# hier holt man die Daten der Configs
|
# hier holt man die Daten der Configs
|
||||||
self.config = configs
|
self._config = configs
|
||||||
# hier sind alle Callbacks bzw. deren Comboboxen
|
# hier sind alle Callbacks bzw. deren Comboboxen
|
||||||
|
|
||||||
def set_gui_defaults(self):
|
def set_gui_defaults(self):
|
||||||
@@ -413,7 +419,7 @@ class GuiLogic():
|
|||||||
self.call_and_set_data('cb_halbzeugoberflaeche')
|
self.call_and_set_data('cb_halbzeugoberflaeche')
|
||||||
|
|
||||||
def call_and_set_data(self, callbackfunc):
|
def call_and_set_data(self, callbackfunc):
|
||||||
eval('self.model.set_gui_dict(self.'+callbackfunc+'(None))')
|
eval('self._model.set_gui_dict(self.'+callbackfunc+'(None))')
|
||||||
|
|
||||||
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"""
|
||||||
@@ -468,7 +474,9 @@ class GuiLogic():
|
|||||||
pass
|
pass
|
||||||
elif key == 'cb_farbe_neu':
|
elif key == 'cb_farbe_neu':
|
||||||
ret = self.cb_farbe_neu(value)
|
ret = self.cb_farbe_neu(value)
|
||||||
|
# Aktionen
|
||||||
elif key == 'cb_speichern':
|
elif key == 'cb_speichern':
|
||||||
|
self._model.save_to_file()
|
||||||
pass
|
pass
|
||||||
elif key == 'cb_migrieren':
|
elif key == 'cb_migrieren':
|
||||||
pass
|
pass
|
||||||
@@ -548,7 +556,7 @@ class GuiLogic():
|
|||||||
<undefiniert>, Baugruppe, Einzelteil, Kaufteil, Schweissbaugruppe
|
<undefiniert>, Baugruppe, Einzelteil, Kaufteil, Schweissbaugruppe
|
||||||
"""
|
"""
|
||||||
ret = dict()
|
ret = dict()
|
||||||
categories = self.config.Allgemein.get_options("Kategorien")
|
categories = self._config.Allgemein.get_options("Kategorien")
|
||||||
if selected is None:
|
if selected is None:
|
||||||
ret['pdm_kategorie_neu'] = categories[0]
|
ret['pdm_kategorie_neu'] = categories[0]
|
||||||
ret['cb_pdm_kategorie_neu'] = categories
|
ret['cb_pdm_kategorie_neu'] = categories
|
||||||
@@ -558,7 +566,7 @@ class GuiLogic():
|
|||||||
|
|
||||||
def cb_neuaufbau(self, trueOrfalse):
|
def cb_neuaufbau(self, trueOrfalse):
|
||||||
ret = dict()
|
ret = dict()
|
||||||
pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
|
pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
if pdm_kat == "Einzelteil" or pdm_kat == "Kaufteil":
|
if pdm_kat == "Einzelteil" or pdm_kat == "Kaufteil":
|
||||||
if not trueOrfalse is None:
|
if not trueOrfalse is None:
|
||||||
ret["neuaufbau"] = trueOrfalse
|
ret["neuaufbau"] = trueOrfalse
|
||||||
@@ -568,7 +576,7 @@ class GuiLogic():
|
|||||||
|
|
||||||
def cb_aus_halbzeug_neu(self, trueOrfalse):
|
def cb_aus_halbzeug_neu(self, trueOrfalse):
|
||||||
ret = dict()
|
ret = dict()
|
||||||
pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
|
pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
|
|
||||||
# normalerweise ist der Haken nicht gesetz
|
# normalerweise ist der Haken nicht gesetz
|
||||||
ret["aus_halbzeug_neu"] = False
|
ret["aus_halbzeug_neu"] = False
|
||||||
@@ -581,9 +589,9 @@ class GuiLogic():
|
|||||||
|
|
||||||
def cb_halbzeugoberflaeche(self, selected):
|
def cb_halbzeugoberflaeche(self, selected):
|
||||||
ret = dict()
|
ret = dict()
|
||||||
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||||
if aus_halbzeug == "True":
|
if aus_halbzeug == "True":
|
||||||
oarten = self.config.Oberfläche.get_oberflächen_behandlungen()
|
oarten = self._config.Oberfläche.get_oberflächen_behandlungen()
|
||||||
if selected is None:
|
if selected is None:
|
||||||
ret['halbzeugoberflaeche_neu'] = oarten[0]
|
ret['halbzeugoberflaeche_neu'] = oarten[0]
|
||||||
ret['cb_halbzeugoberflaeche'] = oarten
|
ret['cb_halbzeugoberflaeche'] = oarten
|
||||||
@@ -598,7 +606,7 @@ class GuiLogic():
|
|||||||
|
|
||||||
def cb_lebenszyklus_status_neu(self, selected):
|
def cb_lebenszyklus_status_neu(self, selected):
|
||||||
ret = dict()
|
ret = dict()
|
||||||
lstatus = self.config.Allgemein.get_options("Lebenszyklus") # Serie, Prototyp
|
lstatus = self._config.Allgemein.get_options("Lebenszyklus") # Serie, Prototyp
|
||||||
if selected is None:
|
if selected is None:
|
||||||
ret['lebenszyklus_status_neu'] = lstatus[0]
|
ret['lebenszyklus_status_neu'] = lstatus[0]
|
||||||
ret['cb_lebenszyklus_status_neu'] = lstatus
|
ret['cb_lebenszyklus_status_neu'] = lstatus
|
||||||
@@ -608,8 +616,8 @@ class GuiLogic():
|
|||||||
|
|
||||||
def cb_halbzeugfarbe(self, selected):
|
def cb_halbzeugfarbe(self, selected):
|
||||||
ret = dict()
|
ret = dict()
|
||||||
halbzeugoberflaeche = self.model.get_gui_data("halbzeugoberflaeche_neu")
|
halbzeugoberflaeche = self._model.get_gui_data("halbzeugoberflaeche_neu")
|
||||||
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||||
|
|
||||||
# setze die Inhalte der abhängigen Comboboxen neu
|
# setze die Inhalte der abhängigen Comboboxen neu
|
||||||
ret = {
|
ret = {
|
||||||
@@ -618,14 +626,14 @@ class GuiLogic():
|
|||||||
}
|
}
|
||||||
if aus_halbzeug == "True":
|
if aus_halbzeug == "True":
|
||||||
if halbzeugoberflaeche == "eloxieren":
|
if halbzeugoberflaeche == "eloxieren":
|
||||||
farben_elox = self.config.Farben.get_farben_eloxieren()
|
farben_elox = self._config.Farben.get_farben_eloxieren()
|
||||||
if selected is None:
|
if selected is None:
|
||||||
ret['halbzeugfarbe_neu'] = farben_elox[0] # Default, falls nichts gewählt ist
|
ret['halbzeugfarbe_neu'] = farben_elox[0] # Default, falls nichts gewählt ist
|
||||||
ret['cb_halbzeugfarbe'] = farben_elox # Liste in der Combobox
|
ret['cb_halbzeugfarbe'] = farben_elox # Liste in der Combobox
|
||||||
else:
|
else:
|
||||||
ret['halbzeugfarbe_neu'] = selected # vom Nutzer ausgewählter Wert
|
ret['halbzeugfarbe_neu'] = selected # vom Nutzer ausgewählter Wert
|
||||||
elif halbzeugoberflaeche == "lackieren" or halbzeugoberflaeche == "pulverbeschichten":
|
elif halbzeugoberflaeche == "lackieren" or halbzeugoberflaeche == "pulverbeschichten":
|
||||||
farbauswahl = self.config.Farben.get_farbauswahl()
|
farbauswahl = self._config.Farben.get_farbauswahl()
|
||||||
if selected is None:
|
if selected is None:
|
||||||
ret['halbzeugfarbe_neu'] = farbauswahl[0]
|
ret['halbzeugfarbe_neu'] = farbauswahl[0]
|
||||||
ret['cb_halbzeugfarbe'] = farbauswahl
|
ret['cb_halbzeugfarbe'] = farbauswahl
|
||||||
@@ -637,7 +645,7 @@ class GuiLogic():
|
|||||||
|
|
||||||
def cb_3Dmodel_neu(self, selected):
|
def cb_3Dmodel_neu(self, selected):
|
||||||
ret = dict()
|
ret = dict()
|
||||||
pdm_kategorie_neu = self.model.get_gui_data("pdm_kategorie_neu")
|
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||||
# Defaultwert = \\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm
|
# Defaultwert = \\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm
|
||||||
# Dropdownwerte = keine
|
# Dropdownwerte = keine
|
||||||
@@ -655,8 +663,8 @@ class GuiLogic():
|
|||||||
# state_Button = disabled
|
# state_Button = disabled
|
||||||
pass
|
pass
|
||||||
elif pdm_kategorie_neu == "Einzelteil":
|
elif pdm_kategorie_neu == "Einzelteil":
|
||||||
aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||||
neuaufbau = self.model.get_gui_data("neuaufbau")
|
neuaufbau = self._model.get_gui_data("neuaufbau")
|
||||||
if aus_halbzeug == "True" or neuaufbau == "True":
|
if aus_halbzeug == "True" or neuaufbau == "True":
|
||||||
# Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par
|
# Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par
|
||||||
# Dropdownwerte = keine
|
# Dropdownwerte = keine
|
||||||
@@ -697,11 +705,11 @@ class GuiLogic():
|
|||||||
# # das Feld selbst mit dem Selektierten beschreiben
|
# # das Feld selbst mit dem Selektierten beschreiben
|
||||||
# ret['werkstofftyp_neu']= selected_werkstoff
|
# ret['werkstofftyp_neu']= selected_werkstoff
|
||||||
|
|
||||||
# pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
|
# pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
# aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
# aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||||
|
|
||||||
# if pdm_kat == 'Einzelteil' and aus_halbzeug is False:
|
# if pdm_kat == 'Einzelteil' and aus_halbzeug is False:
|
||||||
# wnamen = self.config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff)
|
# wnamen = self._config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff)
|
||||||
# # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
# # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
||||||
# ret = {
|
# ret = {
|
||||||
# # das Feld selbst mit dem Selektierten beschreiben
|
# # das Feld selbst mit dem Selektierten beschreiben
|
||||||
@@ -719,11 +727,11 @@ class GuiLogic():
|
|||||||
# # das Feld selbst mit dem Selektierten beschreiben
|
# # das Feld selbst mit dem Selektierten beschreiben
|
||||||
# ret['oberflaeche_neu']= selected
|
# ret['oberflaeche_neu']= selected
|
||||||
|
|
||||||
# pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
|
# pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
# aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
|
# aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||||
|
|
||||||
# if pdm_kat == 'Einzelteil' and aus_halbzeug is False:
|
# if pdm_kat == 'Einzelteil' and aus_halbzeug is False:
|
||||||
# onamen = self.config.Oberfläche.get_oberfläche_of_type(selected)
|
# onamen = self._config.Oberfläche.get_oberfläche_of_type(selected)
|
||||||
# # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
# # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
||||||
# ret = {
|
# ret = {
|
||||||
# # die neuen Inhalte der comboboxen setzen
|
# # die neuen Inhalte der comboboxen setzen
|
||||||
@@ -734,8 +742,8 @@ class GuiLogic():
|
|||||||
# return ret
|
# return ret
|
||||||
|
|
||||||
def cb_farbe_neu(self, selected):
|
def cb_farbe_neu(self, selected):
|
||||||
farben_alle = self.config.Farben.get_farbauswahl()
|
farben_alle = self._config.Farben.get_farbauswahl()
|
||||||
farben_elox = self.config.Farben.get_farben_eloxieren()
|
farben_elox = self._config.Farben.get_farben_eloxieren()
|
||||||
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
|
||||||
ret = {
|
ret = {
|
||||||
# das Feld selbst mit dem Selektierten beschreiben
|
# das Feld selbst mit dem Selektierten beschreiben
|
||||||
|
|||||||
+1
-21
@@ -118,12 +118,8 @@ class Controller(Observer):
|
|||||||
# und diese in der Gui setzen
|
# und diese in der Gui setzen
|
||||||
set_data = self._model.csv2guidata(loaded)
|
set_data = self._model.csv2guidata(loaded)
|
||||||
self._model.set_gui_defaults()
|
self._model.set_gui_defaults()
|
||||||
self.refresh_gui()
|
self.refresh_gui()
|
||||||
|
|
||||||
def get_current_item_id(self):
|
|
||||||
return self.get_gui_data('teilenummer')
|
|
||||||
|
|
||||||
|
|
||||||
def set_red_ids(self, red_ids):
|
def set_red_ids(self, red_ids):
|
||||||
self._model.set_red_ids(red_ids)
|
self._model.set_red_ids(red_ids)
|
||||||
def get_red_ids(self):
|
def get_red_ids(self):
|
||||||
@@ -175,22 +171,6 @@ class Controller(Observer):
|
|||||||
# gib dem observer Bescheid, was aufgerufen wurde
|
# gib dem observer Bescheid, was aufgerufen wurde
|
||||||
self.notify(self._model, key,value)
|
self.notify(self._model, key,value)
|
||||||
self.refresh_gui()
|
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)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user