This commit is contained in:
2024-02-06 14:51:41 +01:00
7 changed files with 216 additions and 215 deletions
-13
View File
@@ -1,13 +0,0 @@
{
"folders": [
{
"path": "."
}
],
"settings": {
"[python]": {
"editor.defaultFormatter": "ms-python.autopep8"
},
"python.formatting.provider": "none"
}
}
+1
View File
@@ -1,4 +1,5 @@
[Kategorien] [Kategorien]
<undefiniert>
Baugruppe Baugruppe
Einzelteil Einzelteil
Kaufteil Kaufteil
+1 -4
View File
@@ -59,13 +59,10 @@ demo_data = """
"gui_data": { "gui_data": {
"asm_id": "400102190", "asm_id": "400102190",
"teilenummer": "400102195", "teilenummer": "400102195",
"pdm_kategorie_neu": "Einzelteil",
"neuaufbau": "False", "neuaufbau": "False",
"lebenszyklus_status_neu": "Serie", "lebenszyklus_status_neu": "Serie",
"aus_halbzeug_neu": "True", "aus_halbzeug_neu": "True",
"zusatzinfos_auto_text": "Dies sind neue Zusatzinfos", "zusatzinfos_auto_text": "Dies sind neue Zusatzinfos"
"cb_lebenszyklus_status_neu": ["Serie", "Prototyp"],
"cb_werkstofftyp_neu": ["Stahl", "Aluminium", "Kunst-/ Verbundstoff", "Schwermetall"]
}, },
"data": {} "data": {}
} }
+5 -1
View File
@@ -42,6 +42,7 @@ class CadItem():
"halbzeugnummer_neu", "halbzeugnummer_neu",
"halbzeuglaenge_neu", "halbzeuglaenge_neu",
"halbzeugoberflaeche_neu", "halbzeugoberflaeche_neu",
"halbzeugfarbe_neu",
"lebenszyklus_status_neu", "lebenszyklus_status_neu",
"bezeichnung1_sivas", "bezeichnung1_neu", "bezeichnung1_sivas", "bezeichnung1_neu",
"bezeichnung2_sivas", "bezeichnung2_neu", "bezeichnung2_sivas", "bezeichnung2_neu",
@@ -182,7 +183,10 @@ class CadItem():
self.gui_data[key] = val self.gui_data[key] = val
def get_gui_data(self, key): def get_gui_data(self, key):
return self.gui_data[key] if key in self.gui_data:
return self.gui_data[key]
else:
return None
def get_all_gui_data(self): def get_all_gui_data(self):
return self.gui_data return self.gui_data
+178 -174
View File
@@ -30,79 +30,7 @@ messages = {
} }
# die folgende Hash ist nur für schnelleres Editieren hier
gui_data_keys = [
"asm_id",
"teilenummer",
"datenbank",
"pdm_kategorie_neu",
"neuaufbau",
"aus_halbzeug_neu",
"halbzeugnummer_neu",
"halbzeuglaenge_neu",
"halbzeugoberflaeche_neu",
"lebenszyklus_status_neu",
"bezeichnung1_sivas", "bezeichnung1_neu",
"bezeichnung2_sivas", "bezeichnung2_neu",
"halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu",
"ruestcode_sivas", "ruestcode_neu",
"fertigungsart_sivas", "fertigungsart_neu",
"allgemeintoleranz_sivas", "allgemeintoleranz_neu",
"fosGruppe_sivas", "fosGruppe_neu",
"kalkulationsart_sivas", "kalkulationsart_neu",
"beschaffungsart_sivas", "beschaffungsart_neu",
"mengeneinheit_sivas", "mengeneinheit_neu",
"halbzeug_sivas", "halbzeug_neu",
"tosgruppe_sivas", "tosgruppe_neu",
"dispogruppe_sivas", "dispogruppe_neu",
"dispolaufgruppe_sivas","dispolaufgruppe_neu",
"hersteller_sivas", "hersteller_neu",
"ersatzfuer_sivas", "ersatzfuer_neu",
"ersetztdurch_sivas", "ersetztdurch_neu",
"herstteilenr_sivas", "herstteilenr_neu",
"werkstoffdiskr_sivas",
"werkstofftyp_sivas", "werkstofftyp_neu",
"material_sivas", "material_neu",
"oberflaeche_neu",
"farbe_neu",
"version_sivas", "version_neu",
"aenderungsindex_sivas", "aenderungsindex_neu",
"aenderungstext_sivas", "aenderungstext_neu",
"freigabevermerk_sivas", "freigabevermerk_neu",
"zusatzinfos_auto_text",
"zusatzinfos_bendef_text",
# Felder der Comboboxen. benannt wie deren callbacks
"cb_pdm_kategorie_neu",
"cb_halbzeug_neu",
"cb_halbzeugoberflaeche",
"cb_halbzeugfarbe",
"cb_lebenszyklus_status_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_dispogruppe_neu",
"cb_dispolaufgruppe_neu",
"cb_hersteller_neu",
"cb_werkstofftyp_neu",
"cb_material_neu",
"cb_oberflaeche_neu",
"cb_farbe_neu",
# buttons
"cb_speichern",
"cb_migrieren",
"cb_zurücksetzen",
]
class Controller(): class Controller():
""" """
Class for manipulating the model and returning data for the view Class for manipulating the model and returning data for the view
""" """
@@ -152,12 +80,36 @@ class Controller():
def set_current_item_id(self, cid): def set_current_item_id(self, cid):
"""setze eine neue Item ID """
# 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
# TODO save current given data. In case, ask whether you should save or drop
self.set_gui_data('teilenummer', cid) self.set_gui_data('teilenummer', cid)
loaded_csv = self.model.sivas_data_from_csv(cid) # falls eine .json Datei davon existiert, dann diese zuerst versuchen zu laden
gui_dict = self.logic.csv2guidata(loaded_csv) #self.model.load(demo_data)
self.model.set_gui_dict(gui_dict) gui_dict = None
self.refresh_gui() 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()
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):
@@ -201,10 +153,28 @@ class Controller():
def callback(self, key, value): def callback(self, key, value):
if not self.logic: if not self.logic:
return return
# Logik um neue Werte in Oberfläche oder Modell zu füllen
model_values = self.logic.callback(key, value) model_values = self.logic.callback(key, value)
if model_values: if model_values:
self.set_gui_dict(model_values) self.set_gui_dict(model_values)
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)
class GuiLogic(): class GuiLogic():
""" """
@@ -217,34 +187,7 @@ class GuiLogic():
# 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
self.callbacks = [
'cb_pdm_kategorie_neu',
'cb_neuaufbau',
'cb_aus_halbzeug_neu',
'cb_lebenszyklus_status_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_speichern',
'cb_migrieren',
'cb_zurücksetzen',
'cb_suche_asm'
]
# dies sind die Excel Headel der SIVAS csv Export Datei # dies sind die Excel Headel der SIVAS csv Export Datei
# und wie diese in das Datenmodell der Gui integriert werden kann # und wie diese in das Datenmodell der Gui integriert werden kann
self.excel_to_gui = { self.excel_to_gui = {
@@ -288,41 +231,42 @@ class GuiLogic():
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 # Indexerfasser wird nicht in der gui verwaltet. Deshalb Modifikation aus den Rohdaten
self.model.set_gui_dict(ret)
# set defaults from given logic # 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) r1 = self.callback("cb_neuaufbau", None)
ret.update(r1) self.model.set_gui_dict(r1)
r2 = self.callback("cb_aus_halbzeug_neu", None) r2 = self.callback("cb_aus_halbzeug_neu", None)
ret.update(r2) 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 # add entry dependencies
dep = self.entry_dependencies(ret) dep = self.entry_dependencies(ret)
ret.update(dep) self.model.set_gui_dict(dep)
return ret return ret
def entry_dependencies(self, data): def entry_dependencies(self, data):
ret = dict() return {}
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"""
if key not in self.callbacks:
raise Exception("this callback does not exist "+key)
if key == 'cb_pdm_kategorie_neu': if key == 'cb_pdm_kategorie_neu':
pass return self.cb_pdm_kategorie_neu(value)
elif key == 'cb_neuaufbau': elif key == 'cb_neuaufbau':
return self.neuaufbau(value) return self.cb_neuaufbau(value)
elif key == 'cb_aus_halbzeug_neu': elif key == 'cb_aus_halbzeug_neu':
return self.aus_halbzeug_neu(value) return self.cb_aus_halbzeug_neu(value)
elif key == "cb_halbzeugoberflaeche":
return self.cb_halbzeugoberflaeche(value)
elif key == "cb_halbzeugfarbe":
return self.cb_halbzeugfarbe(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':
@@ -354,13 +298,14 @@ class GuiLogic():
elif key == 'cb_werkstoffdiskrepanz': elif key == 'cb_werkstoffdiskrepanz':
pass pass
elif key == 'cb_werkstofftyp_neu': elif key == 'cb_werkstofftyp_neu':
return self.werkstofftyp(value) pass
# return self.werkstofftyp(value)
elif key == 'cb_material_neu': elif key == 'cb_material_neu':
pass pass
elif key == 'cb_oberflaeche_neu': elif key == 'cb_oberflaeche_neu':
pass pass
elif key == 'cb_farbe_neu': elif key == 'cb_farbe_neu':
return self.farbe(value) return self.cb_farbe_neu(value)
elif key == 'cb_speichern': elif key == 'cb_speichern':
pass pass
elif key == 'cb_migrieren': elif key == 'cb_migrieren':
@@ -371,15 +316,25 @@ class GuiLogic():
pass pass
else: else:
raise Exception("this callback does not exist "+key) raise Exception("this callback does not exist "+key)
def cb_pdm_kategorie_neu(self, selected):
ret = dict()
categories = self.config.Allgemein.get_options("Kategorien")
if selected is None:
ret['pdm_kategorie_neu'] = categories[0]
ret['cb_pdm_kategorie_neu'] = categories
else:
ret['pdm_kategorie_neu'] = selected
return ret
def 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":
ret["neuaufbau"] = False ret["neuaufbau"] = False
return ret return ret
def 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")
if pdm_kat == "Einzelteil": if pdm_kat == "Einzelteil":
@@ -388,64 +343,113 @@ class GuiLogic():
ret["aus_halbzeug_neu"] = False ret["aus_halbzeug_neu"] = False
return ret return ret
def werkstofftyp(self, selected_werkstoff):
"""bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche"""
# Logik, die steuert, welcher Defaultwert gilt:
# In den nachfolgenden Fällen darf kein Defaultwert eingetragen def cb_halbzeugoberflaeche(self, selected):
# werden (selbst wenn in from_siv.csv ein Wert in der Spalte
# "Werkstoff" eingetragen sein sollte):
# PDM-Kategorie == "Baugruppe"
# PDM-Kategorie == "Schweissbaugruppe"
# PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt)
# Gilt PDM-Kategorie == "Kaufteil" soll der Defaultwert "siehe
# Hersteller" eingetragen werden
# Gilt PDM-Kategorie == "Einzelteil" und Aus Halbzeug == False (kein
# Haken), dann wird der Defaultwert wie folgt bestimmt:
ret = dict() ret = dict()
# das Feld selbst mit dem Selektierten beschreiben
ret['werkstofftyp_neu']= selected_werkstoff
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 aus_halbzeug == "True":
if pdm_kat == 'Einzelteil' and aus_halbzeug is False: oarten = self.config.Oberfläche.get_oberflächen_behandlungen()
wnamen = self.config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff) if selected is None:
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell ret['halbzeugoberflaeche_neu'] = oarten[0]
ret['cb_halbzeugoberflaeche'] = oarten
else:
ret['halbzeugoberflaeche_neu'] = selected
else:
ret = { ret = {
# das Feld selbst mit dem Selektierten beschreiben 'halbzeugoberflaeche_neu': "",
'werkstofftyp_neu': selected_werkstoff, 'cb_halbzeugoberflaeche': "",
# die neuen Inhalte der comboboxen setzen
'cb_material_neu': wnamen,
# der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen
'material_neu': wnamen[0],
} }
return ret return ret
def oberfläche(self, selected): def cb_halbzeugfarbe(self, selected):
ret = dict() ret = dict()
# das Feld selbst mit dem Selektierten beschreiben halbzeugoberflaeche = self.model.get_gui_data("halbzeugoberflaeche_neu")
ret['oberflaeche_neu']= selected
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: # setze die Inhalte der abhängigen Comboboxen neu
onamen = self.config.Oberfläche.get_oberfläche_of_type(selected) ret = {
# setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell 'halbzeugfarbe_neu': '',
ret = { 'cb_halbzeugfarbe': '',
# die neuen Inhalte der comboboxen setzen }
'cb_oberflaeche_neu': onamen, if aus_halbzeug == "True":
# der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen if halbzeugoberflaeche == "eloxieren":
'oberflaeche_neu': onamen[0], farben_elox = self.config.Farben.get_farben_eloxieren()
} if selected is None:
ret['halbzeugfarbe_neu'] = farben_elox[0] # Default, falls nichts gewählt ist
ret['cb_halbzeugfarbe'] = farben_elox # Liste in der Combobox
else:
ret['halbzeugfarbe_neu'] = selected # vom Nutzer ausgewählter Wert
elif halbzeugoberflaeche == "lackieren" or halbzeugoberflaeche == "pulverbeschichten":
farbauswahl = self.config.Farben.get_farbauswahl()
if selected is None:
ret['halbzeugfarbe_neu'] = farbauswahl[0]
ret['cb_halbzeugfarbe'] = farbauswahl
else:
ret['halbzeugfarbe_neu'] = selected
else:
pass
return ret return ret
def farbe(self, selected):
# def werkstofftyp(self, selected_werkstoff):
# """bekommt Aluminium, Stahl etc. und setzt dann die anderen Felder der Oberfläche"""
# # Logik, die steuert, welcher Defaultwert gilt:
# # In den nachfolgenden Fällen darf kein Defaultwert eingetragen
# # werden (selbst wenn in from_siv.csv ein Wert in der Spalte
# # "Werkstoff" eingetragen sein sollte):
# # PDM-Kategorie == "Baugruppe"
# # PDM-Kategorie == "Schweissbaugruppe"
# # PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt)
# # Gilt PDM-Kategorie == "Kaufteil" soll der Defaultwert "siehe
# # Hersteller" eingetragen werden
# # Gilt PDM-Kategorie == "Einzelteil" und Aus Halbzeug == False (kein
# # Haken), dann wird der Defaultwert wie folgt bestimmt:
# ret = dict()
# # das Feld selbst mit dem Selektierten beschreiben
# ret['werkstofftyp_neu']= selected_werkstoff
# pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
# aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
# if pdm_kat == 'Einzelteil' and aus_halbzeug is False:
# wnamen = self.config.Werkstoffe.get_werkstoffe_of_name(selected_werkstoff)
# # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
# ret = {
# # das Feld selbst mit dem Selektierten beschreiben
# 'werkstofftyp_neu': selected_werkstoff,
# # die neuen Inhalte der comboboxen setzen
# 'cb_material_neu': wnamen,
# # der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen
# 'material_neu': wnamen[0],
# }
# return ret
# def oberfläche(self, selected):
# ret = dict()
# # das Feld selbst mit dem Selektierten beschreiben
# ret['oberflaeche_neu']= selected
# pdm_kat = self.model.get_gui_data("pdm_kategorie_neu")
# aus_halbzeug = self.model.get_gui_data("aus_halbzeug_neu")
# if pdm_kat == 'Einzelteil' and aus_halbzeug is False:
# onamen = self.config.Oberfläche.get_oberfläche_of_type(selected)
# # setze die Inhalte der abhängigen Comboboxen neu und den Wert im Modell
# ret = {
# # die neuen Inhalte der comboboxen setzen
# 'cb_oberflaeche_neu': onamen,
# # der angezeigte Wert der Combos sollte anfangs dem ersten der Liste entsprechen
# 'oberflaeche_neu': onamen[0],
# }
# return ret
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
+27 -23
View File
@@ -235,12 +235,12 @@ class RightFramePDM(AllFrames):
self.rownum += 1 self.rownum += 1
# pdmkategorie # pdmkategorie
categories = configs.Allgemein.get_options("Kategorien") #"Baugruppe", "Einzelteil", "Kaufteil", "NichtSivas", "Normteil", "Schweissbaugruppe" #categories = configs.Allgemein.get_options("Kategorien") #"Baugruppe", "Einzelteil", "Kaufteil", "NichtSivas", "Normteil", "Schweissbaugruppe"
pdmkategorie_label = ttk.Label(frame, text="PDM-Kategorie:" ) pdmkategorie_label = ttk.Label(frame, text="PDM-Kategorie:" )
pdmkategorie_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3) pdmkategorie_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3)
self.pdm_category = tk.StringVar() self.pdm_category = tk.StringVar()
self.pdmkategorie_combo = ttk.Combobox(frame, textvariable=self.pdm_category) self.pdmkategorie_combo = ttk.Combobox(frame, textvariable=self.pdm_category)
self.pdmkategorie_combo['values'] = categories #self.pdmkategorie_combo['values'] = categories
self.pdmkategorie_combo['state'] = 'readonly' self.pdmkategorie_combo['state'] = 'readonly'
self.pdmkategorie_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_pdm_kategorie_neu', self.pdm_category.get())) self.pdmkategorie_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_pdm_kategorie_neu', self.pdm_category.get()))
self.pdmkategorie_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.pdmkategorie_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -254,7 +254,7 @@ class RightFramePDM(AllFrames):
self.neuaufbau_checkbutton = ttk.Checkbutton(frame, self.neuaufbau_checkbutton = ttk.Checkbutton(frame,
#text='ja', #text='ja',
variable=self.neuaufbau, variable=self.neuaufbau,
command=lambda: self.callback("cb_neuaufbau", self.neuaufbau), command=lambda:self.callback("cb_neuaufbau", self.neuaufbau),
onvalue=True, onvalue=True,
offvalue=False) offvalue=False)
self.neuaufbau_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.neuaufbau_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -267,7 +267,7 @@ class RightFramePDM(AllFrames):
self.aushalbzeug_checkbutton = ttk.Checkbutton(frame, self.aushalbzeug_checkbutton = ttk.Checkbutton(frame,
#text='neu', #text='neu',
variable=self.aus_halbzeug_neu, variable=self.aus_halbzeug_neu,
command=lambda: self.callback("cb_aus_halbzeug_neu", self.aus_halbzeug_neu), command=lambda:self.callback("cb_aus_halbzeug_neu", self.aus_halbzeug_neu),
onvalue=True, onvalue=True,
offvalue=False) offvalue=False)
self.aushalbzeug_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.aushalbzeug_checkbutton.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -295,7 +295,7 @@ class RightFramePDM(AllFrames):
self.halbzeugoberflaeche_neu = tk.StringVar() self.halbzeugoberflaeche_neu = tk.StringVar()
self.halbzeugoberflaeche_combo = ttk.Combobox(frame, textvariable=self.halbzeugoberflaeche_neu) self.halbzeugoberflaeche_combo = ttk.Combobox(frame, textvariable=self.halbzeugoberflaeche_neu)
self.halbzeugoberflaeche_combo['state'] = 'readonly' self.halbzeugoberflaeche_combo['state'] = 'readonly'
self.halbzeugoberflaeche_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_halbzeugoberflaeche', self.lebenszyklus_status_neu.get())) self.halbzeugoberflaeche_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_halbzeugoberflaeche', self.halbzeugoberflaeche_neu.get()))
self.halbzeugoberflaeche_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.halbzeugoberflaeche_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
self.rownum += 1 self.rownum += 1
@@ -362,13 +362,15 @@ class RightFramePDM(AllFrames):
"halbzeugnummer_neu": self.halbzeugnummer_neu.get(), "halbzeugnummer_neu": self.halbzeugnummer_neu.get(),
"halbzeuglaenge_neu": self.halbzeuglaenge_neu.get(), "halbzeuglaenge_neu": self.halbzeuglaenge_neu.get(),
"halbzeugoberflaeche_neu": self.halbzeugoberflaeche_neu.get(), "halbzeugoberflaeche_neu": self.halbzeugoberflaeche_neu.get(),
"halbzeugfarbe_neu": self.halbzeugfarbe_neu.get(),
"lebenszyklus_status_neu": self.lebenszyklus_status_neu.get(), "lebenszyklus_status_neu": self.lebenszyklus_status_neu.get(),
# ab hier die Dropdowns der Oberfläche auslesen. # ab hier die Dropdowns der Oberfläche auslesen.
"cb_pdm_kategorie_neu": self.pdmkategorie_combo['values'],
"cb_lebenszyklus_status_neu": self.lebenszyklusstatus_combo['values'],
"cb_halbzeugoberflaeche": self.halbzeugoberflaeche_combo['values'], "cb_halbzeugoberflaeche": self.halbzeugoberflaeche_combo['values'],
"cb_halbzeugfarbe": self.halbzeugfarbe_combo['values'], "cb_halbzeugfarbe": self.halbzeugfarbe_combo['values'],
"cb_lebenszyklus_status_neu": self.lebenszyklusstatus_combo['values'],
"cb_3Dmodel_neu": self.model3d_combo['values'], "cb_3Dmodel_neu": self.model3d_combo['values'],
"cb_pdm_kategorie_neu": self.pdmkategorie_combo['values'],
} }
def data_from_model(self): def data_from_model(self):
@@ -385,6 +387,8 @@ class RightFramePDM(AllFrames):
self.halbzeuglaenge_neu.set(data["halbzeuglaenge_neu"]) self.halbzeuglaenge_neu.set(data["halbzeuglaenge_neu"])
if 'halbzeugoberflaeche_neu' in data: if 'halbzeugoberflaeche_neu' in data:
self.halbzeugoberflaeche_neu.set(data["halbzeugoberflaeche_neu"]) self.halbzeugoberflaeche_neu.set(data["halbzeugoberflaeche_neu"])
if 'halbzeugfarbe_neu' in data:
self.halbzeugfarbe_neu.set(data["halbzeugfarbe_neu"])
if 'lebenszyklus_status_neu' in data: if 'lebenszyklus_status_neu' in data:
self.lebenszyklus_status_neu.set(data["lebenszyklus_status_neu"]) self.lebenszyklus_status_neu.set(data["lebenszyklus_status_neu"])
if 'aus_halbzeug_neu' in data: if 'aus_halbzeug_neu' in data:
@@ -412,7 +416,7 @@ class RightFrameBezeichnung(AllFrames):
self.rownum = AllFrames.get_rows(self) self.rownum = AllFrames.get_rows(self)
col_left = 0 col_left = 0
categories = configs.Allgemein.get_options("Kategorien") #categories = configs.Allgemein.get_options("Kategorien")
# Bezeichnung 1 # Bezeichnung 1
bezeichnung1_label = ttk.Label(frame, text="Bezeichnung 1:" ) bezeichnung1_label = ttk.Label(frame, text="Bezeichnung 1:" )
@@ -468,8 +472,8 @@ class RightFrameHalbzeugOhneS(AllFrames):
self.rownum = AllFrames.get_rows(self) self.rownum = AllFrames.get_rows(self)
col_left = 0 col_left = 0
categories = configs.Allgemein.get_options("Kategorien") # categories = configs.Allgemein.get_options("Kategorien")
ruestcodes = configs.Allgemein.get_options("Ruestcode") # ruestcodes = configs.Allgemein.get_options("Ruestcode")
# Halbzeug ohne Sägeliste # Halbzeug ohne Sägeliste
halbzeugOhneSaege_label = ttk.Label(frame, text="Halbzeug ohne Sägeliste:" ) halbzeugOhneSaege_label = ttk.Label(frame, text="Halbzeug ohne Sägeliste:" )
@@ -495,7 +499,7 @@ class RightFrameHalbzeugOhneS(AllFrames):
self.ruestcode_neu = tk.StringVar() self.ruestcode_neu = tk.StringVar()
self.ruestcode_neu_combo = ttk.Combobox(frame, textvariable=self.ruestcode_neu) self.ruestcode_neu_combo = ttk.Combobox(frame, textvariable=self.ruestcode_neu)
self.ruestcode_neu_combo['values'] = ruestcodes #self.ruestcode_neu_combo['values'] = ruestcodes
self.ruestcode_neu_combo['state'] = 'readonly' self.ruestcode_neu_combo['state'] = 'readonly'
self.ruestcode_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_ruestcode_neu', self.ruestcode_neu.get())) self.ruestcode_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_ruestcode_neu', self.ruestcode_neu.get()))
self.ruestcode_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.ruestcode_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -510,7 +514,7 @@ class RightFrameHalbzeugOhneS(AllFrames):
self.fertigungsart_neu = tk.StringVar() self.fertigungsart_neu = tk.StringVar()
self.fertigungsart_neu_combo = ttk.Combobox(frame, textvariable=self.fertigungsart_neu) self.fertigungsart_neu_combo = ttk.Combobox(frame, textvariable=self.fertigungsart_neu)
self.fertigungsart_neu_combo['values'] = categories #self.fertigungsart_neu_combo['values'] = categories
self.fertigungsart_neu_combo['state'] = 'readonly' self.fertigungsart_neu_combo['state'] = 'readonly'
self.fertigungsart_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_fertigungsart_neu', self.fertigungsart_neu.get())) self.fertigungsart_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_fertigungsart_neu', self.fertigungsart_neu.get()))
self.fertigungsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.fertigungsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -525,7 +529,7 @@ class RightFrameHalbzeugOhneS(AllFrames):
self.allgemeintoleranz_neu = tk.StringVar() self.allgemeintoleranz_neu = tk.StringVar()
self.allgemeintoleranz_neu_combo = ttk.Combobox(frame, textvariable=self.allgemeintoleranz_neu) self.allgemeintoleranz_neu_combo = ttk.Combobox(frame, textvariable=self.allgemeintoleranz_neu)
self.allgemeintoleranz_neu_combo['values'] = categories #self.allgemeintoleranz_neu_combo['values'] = categories
self.allgemeintoleranz_neu_combo['state'] = 'readonly' self.allgemeintoleranz_neu_combo['state'] = 'readonly'
self.allgemeintoleranz_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_allgemeintoleranz_neu', self.allgemeintoleranz_neu.get())) self.allgemeintoleranz_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_allgemeintoleranz_neu', self.allgemeintoleranz_neu.get()))
self.allgemeintoleranz_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.allgemeintoleranz_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -540,7 +544,7 @@ class RightFrameHalbzeugOhneS(AllFrames):
self.fosGruppe_neu = tk.StringVar() self.fosGruppe_neu = tk.StringVar()
self.fosGruppe_neu_combo = ttk.Combobox(frame, textvariable=self.fosGruppe_neu) self.fosGruppe_neu_combo = ttk.Combobox(frame, textvariable=self.fosGruppe_neu)
self.fosGruppe_neu_combo['values'] = categories #self.fosGruppe_neu_combo['values'] = categories
self.fosGruppe_neu_combo['state'] = 'readonly' self.fosGruppe_neu_combo['state'] = 'readonly'
self.fosGruppe_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_fosGruppe_neu', self.fosGruppe_neu.get())) self.fosGruppe_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_fosGruppe_neu', self.fosGruppe_neu.get()))
self.fosGruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.fosGruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -555,7 +559,7 @@ class RightFrameHalbzeugOhneS(AllFrames):
self.kalkulationsart_neu = tk.StringVar() self.kalkulationsart_neu = tk.StringVar()
self.kalkulationsart_neu_combo = ttk.Combobox(frame, textvariable=self.kalkulationsart_neu) self.kalkulationsart_neu_combo = ttk.Combobox(frame, textvariable=self.kalkulationsart_neu)
self.kalkulationsart_neu_combo['values'] = categories #self.kalkulationsart_neu_combo['values'] = categories
self.kalkulationsart_neu_combo['state'] = 'readonly' self.kalkulationsart_neu_combo['state'] = 'readonly'
self.kalkulationsart_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_kalkulationsart_neu', self.kalkulationsart_neu.get())) self.kalkulationsart_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_kalkulationsart_neu', self.kalkulationsart_neu.get()))
self.kalkulationsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.kalkulationsart_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -642,7 +646,7 @@ class RightFrameBeschaffungsart(AllFrames):
self.rownum = AllFrames.get_rows(self) self.rownum = AllFrames.get_rows(self)
col_left = 0 col_left = 0
categories = configs.Allgemein.get_options("Kategorien") #categories = configs.Allgemein.get_options("Kategorien")
# Beschaffungsart # Beschaffungsart
beschaffungsart_label = ttk.Label(frame, text="Beschaffungsart:" ) beschaffungsart_label = ttk.Label(frame, text="Beschaffungsart:" )
@@ -653,7 +657,7 @@ class RightFrameBeschaffungsart(AllFrames):
self.beschaffungsart_neu = tk.StringVar() self.beschaffungsart_neu = tk.StringVar()
self.beschaffungsart_combo = ttk.Combobox(frame, textvariable=self.beschaffungsart_neu) self.beschaffungsart_combo = ttk.Combobox(frame, textvariable=self.beschaffungsart_neu)
self.beschaffungsart_combo['values'] = categories #self.beschaffungsart_combo['values'] = categories
self.beschaffungsart_combo['state'] = 'readonly' self.beschaffungsart_combo['state'] = 'readonly'
self.beschaffungsart_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_beschaffungsart_neu', self.beschaffungsart_neu.get())) self.beschaffungsart_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_beschaffungsart_neu', self.beschaffungsart_neu.get()))
self.beschaffungsart_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.beschaffungsart_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -668,7 +672,7 @@ class RightFrameBeschaffungsart(AllFrames):
self.mengeneinheit_neu = tk.StringVar() self.mengeneinheit_neu = tk.StringVar()
self.mengeneinheit_combo = ttk.Combobox(frame, textvariable=self.mengeneinheit_neu) self.mengeneinheit_combo = ttk.Combobox(frame, textvariable=self.mengeneinheit_neu)
self.mengeneinheit_combo['values'] = categories #self.mengeneinheit_combo['values'] = categories
self.mengeneinheit_combo['state'] = 'readonly' self.mengeneinheit_combo['state'] = 'readonly'
self.mengeneinheit_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_mengeneinheit_neu', self.mengeneinheit_neu.get())) self.mengeneinheit_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_mengeneinheit_neu', self.mengeneinheit_neu.get()))
self.mengeneinheit_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.mengeneinheit_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -741,7 +745,7 @@ class RightFrameTOSGruppe(AllFrames):
self.rownum = AllFrames.get_rows(self) self.rownum = AllFrames.get_rows(self)
col_left = 0 col_left = 0
categories = configs.Allgemein.get_options("Kategorien") #categories = configs.Allgemein.get_options("Kategorien")
# TOS-Gruppe # TOS-Gruppe
tosgruppe_label = ttk.Label(frame, text="TOS-Gruppe:" ) tosgruppe_label = ttk.Label(frame, text="TOS-Gruppe:" )
@@ -763,7 +767,7 @@ class RightFrameTOSGruppe(AllFrames):
self.dispogruppe_neu = tk.StringVar() self.dispogruppe_neu = tk.StringVar()
self.dispogruppe_neu_combo = ttk.Combobox(frame, textvariable=self.dispogruppe_neu) self.dispogruppe_neu_combo = ttk.Combobox(frame, textvariable=self.dispogruppe_neu)
self.dispogruppe_neu_combo['values'] = categories #self.dispogruppe_neu_combo['values'] = categories
self.dispogruppe_neu_combo['state'] = 'readonly' self.dispogruppe_neu_combo['state'] = 'readonly'
self.dispogruppe_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_dispogruppe_neu', self.dispogruppe_neu.get())) self.dispogruppe_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_dispogruppe_neu', self.dispogruppe_neu.get()))
self.dispogruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.dispogruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -778,7 +782,7 @@ class RightFrameTOSGruppe(AllFrames):
self.dispolaufgruppe_neu = tk.StringVar() self.dispolaufgruppe_neu = tk.StringVar()
self.dispolaufgruppe_neu_combo = ttk.Combobox(frame, textvariable=self.dispolaufgruppe_neu) self.dispolaufgruppe_neu_combo = ttk.Combobox(frame, textvariable=self.dispolaufgruppe_neu)
self.dispolaufgruppe_neu_combo['values'] = categories #self.dispolaufgruppe_neu_combo['values'] = categories
self.dispolaufgruppe_neu_combo['state'] = 'readonly' self.dispolaufgruppe_neu_combo['state'] = 'readonly'
self.dispolaufgruppe_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_dispolaufgruppe_neu', self.dispolaufgruppe_neu.get())) self.dispolaufgruppe_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_dispolaufgruppe_neu', self.dispolaufgruppe_neu.get()))
self.dispolaufgruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.dispolaufgruppe_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -816,7 +820,7 @@ class RightFrameTOSGruppe(AllFrames):
self.hersteller_neu = tk.StringVar() self.hersteller_neu = tk.StringVar()
self.hersteller_neu_combo = ttk.Combobox(frame, textvariable=self.hersteller_neu) self.hersteller_neu_combo = ttk.Combobox(frame, textvariable=self.hersteller_neu)
self.hersteller_neu_combo['values'] = categories #self.hersteller_neu_combo['values'] = categories
self.hersteller_neu_combo['state'] = 'readonly' self.hersteller_neu_combo['state'] = 'readonly'
self.hersteller_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_hersteller_neu', self.hersteller_neu.get())) self.hersteller_neu_combo.bind('<<ComboboxSelected>>', lambda event:self.callback('cb_hersteller_neu', self.hersteller_neu.get()))
self.hersteller_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3) self.hersteller_neu_combo.grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
@@ -1029,7 +1033,7 @@ class RightFrameVersion(AllFrames):
self.rownum = AllFrames.get_rows(self) self.rownum = AllFrames.get_rows(self)
col_left = 0 col_left = 0
categories = configs.Allgemein.get_options("Kategorien") #categories = configs.Allgemein.get_options("Kategorien")
# Version # Version
version_label = ttk.Label(frame, text="Version:" ) version_label = ttk.Label(frame, text="Version:" )
+4
View File
@@ -364,6 +364,10 @@ class OberflächeConfig(IniBasedConfig):
"""hole alle Oberflächen, welche als Sektionen in der config gegeben """hole alle Oberflächen, welche als Sektionen in der config gegeben
sind, also OberflächenbehandlungStahl, OberflächenbehandlungAluminium, ... """ sind, also OberflächenbehandlungStahl, OberflächenbehandlungAluminium, ... """
return super().sections() return super().sections()
def get_oberflächen_behandlungen(self):
"""hole alle möglichen Arten von Oberflächenbehandlungen"""
return super().get_section_options('Oberflaechenbehandlungen')
def get_oberfläche_of_type(self, otype): def get_oberfläche_of_type(self, otype):
"""hole alle möglichen Oberflächen Behandlungsarten zum gegebenen Material """hole alle möglichen Oberflächen Behandlungsarten zum gegebenen Material