Logik für Freigabevermerk und ZUsatzinfos implementiert
This commit is contained in:
+120
-26
@@ -185,6 +185,7 @@ class CadItem(DataModel):
|
|||||||
self._read_only_items = {}
|
self._read_only_items = {}
|
||||||
if self._logic:
|
if self._logic:
|
||||||
self._logic.clear_states()
|
self._logic.clear_states()
|
||||||
|
self._logic.clear_configurations()
|
||||||
|
|
||||||
def add_logic(self, logic):
|
def add_logic(self, logic):
|
||||||
self._logic = logic
|
self._logic = logic
|
||||||
@@ -281,19 +282,42 @@ class CadItem(DataModel):
|
|||||||
def get_all_gui_data(self):
|
def get_all_gui_data(self):
|
||||||
return self._gui_data
|
return self._gui_data
|
||||||
|
|
||||||
def _transform_content_from_csv(self, translated_data):
|
def _transform_content_from_csv(self, translated_data, author=None):
|
||||||
|
""""baut die Texte aus der csv Datei nach dem Einladen um"""
|
||||||
|
# Änderungstext sollte Author enthalten wenn einer gegeben ist
|
||||||
|
if 'aenderungstext_sivas' in translated_data:
|
||||||
|
text= translated_data["aenderungstext_sivas"]
|
||||||
|
text_neu = None
|
||||||
|
# semikolon müssen rausfliegen
|
||||||
|
if re.search(';', text):
|
||||||
|
text_neu = re.sub(r"\s*;\s*", " /", text, flags=re.I)
|
||||||
|
if author:
|
||||||
|
if text_neu:
|
||||||
|
text_neu = '{aenderungstext} (von {author})'.format(aenderungstext=text_neu, author=author)
|
||||||
|
else:
|
||||||
|
text_neu = '{aenderungstext} (von {author})'.format(aenderungstext=text, author=author)
|
||||||
|
if text_neu:
|
||||||
|
translated_data["aenderungstext_neu"] = text_neu
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
default = "Erstanlage"
|
||||||
|
if author:
|
||||||
|
default = 'Erstanlage (von {author})'.format(author=author)
|
||||||
|
translated_data["aenderungstext_neu"] = default
|
||||||
|
|
||||||
# Spezial: Abkürzungen .kpl rausschmeissen. Text eventuell kürzen
|
# Spezial: Abkürzungen .kpl rausschmeissen. Text eventuell kürzen
|
||||||
if "bezeichnung1_sivas" in translated_data:
|
if "bezeichnung1_sivas" in translated_data:
|
||||||
text = translated_data["bezeichnung1_sivas"]
|
text = translated_data["bezeichnung1_sivas"]
|
||||||
translated_data["bezeichnung1_sivas"] = re.sub(r"\s+kpl[.|\s]", "", text, flags=re.I)
|
translated_data["bezeichnung1_neu"] = re.sub(r"\s+kpl[.|\s]", "", text, flags=re.I)
|
||||||
|
|
||||||
# Spezial Halbzeug ohne Sägeliste
|
# Spezial Halbzeug ohne Sägeliste
|
||||||
if "halbzeugOhneSaege_sivas" in translated_data:
|
if "halbzeugOhneSaege_sivas" in translated_data:
|
||||||
text = translated_data["halbzeugOhneSaege_sivas"]
|
text = translated_data["halbzeugOhneSaege_sivas"]
|
||||||
if text =="N":
|
if text =="N":
|
||||||
translated_data["halbzeugOhneSaege_sivas"] = "Sägeliste benötigt"
|
translated_data["halbzeugOhneSaege_neu"] = "Sägeliste benötigt"
|
||||||
else:
|
else:
|
||||||
translated_data["halbzeugOhneSaege_sivas"] = "Sägeliste nicht benötigt"
|
translated_data["halbzeugOhneSaege_neu"] = "Sägeliste nicht benötigt"
|
||||||
|
|
||||||
# Spezial Beschaffungsart
|
# Spezial Beschaffungsart
|
||||||
if "beschaffungsart_sivas" in translated_data:
|
if "beschaffungsart_sivas" in translated_data:
|
||||||
@@ -311,13 +335,23 @@ class CadItem(DataModel):
|
|||||||
# Spezial Freigabevermerk
|
# Spezial Freigabevermerk
|
||||||
if "freigabevermerk_sivas" in translated_data:
|
if "freigabevermerk_sivas" in translated_data:
|
||||||
text = translated_data["freigabevermerk_sivas"]
|
text = translated_data["freigabevermerk_sivas"]
|
||||||
translated_data["freigabevermerk_sivas"] = re.sub(r";", " /", text, flags=re.I)
|
if re.search(';', text):
|
||||||
|
translated_data["freigabevermerk_neu"] = re.sub(r"\s*;\s*", " /", text, flags=re.I)
|
||||||
|
|
||||||
# Spezial Hersteller: aus "80312 - Rehau AG & Co." wird "Rehau AG & Co."
|
# Spezial Hersteller: aus "80312 - Rehau AG & Co." wird "Rehau AG & Co."
|
||||||
if "hersteller_sivas" in translated_data:
|
if "hersteller_sivas" in translated_data:
|
||||||
text = translated_data["hersteller_sivas"]
|
text = translated_data["hersteller_sivas"]
|
||||||
translated_data["hersteller_sivas"] = re.sub(r"^.*-\s+", "", text, flags=re.I)
|
if re.search(r"^.*-\s+", text):
|
||||||
|
translated_data["hersteller_neu"] = re.sub(r"^.*-\s+", "", text, flags=re.I)
|
||||||
|
|
||||||
|
# Spezial Änderungsindex
|
||||||
|
if "aenderungsindex_sivas" not in translated_data:
|
||||||
|
translated_data["aenderungsindex_neu"] = 'A'
|
||||||
|
elif "aenderungsindex_sivas" in translated_data:
|
||||||
|
text = translated_data["aenderungsindex_sivas"]
|
||||||
|
if text.islower():
|
||||||
|
translated_data["aenderungsindex_neu"] = text.upper()
|
||||||
|
|
||||||
return translated_data
|
return translated_data
|
||||||
|
|
||||||
|
|
||||||
@@ -328,21 +362,12 @@ class CadItem(DataModel):
|
|||||||
translated_data[self.excel_to_gui[k]] = v
|
translated_data[self.excel_to_gui[k]] = v
|
||||||
|
|
||||||
# Spezial: Befüllung von Änderungstext mit dem Author, falls in der .csv vorhanden
|
# Spezial: Befüllung von Änderungstext mit dem Author, falls in der .csv vorhanden
|
||||||
|
# Indexerfasser wird nicht in der gui verwaltet. Deshalb Modifikation aus den Rohdaten
|
||||||
|
author = None
|
||||||
if "Indexerfasser" in data:
|
if "Indexerfasser" in data:
|
||||||
author = data["Indexerfasser"]
|
author = data["Indexerfasser"]
|
||||||
if "Aenderungstext" in data:
|
|
||||||
if author:
|
|
||||||
translated_data["aenderungstext_sivas"] = '{aenderungstext} (von {author})'.format(aenderungstext=data["Aenderungstext"], author=author)
|
|
||||||
# Indexerfasser wird nicht in der gui verwaltet. Deshalb Modifikation aus den Rohdate
|
|
||||||
else:
|
|
||||||
translated_data["aenderungstext_sivas"] = data["Aenderungstext"]
|
|
||||||
else:
|
|
||||||
default = "Erstanlage"
|
|
||||||
if author:
|
|
||||||
default = 'Erstanlage (von {author})'.format(author=author)
|
|
||||||
translated_data["aenderungstext_sivas"] = default
|
|
||||||
|
|
||||||
translated_data = self._transform_content_from_csv(translated_data)
|
translated_data = self._transform_content_from_csv(translated_data, author)
|
||||||
return translated_data
|
return translated_data
|
||||||
|
|
||||||
def get_child_of_id(self, sivasId):
|
def get_child_of_id(self, sivasId):
|
||||||
@@ -598,7 +623,7 @@ class GuiLogic():
|
|||||||
# hier holt man die Daten der Configs
|
# hier holt man die Daten der Configs
|
||||||
self._config = configs
|
self._config = configs
|
||||||
# hier werden die Zustände gespeichert
|
# hier werden die Zustände gespeichert
|
||||||
self._states = dict()
|
self._states = dict() # comboboxen disabled/enabled
|
||||||
|
|
||||||
def clear_states(self):
|
def clear_states(self):
|
||||||
self._states = dict()
|
self._states = dict()
|
||||||
@@ -607,6 +632,7 @@ class GuiLogic():
|
|||||||
def set_state(self, key, val):
|
def set_state(self, key, val):
|
||||||
""" merkt sich den status wie 'readonly' etc für dieses item in der GUI"""
|
""" merkt sich den status wie 'readonly' etc für dieses item in der GUI"""
|
||||||
self._states[key] = val
|
self._states[key] = val
|
||||||
|
|
||||||
|
|
||||||
def set_gui_defaults(self):
|
def set_gui_defaults(self):
|
||||||
# set defaults from given logic
|
# set defaults from given logic
|
||||||
@@ -680,6 +706,10 @@ class GuiLogic():
|
|||||||
ret = self.cb_halbzeugnummer(value)
|
ret = self.cb_halbzeugnummer(value)
|
||||||
elif key == 'cb_halbzeuglaenge':
|
elif key == 'cb_halbzeuglaenge':
|
||||||
ret = self.cb_halbzeuglaenge(value)
|
ret = self.cb_halbzeuglaenge(value)
|
||||||
|
elif key == 'cb_freigabevermerk':
|
||||||
|
ret = self.cb_freigabevermerk(value)
|
||||||
|
elif key == 'cb_zusatzinfos_auto_text':
|
||||||
|
ret = self.cb_zusatzinfos_auto_text(value)
|
||||||
else:
|
else:
|
||||||
raise Exception("this callback does not exist "+key)
|
raise Exception("this callback does not exist "+key)
|
||||||
return ret
|
return ret
|
||||||
@@ -693,7 +723,7 @@ class GuiLogic():
|
|||||||
ret = ['cb_neuaufbau', 'cb_aus_halbzeug_neu', 'cb_3Dmodel_neu', 'cb_halbzeugOhneSaege_neu', 'cb_ruestcode_neu',
|
ret = ['cb_neuaufbau', 'cb_aus_halbzeug_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_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_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_herstteilenr_neu']
|
'cb_werkstofftyp_neu', 'cb_material_neu', 'cb_oberflaeche_neu', 'cb_farbe_neu', 'cb_herstteilenr_neu', 'cb_freigabevermerk']
|
||||||
elif key == 'cb_neuaufbau':
|
elif key == 'cb_neuaufbau':
|
||||||
ret = []
|
ret = []
|
||||||
elif key == 'cb_aus_halbzeug_neu':
|
elif key == 'cb_aus_halbzeug_neu':
|
||||||
@@ -709,9 +739,11 @@ class GuiLogic():
|
|||||||
elif key == 'cb_halbzeugOhneSaege_neu':
|
elif key == 'cb_halbzeugOhneSaege_neu':
|
||||||
ret = []
|
ret = []
|
||||||
elif key == 'cb_ruestcode_neu':
|
elif key == 'cb_ruestcode_neu':
|
||||||
ret = [ 'cb_halbzeugOhneSaege_neu', 'cb_mengeneinheit_neu', 'cb_halbzeug_neu']
|
ret = [ 'cb_halbzeugOhneSaege_neu', 'cb_mengeneinheit_neu', 'cb_halbzeug_neu', 'cb_zusatzinfos_auto_text']
|
||||||
elif key == 'cb_fertigungsart_neu':
|
elif key == 'cb_fertigungsart_neu':
|
||||||
ret = ['cb_allgemeintoleranz_neu']
|
ret = ['cb_allgemeintoleranz_neu']
|
||||||
|
elif key == 'cb_allgemeintoleranz_neu':
|
||||||
|
ret = []
|
||||||
elif key == 'cb_fosGruppe_neu':
|
elif key == 'cb_fosGruppe_neu':
|
||||||
ret = []
|
ret = []
|
||||||
elif key == 'cb_kalkulationsart_neu':
|
elif key == 'cb_kalkulationsart_neu':
|
||||||
@@ -729,7 +761,7 @@ class GuiLogic():
|
|||||||
elif key == 'cb_hersteller_neu':
|
elif key == 'cb_hersteller_neu':
|
||||||
ret = []
|
ret = []
|
||||||
elif key == 'cb_werkstoffdiskrepanz':
|
elif key == 'cb_werkstoffdiskrepanz':
|
||||||
ret = []
|
ret = ['cb_zusatzinfos_auto_text']
|
||||||
elif key == 'cb_werkstofftyp_neu':
|
elif key == 'cb_werkstofftyp_neu':
|
||||||
ret = ['cb_material_neu']
|
ret = ['cb_material_neu']
|
||||||
elif key == 'cb_material_neu':
|
elif key == 'cb_material_neu':
|
||||||
@@ -751,6 +783,10 @@ class GuiLogic():
|
|||||||
ret = []
|
ret = []
|
||||||
elif key == 'cb_3dsuchen':
|
elif key == 'cb_3dsuchen':
|
||||||
ret = []
|
ret = []
|
||||||
|
elif key == 'cb_freigabevermerk':
|
||||||
|
ret = []
|
||||||
|
elif key == 'cb_zusatzinfos_auto_text':
|
||||||
|
ret = []
|
||||||
else:
|
else:
|
||||||
raise Exception("this callback does not exist "+key)
|
raise Exception("this callback does not exist "+key)
|
||||||
return ret
|
return ret
|
||||||
@@ -842,7 +878,6 @@ class GuiLogic():
|
|||||||
else:
|
else:
|
||||||
self.set_state('halbzeuglaenge_neu', 'disabled')
|
self.set_state('halbzeuglaenge_neu', 'disabled')
|
||||||
|
|
||||||
|
|
||||||
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")
|
||||||
@@ -1308,7 +1343,7 @@ class GuiLogic():
|
|||||||
|
|
||||||
def cb_halbzeug_neu(self, selected):
|
def cb_halbzeug_neu(self, selected):
|
||||||
ret = dict()
|
ret = dict()
|
||||||
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
|
||||||
rcode = self._model.get_gui_data("ruestcode_sivas")
|
rcode = self._model.get_gui_data("ruestcode_sivas")
|
||||||
halbzeug = self._model.get_gui_data("halbzeug_sivas")
|
halbzeug = self._model.get_gui_data("halbzeug_sivas")
|
||||||
|
|
||||||
@@ -1616,6 +1651,65 @@ class GuiLogic():
|
|||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def cb_freigabevermerk(self, selected):
|
||||||
|
ret = dict()
|
||||||
|
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
|
version_sivas = str(self._model.get_gui_data("version_sivas"))
|
||||||
|
freigabe_sivas = self._model.get_gui_data("freigabevermerk_sivas")
|
||||||
|
|
||||||
|
if selected is None:
|
||||||
|
# Default Vorbelegung
|
||||||
|
default = ''
|
||||||
|
if freigabe_sivas is None:
|
||||||
|
if pdm_kategorie_neu == "Kaufteil":
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if re.findall(r'(\d{6})', version_sivas):
|
||||||
|
default = 'Anpassung an neues Indexsystem, Zeichnung mit Versionsnummer {version} weiterhin gültig'.format(version=version_sivas)
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
ret['freigabevermerk_neu'] = default
|
||||||
|
else:
|
||||||
|
ret['freigabevermerk_neu'] = selected
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def cb_zusatzinfos_auto_text(self, selected):
|
||||||
|
ret = dict()
|
||||||
|
|
||||||
|
aenderungsindex_sivas = self._model.get_gui_data("aenderungsindex_sivas")
|
||||||
|
truemmer = self._model.get_gui_data("truemmer")
|
||||||
|
ruestcode = self._model.get_gui_data("ruestcode_sivas")
|
||||||
|
teilenummer = str(self._model.get_gui_data("teilenummer"))
|
||||||
|
werkstoffdiskr_sivas = self._model.get_gui_data("werkstoffdiskr_sivas")
|
||||||
|
|
||||||
|
if selected is None:
|
||||||
|
text = ''
|
||||||
|
blacklist = self._config.get_blacklist()
|
||||||
|
if aenderungsindex_sivas.islower() :
|
||||||
|
if truemmer == 'J' or ruestcode == '':
|
||||||
|
text = self._config.Zusatz.get('ComboTextblöcke', 'KleinbuchstabeTruemmer')
|
||||||
|
if teilenummer in blacklist:
|
||||||
|
text = self._config.Zusatz.get('ComboTextblöcke', 'KleinbuchstabeTruemmerBlacklist')
|
||||||
|
elif teilenummer in blacklist:
|
||||||
|
text = self._config.Zusatz.get('ComboTextblöcke', 'KleinbuchstabeBlacklist')
|
||||||
|
elif werkstoffdiskr_sivas == True:
|
||||||
|
text = self._config.Zusatz.get('ComboTextblöcke', 'KleinbuchstabeWerkstoffdiskrepanz')
|
||||||
|
else:
|
||||||
|
text = self._config.Zusatz.get('EinzelTextblöcke', 'Kleinbuchstabe')
|
||||||
|
elif truemmer == 'J' or ruestcode == '':
|
||||||
|
if teilenummer in blacklist:
|
||||||
|
text = self._config.Zusatz.get('ComboTextblöcke', 'TruemmerBlacklist')
|
||||||
|
elif werkstoffdiskr_sivas == True:
|
||||||
|
text = self._config.Zusatz.get('ComboTextblöcke', 'TruemmerWerkstoffdiskrepanz')
|
||||||
|
else:
|
||||||
|
text = self._config.Zusatz.get('EinzelTextblöcke', 'Truemmer')
|
||||||
|
|
||||||
|
ret['zusatzinfos_auto_text'] = text
|
||||||
|
else:
|
||||||
|
ret['zusatzinfos_auto_text'] = selected
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
+14
-14
@@ -143,7 +143,6 @@ class Controller(Observer):
|
|||||||
def get_current_item_id(self):
|
def get_current_item_id(self):
|
||||||
return self._model.get_current_item_id()
|
return self._model.get_current_item_id()
|
||||||
|
|
||||||
|
|
||||||
def _load_cid_data2model(self, cid):
|
def _load_cid_data2model(self, cid):
|
||||||
"""lädt alle nötigen Daten für diese ID """
|
"""lädt alle nötigen Daten für diese ID """
|
||||||
# falls eine .json Datei davon im Work Ordner existiert, dann diese zuerst versuchen ins Modell zu laden
|
# falls eine .json Datei davon im Work Ordner existiert, dann diese zuerst versuchen ins Modell zu laden
|
||||||
@@ -202,10 +201,8 @@ class Controller(Observer):
|
|||||||
|
|
||||||
def get_gui_states(self):
|
def get_gui_states(self):
|
||||||
return self._model.get_states()
|
return self._model.get_states()
|
||||||
|
def get_configuration(self):
|
||||||
def set_widget_status(self, widgetname, status):
|
return self._model.get_configuration()
|
||||||
#self._view.set_widget_status(widgetname, status)
|
|
||||||
pass
|
|
||||||
|
|
||||||
def message_info(self, title, key, questions='ok'):
|
def message_info(self, title, key, questions='ok'):
|
||||||
return messagebox.showinfo(title, messages[key])
|
return messagebox.showinfo(title, messages[key])
|
||||||
@@ -254,15 +251,18 @@ class Controller(Observer):
|
|||||||
self._model.check()
|
self._model.check()
|
||||||
|
|
||||||
def zuruecksetzen(self):
|
def zuruecksetzen(self):
|
||||||
cid = self.get_current_item_id()
|
data = dict()
|
||||||
self._model.clear()
|
data['halbzeugnummer_neu'] = {'background':'red', 'foreground':'white'}
|
||||||
self._view.clear_rightframes()
|
self._view.configure(data)
|
||||||
csv_data = self._model.sivas_data_from_csv(str(cid))
|
# cid = self.get_current_item_id()
|
||||||
# transform the csv keys into keys used behind the gui
|
# self._model.clear()
|
||||||
gui_data = self._model.csv2guidata(csv_data)
|
# self._view.clear_rightframes()
|
||||||
self.set_gui_dict(gui_data)
|
# csv_data = self._model.sivas_data_from_csv(str(cid))
|
||||||
# create dropdown and other defaults
|
# # transform the csv keys into keys used behind the gui
|
||||||
self._model.set_gui_defaults()
|
# gui_data = self._model.csv2guidata(csv_data)
|
||||||
|
# self.set_gui_dict(gui_data)
|
||||||
|
# # create dropdown and other defaults
|
||||||
|
# self._model.set_gui_defaults()
|
||||||
|
|
||||||
def suche_3d(self):
|
def suche_3d(self):
|
||||||
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
||||||
|
|||||||
Reference in New Issue
Block a user