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:
2024-02-15 18:57:05 +01:00
parent f7033ebe76
commit 39e5f3ddbb
+52 -14
View File
@@ -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):