siehe JIRA SUR-645 - Fehlendes Leerzeichen bei Ersetzung von Semikola in den Feldern 'Änderungstext' und 'Freigabevermerk' ergänzt / Logik der Feldprüfung hinsichtlich unzulässigen Zeichen überarbeitet. Konkret werden nun nicht mehr die Werte in der Spalte 'SIVAS-Werte' geprüft, wenn zusätzlich Eintragungen in der Spalte 'Überschriebene Werte' vorliegen / Ergänzend zu SUR-645 folgende Korrektur vorgenommen: Der korrigierte Text im Feld 'Freigabevermerk' (wenn Semikola im SIVAS-Text vorlagen) wurde bisher wieder gelöscht, sobald eine PDM-Kategorie ausgewählt wurde. Diese Löschung erfolgt nun nicht mehr, d.h. der überschriebene Text liegt nun auch nach Wahl der Kategorie weiterhin vor

This commit is contained in:
2025-07-13 18:11:28 +02:00
parent f5cc53253e
commit 6c31b9fbf3
+48 -7
View File
@@ -660,6 +660,20 @@ class CadItem(DataModel):
if not self.get_gui_data(key_neu): if not self.get_gui_data(key_neu):
missing.append(self.key2label[key_neu]) missing.append(self.key2label[key_neu])
def get_key_with_data(self, key_sivas: str, key_neu: str, key_list: list = []):
''' Vergleicht Inhalt von SIVAS-Feld und überschriebenem Feld:
- Sind nur das überschriebene oder das überschriebe und das SIVAS-Feld befüllt, wird das überschriebene zurückgegeben
- Ist nur das SIVAS-Feld befüllt, wird das SIVAS-Feld zurückgegeben
- Ist keines von beiden Feldern befüllt, wird None zurückgegeben '''
if not self.get_gui_data(key_neu):
if not self.get_gui_data(key_sivas):
return
key_list.append(key_sivas)
else:
key_list.append(key_neu)
return key_list
def check_pflichtfelder(self): def check_pflichtfelder(self):
"""Allgemeine Prüfungen: """Allgemeine Prüfungen:
Solange nicht alle Pflichtfelder einen Wert aufweisen, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox Solange nicht alle Pflichtfelder einen Wert aufweisen, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox
@@ -763,13 +777,36 @@ class CadItem(DataModel):
return (True, {}) return (True, {})
def check_improper_chars(self, invalid_chars): def check_improper_chars(self, invalid_chars):
""" überprüft ob inder Oberfläche nicht erlaubte Zeichen eingetragen wurden""" """
wrongchars = dict() Überprüft, ob in den Eingabefeldern der GUI unzulässige Zeichen eingetragen wurden.
for key in self.key2label: Die unzulässigen Zeichen sind in cfg/InvalidCharacters.txt aufgelistet.
if key == "model3d_neu": # 3D Teil Pfad ausnehmen Ursprung dieser Liste ist \\ruledesigner\RDF_Daten\Konfigurator\CustomVaulting\ERP_Item.ini -> Option "InvalidCharacters"
continue """
if key == "material_sivas": # Wert in GUI-Spalte "SIVAS-Werte in Feld "Material" nicht berücksichtigen wrongchars = {}
continue keys_to_check = []
# Bei diesen Feldern soll geprüft werden, ob sie einen Inhalt aufweisen. Wenn nicht, muss auch nicht geprüft werden, ob sich darin unzulässige Zeichen befinden.
check_key_for_data = ["halbzeugnummer_neu", "halbzeuglaenge_neu", "zusatzinfos_auto_text", "zusatzinfos_bendef_text"]
keys_with_data = list(filter(lambda key: self.get_gui_data(key) != "", check_key_for_data))
keys_to_check + keys_with_data
# Mapping SIVAS-Felder und Überschriebene Felder. Hier soll jeweils geprüft werden, welches der beiden einen Wert enthält.
# Wenn beide Felder einen Wert enthalten soll nur das überschriebene Feld nach unzulässigen Zeichen durchsucht werden, ansonsten das SIVAS-Feld
compare_keys_for_data = { "bezeichnung1_sivas": "bezeichnung1_neu",
"tosgruppe_sivas": "tosgruppe_neu",
"hersteller_sivas": "hersteller_neu",
"ersatzfuer_sivas": "ersatzfuer_neu",
"ersetztdurch_sivas": "ersetztdurch_neu",
"herstteilenr_sivas": "herstteilenr_neu",
"material_sivas": "material_neu",
"aenderungsindex_sivas": "aenderungsindex_neu",
"aenderungstext_sivas": "aenderungstext_neu",
"freigabevermerk_sivas": "freigabevermerk_neu",
}
for sivas_key, neu_key in compare_keys_for_data.items():
self.get_key_with_data(sivas_key, neu_key, keys_to_check)
for key in keys_to_check:
content = self.get_gui_data(key) content = self.get_gui_data(key)
for c in invalid_chars: for c in invalid_chars:
if c in content: if c in content:
@@ -2527,6 +2564,7 @@ class GuiLogic():
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu") pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
version_sivas = str(self._model.get_gui_data("version_sivas")) version_sivas = str(self._model.get_gui_data("version_sivas"))
freigabe_sivas = self._model.get_gui_data("freigabevermerk_sivas") freigabe_sivas = self._model.get_gui_data("freigabevermerk_sivas")
freigabe_neu = self._model.get_gui_data("freigabevermerk_neu") # Brauchen wir für den Fall, dass der SIVAS-Freigabevermerk beim Einlesen bereits transformiert wurden, da er ein Semikolon enthielt.
if selected is None: if selected is None:
# Default Vorbelegung # Default Vorbelegung
@@ -2539,6 +2577,9 @@ class GuiLogic():
default = 'Anpassung an neues Indexsystem, Zeichnung mit Versionsnummer {version} weiterhin gültig'.format(version=version_sivas) default = 'Anpassung an neues Indexsystem, Zeichnung mit Versionsnummer {version} weiterhin gültig'.format(version=version_sivas)
else: else:
default = '-' default = '-'
else:
if freigabe_neu is not None:
default = freigabe_neu
ret['freigabevermerk_neu'] = default ret['freigabevermerk_neu'] = default
else: else:
ret['freigabevermerk_neu'] = selected ret['freigabevermerk_neu'] = selected