Logik weiter gebaut bis Bezeichnung 1. Überprüfungen der Bezeichner nach kpl./KPL. Abhängigkeiten davor wie Farbe, Oberfläche usw. ergänzt
This commit is contained in:
+52
-14
@@ -2,6 +2,7 @@ import json
|
||||
import pandas as pd
|
||||
import os
|
||||
import glob
|
||||
import re
|
||||
|
||||
class DataModel:
|
||||
def __init__(self):
|
||||
@@ -216,7 +217,7 @@ class CadItem(DataModel):
|
||||
for k,v in data:
|
||||
self.set_data(k,v)
|
||||
def set_data(self, key, val):
|
||||
if key not in self._data_keys:
|
||||
if key not in self.data_keys:
|
||||
raise Exception("this data can not be set "+ key)
|
||||
else:
|
||||
self._data[key] = val
|
||||
@@ -254,6 +255,12 @@ class CadItem(DataModel):
|
||||
if k in self.excel_to_gui and v is not None:
|
||||
translated_data[self.excel_to_gui[k]] = v
|
||||
|
||||
# bezeichnung1_sivas
|
||||
# Spezial: Abkürzungen .kpl rausschmeissen. Text eventuell kürzen
|
||||
if "bezeichnung1_sivas" in translated_data:
|
||||
text = translated_data["bezeichnung1_sivas"]
|
||||
translated_data["bezeichnung1_sivas"] = re.sub(r"\s+kpl[.|\s]", "", text, flags=re.I)
|
||||
|
||||
# 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"])
|
||||
@@ -261,6 +268,12 @@ class CadItem(DataModel):
|
||||
self.set_gui_dict(translated_data)
|
||||
return translated_data
|
||||
|
||||
def get_child_of_id(self, sivasId):
|
||||
parent_children = self.get_parent_children()
|
||||
if str(sivasId) in parent_children:
|
||||
return parent_children[str(sivasId)][0]
|
||||
else:
|
||||
return None
|
||||
|
||||
def sivas_data_from_csv(self, cid):
|
||||
path = os.path.join(self._controller.get_env("data"), cid + '.csv')
|
||||
@@ -420,8 +433,7 @@ class GuiLogic():
|
||||
self.call_and_set_data('cb_halbzeugoberflaeche')
|
||||
self.call_and_set_data('cb_lebenszyklus_status_neu')
|
||||
self.call_and_set_data('cb_3Dmodel_neu')
|
||||
|
||||
|
||||
|
||||
def call_and_set_data(self, callbackfunc):
|
||||
eval('self._model.set_gui_dict(self.'+callbackfunc+'(None))')
|
||||
|
||||
@@ -492,9 +504,9 @@ class GuiLogic():
|
||||
elif key == 'cb_neuaufbau':
|
||||
ret = []
|
||||
elif key == 'cb_aus_halbzeug_neu':
|
||||
ret = []
|
||||
ret = ['cb_halbzeugoberflaeche', 'cb_halbzeugfarbe']
|
||||
elif key == "cb_halbzeugoberflaeche":
|
||||
ret = ['cb_halbzeugfarbe']
|
||||
ret = ['cb_halbzeugfarbe', 'cb_halbzeugfarbe']
|
||||
elif key == "cb_halbzeugfarbe":
|
||||
ret = []
|
||||
elif key == 'cb_lebenszyklus_status_neu':
|
||||
@@ -561,6 +573,16 @@ class GuiLogic():
|
||||
ret['cb_pdm_kategorie_neu'] = categories
|
||||
else:
|
||||
ret['pdm_kategorie_neu'] = selected
|
||||
|
||||
# Entry-Abhängigkeit der Bezeichnung 1. keine eigene Callback. Abhängig von der Kategorie
|
||||
pdm_kat = ret["pdm_kategorie_neu"]
|
||||
if pdm_kat == "Baugruppe" or pdm_kat == "Schweissbaugruppe":
|
||||
maxlen = 5 # Längenbeschränkung = 45 Zeichen
|
||||
else:
|
||||
maxlen = 10 # Längenbeschränkung = 50 Zeichen
|
||||
text = self._model.get_gui_data("bezeichnung1_sivas")
|
||||
if len(text) > maxlen:
|
||||
ret["bezeichnung1_neu"] = text[0:maxlen]
|
||||
return ret
|
||||
|
||||
def cb_neuaufbau(self, trueOrfalse):
|
||||
@@ -576,20 +598,32 @@ class GuiLogic():
|
||||
def cb_aus_halbzeug_neu(self, trueOrfalse):
|
||||
ret = dict()
|
||||
pdm_kat = self._model.get_gui_data("pdm_kategorie_neu")
|
||||
|
||||
# normalerweise ist der Haken nicht gesetz
|
||||
# normalerweise ist der Haken nicht gesetzt
|
||||
ret["aus_halbzeug_neu"] = False
|
||||
if pdm_kat == "Einzelteil":
|
||||
# nur beim Einzelteil darf der Nutzer überhaupt anwählen ob ein Halbzeug enthalten ist oder nicht
|
||||
if not trueOrfalse is None:
|
||||
ret["aus_halbzeug_neu"] = trueOrfalse
|
||||
|
||||
# Abfrage zur Feld "Halbzeugnummer". Dieses ist nicht gesteuert durch eine eigene Combobox
|
||||
ret["halbzeugnummer_neu"] = ''
|
||||
aus_halbzeug = ret["aus_halbzeug_neu"]
|
||||
if aus_halbzeug == True:
|
||||
# wenn Kind der aktuellen Teilenummer in RD_Teilenummern.csv ist, dann anzeigen
|
||||
current_id = self._model.get_current_item_id()
|
||||
child_id = self._model.get_child_of_id(current_id)
|
||||
if child_id is not None:
|
||||
Teilenummern = self._config.TeileNummern.get_ruledesigner_ids()
|
||||
if child_id in Teilenummern:
|
||||
ret["halbzeugnummer_neu"] = child_id
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def cb_halbzeugoberflaeche(self, selected):
|
||||
ret = dict()
|
||||
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()
|
||||
if selected is None:
|
||||
ret['halbzeugoberflaeche_neu'] = oarten[0]
|
||||
@@ -619,11 +653,7 @@ class GuiLogic():
|
||||
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||
|
||||
# setze die Inhalte der abhängigen Comboboxen neu
|
||||
ret = {
|
||||
'halbzeugfarbe_neu': '',
|
||||
'cb_halbzeugfarbe': '',
|
||||
}
|
||||
if aus_halbzeug == "True":
|
||||
if aus_halbzeug == True:
|
||||
if halbzeugoberflaeche == "eloxieren":
|
||||
farben_elox = self._config.Farben.get_farben_eloxieren()
|
||||
if selected is None:
|
||||
@@ -638,8 +668,16 @@ class GuiLogic():
|
||||
ret['cb_halbzeugfarbe'] = farbauswahl
|
||||
else:
|
||||
ret['halbzeugfarbe_neu'] = selected
|
||||
else:
|
||||
ret = {
|
||||
'halbzeugfarbe_neu': '',
|
||||
'cb_halbzeugfarbe': '',
|
||||
}
|
||||
else:
|
||||
pass
|
||||
ret = {
|
||||
'halbzeugfarbe_neu': '',
|
||||
'cb_halbzeugfarbe': '',
|
||||
}
|
||||
return ret
|
||||
|
||||
def cb_3Dmodel_neu(self, selected):
|
||||
|
||||
Reference in New Issue
Block a user