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): def set_gui_defaults(self):
self._logic.set_gui_defaults() self._logic.set_gui_defaults()
def message_info(self, title, key, questions='ok'): def message_info(self, title, key, values={}):
return self._controller.message_info(title, key, questions) return self._controller.message_info(title, key, values)
def message_error(self, title, key, values={}): def message_error(self, title, key, values={}):
return self._controller.message_error(title, key, values) return self._controller.message_error(title, key, values)
def message_question(self, title, key, values={}): def message_question(self, title, key, values={}):
@@ -864,6 +864,9 @@ class CadItem(DataModel):
current_id = self.get_current_item_id() current_id = self.get_current_item_id()
target_path = os.path.join(self._controller.get_env('out'), str(current_id) + '.xlsx') target_path = os.path.join(self._controller.get_env('out'), str(current_id) + '.xlsx')
infos = dict()
infos['path'] = target_path
# cms = [ "Author", "Teilenummer", "StartRevision", # cms = [ "Author", "Teilenummer", "StartRevision",
# "Bezeichnung1", "Bezeichnung2", "Bezeichnung4", "KategorieNE", # "Bezeichnung1", "Bezeichnung2", "Bezeichnung4", "KategorieNE",
# "BeschaffungsartNE", "TOS-Gruppe_ERP", "Dispogruppe", # "BeschaffungsartNE", "TOS-Gruppe_ERP", "Dispogruppe",
@@ -879,6 +882,9 @@ class CadItem(DataModel):
df = pd.DataFrame.from_dict(data, orient='index') df = pd.DataFrame.from_dict(data, orient='index')
df = (df.T) df = (df.T)
df.to_excel(target_path, index=True) 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): 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!', "aenderungstext_too_long":'Änderungstext_weist zu viele Zeichen auf. Bitte auf 400 Zeichen verkürzen!',
"missing_data":'Fehlende Angaben in der Oberfläche: {Labels}', "missing_data":'Fehlende Angaben in der Oberfläche: {Labels}',
"sivas_db_error":'Diese Assembly existiert nicht. Eventuell ist es nur ein Teil?', "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): def get_configuration(self):
return self._model.get_configuration() return self._model.get_configuration()
def message_info(self, title, key, questions='ok'): def message_info(self, title, key, values):
return messagebox.showinfo(title, messages[key]) 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={}): def message_question(self, title, key, values={}):
text = messages[key] text = messages[key]
if 'teilenummer' in values: if 'teilenummer' in values:
@@ -283,11 +290,11 @@ class Controller(Observer):
self.refresh_gui() self.refresh_gui()
def migrieren(self): def migrieren(self):
self._view.reset_labels()
(ok, missing) = self._model.check_pflichtfelder() (ok, missing) = self._model.check_pflichtfelder()
if ok == False: if ok == False:
labels = ', '.join(missing) labels = ', '.join(missing)
self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels}) self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels})
self._view.reset_labels()
self._view.highlight_labels(missing) self._view.highlight_labels(missing)
return return
invalid_chars = self._config.InvalidChars.get() invalid_chars = self._config.InvalidChars.get()
@@ -300,7 +307,15 @@ class Controller(Observer):
ok = self._model.check_content() ok = self._model.check_content()
if ok == True: if ok == True:
data = self._model.create_migration_data() 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): def zuruecksetzen(self):
cid = self.get_current_item_id() cid = self.get_current_item_id()