um Exportfehlermeldungen ergänzt beim Migrieren

This commit is contained in:
2024-03-19 15:54:19 +01:00
parent ba11ad68ea
commit 0e4b218563
2 changed files with 28 additions and 7 deletions
+8 -2
View File
@@ -553,8 +553,8 @@ class CadItem(DataModel):
def set_gui_defaults(self):
self._logic.set_gui_defaults()
def message_info(self, title, key, questions='ok'):
return self._controller.message_info(title, key, questions)
def message_info(self, title, key, values={}):
return self._controller.message_info(title, key, values)
def message_error(self, title, key, values={}):
return self._controller.message_error(title, key, values)
def message_question(self, title, key, values={}):
@@ -864,6 +864,9 @@ class CadItem(DataModel):
current_id = self.get_current_item_id()
target_path = os.path.join(self._controller.get_env('out'), str(current_id) + '.xlsx')
infos = dict()
infos['path'] = target_path
# cms = [ "Author", "Teilenummer", "StartRevision",
# "Bezeichnung1", "Bezeichnung2", "Bezeichnung4", "KategorieNE",
# "BeschaffungsartNE", "TOS-Gruppe_ERP", "Dispogruppe",
@@ -879,6 +882,9 @@ class CadItem(DataModel):
df = pd.DataFrame.from_dict(data, orient='index')
df = (df.T)
df.to_excel(target_path, index=True)
if not os.path.exists(target_path):
raise FileExistsError("Pfad wurde nicht erzeugt", target_path)
return infos
def tos_to_dict(self, tosgruppe, num2refId, num2child):
+19 -4
View File
@@ -36,6 +36,10 @@ messages = {
"aenderungstext_too_long":'Änderungstext_weist zu viele Zeichen auf. Bitte auf 400 Zeichen verkürzen!',
"missing_data":'Fehlende Angaben in der Oberfläche: {Labels}',
"sivas_db_error":'Diese Assembly existiert nicht. Eventuell ist es nur ein Teil?',
"export_sucessful":'Export der Migrationsdatei erfolgreich. Siehe {path}',
"export_not_sucessful":'Export der Migrationsdatei fehlgeschlagen. Überprüfe Schreibrechte für {path}.',
"export_not_sucessful_file_open":'Export fehlgeschlagen. Datei offen?',
}
@@ -227,8 +231,11 @@ class Controller(Observer):
def get_configuration(self):
return self._model.get_configuration()
def message_info(self, title, key, questions='ok'):
return messagebox.showinfo(title, messages[key])
def message_info(self, title, key, values):
text = messages[key]
if 'path' in values:
text = text.format(path=values['path'])
return messagebox.showinfo(title, text)
def message_question(self, title, key, values={}):
text = messages[key]
if 'teilenummer' in values:
@@ -283,11 +290,11 @@ class Controller(Observer):
self.refresh_gui()
def migrieren(self):
self._view.reset_labels()
(ok, missing) = self._model.check_pflichtfelder()
if ok == False:
labels = ', '.join(missing)
self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels})
self._view.reset_labels()
self._view.highlight_labels(missing)
return
invalid_chars = self._config.InvalidChars.get()
@@ -300,7 +307,15 @@ class Controller(Observer):
ok = self._model.check_content()
if ok == True:
data = self._model.create_migration_data()
self._model.create_migration_file(data)
try:
infos = self._model.create_migration_file(data)
except PermissionError:
self.message_error('export of excel', 'export_not_sucessful_file_open')
except FileExistsError:
self.message_error('export of excel', 'export_not_sucessful')
else:
self.message_info('export of excel', 'export_sucessful', {'path': infos['path']})
def zuruecksetzen(self):
cid = self.get_current_item_id()