diff --git a/.idea/GeneratorCSV 3.1.iml b/.idea/GeneratorCSV 3.1.iml index 9c88284..ed5ea5b 100644 --- a/.idea/GeneratorCSV 3.1.iml +++ b/.idea/GeneratorCSV 3.1.iml @@ -1,7 +1,9 @@ - + + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 010d93d..27fa3ca 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -86,6 +86,7 @@ + @@ -108,6 +109,6 @@ - + \ No newline at end of file diff --git a/changelog-UC.txt b/changelog-UC.txt index 66df564..def0dfb 100644 --- a/changelog-UC.txt +++ b/changelog-UC.txt @@ -45,3 +45,10 @@ - Przeniesienie głównego modułu do folderu nadrzędnego zamiast pliku inicjacji - Zmieniony sposób ładowania modułów - Ulepszona obsługa wyjątków dla ładowania modułów + +4.0 Alpha (Build 19355) +- Naprawienie przycisku instrukcji +- Zmiana nazwy pliku instrukcji na 'readme.txt' +- Naprawienie przycisków filedialog +- Zmiana zmiennej treści błędu na string +- Ulepszona obsługa wyjątków dla ładowania pliku konfiguracyjnego, formatu i 'readme.txt' \ No newline at end of file diff --git a/generator.py b/generator.py index 5d9ad7c..7aec5bc 100644 --- a/generator.py +++ b/generator.py @@ -51,7 +51,7 @@ except ModuleNotFoundError: except Exception as exc: print('Wystąpił krytyczny błąd!') print('Nieznany błąd podczas ładowania jednego z modułów programu (dialog.py). Nie można załadować programu.') - print('Treść błędu: ' + exc) + print('Treść błędu: ' + str(exc)) print('Kod błędu: E00x0010') wait = input('Naciśnij ENTER aby wyjść') SS.exit(0) @@ -67,7 +67,7 @@ except ModuleNotFoundError: except Exception as exc: print('Wystąpił krytyczny błąd!') print('Nieznany błąd podczas ładowania jednego z modułów programu (load_config.py). Nie można załadować programu.') - print('Treść błędu: ' + exc) + print('Treść błędu: ' + str(exc)) print('Kod błędu: E00x0020') wait = input('Naciśnij ENTER aby wyjść') SS.exit(0) @@ -83,7 +83,7 @@ except ModuleNotFoundError: except Exception as exc: print('Wystąpił krytyczny błąd!') print('Nieznany błąd podczas ładowania jednego z modułów programu (load_format.py). Nie można załadować programu.') - print('Treść błędu: ' + exc) + print('Treść błędu: ' + str(exc)) print('Kod błędu: E00x0030') wait = input('Naciśnij ENTER aby wyjść') SS.exit(0) @@ -184,7 +184,7 @@ class Main(TK.Tk): Pole1.grid(row = wiersz, column = 1) def Pole1BrowseDialog(): - Pole1Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*"))) + Pole1Browse.filename = TKfld.askopenfilename(title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*"))) Pole1.delete(0, 'end') Pole1.insert(0, Pole1Browse.filename) @@ -217,7 +217,7 @@ class Main(TK.Tk): Pole2.grid(row = wiersz, column = 1) def Pole2BrowseDialog(): - Pole2Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*"))) + Pole2Browse.filename = TKfld.askopenfilename(title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*"))) Pole2.delete(0, 'end') Pole2.insert(0, Pole2Browse.filename) @@ -249,7 +249,7 @@ class Main(TK.Tk): Pole3.grid(row = wiersz, column = 1) def Pole3BrowseDialog(): - Pole3Browse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*"))) + Pole3Browse.filename = TKfld.askopenfilename(title = "Wybierz plik tekstowy z danymi", filetypes = (("Pliki txt", "*.txt"), ("Wszystkie pliki", "*.*"))) Pole3.delete(0, 'end') Pole3.insert(0, Pole3Browse.filename) @@ -291,7 +291,7 @@ class Main(TK.Tk): PoleKonta.grid(row = wiersz, column = 1) def PoleKontaBrowseDialog(): - PoleKontaBrowse.filename = TKfld.askopenfilename(initialdir="C:/", title="Wybierz plik .csv dla poczty", filetypes=(("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*"))) + PoleKontaBrowse.filename = TKfld.askopenfilename(title="Wybierz plik .csv dla poczty", filetypes=(("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*"))) PoleKonta.delete(0, 'end') PoleKonta.insert(0, PoleKontaBrowse.filename) @@ -324,13 +324,13 @@ class Main(TK.Tk): PoleOffice.grid(row = wiersz, column = 1) def PoleOfficeBrowseDialog(): - PoleOfficeBrowse.filename = TKfld.askopenfilename(initialdir = "C:/", title = "Wybierz plik .csv dla poczty", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*"))) + PoleOfficeBrowse.filename = TKfld.askopenfilename(title = "Wybierz plik .csv dla office365", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*"))) PoleOffice.delete(0, 'end') PoleOffice.insert(0, PoleOfficeBrowse.filename) PoleOfficeBrowse = TK.Button(Ramka2) PoleOfficeBrowse.config(text = '...') - PoleOfficeBrowse.config(command = PoleKontaBrowseDialog) + PoleOfficeBrowse.config(command = PoleOfficeBrowseDialog) PoleOfficeBrowse.config(bg = M_przycisktlo) PoleOfficeBrowse.config(fg = M_przycisktext) PoleOfficeBrowse.config(relief = 'flat') @@ -366,7 +366,7 @@ class Main(TK.Tk): PoleKontaEksport.grid(row = wiersz, column = 1) def PoleKontaEksportBrowseDialog(): - PoleKontaEksportBrowse.filename = TKfld.saveasfilename(initialdir = "C:/", title = "Zapisz", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*"))) + PoleKontaEksportBrowse.filename = TKfld.askdirectory(title = "Zapisz w...") PoleKontaEksport.delete(0, 'end') PoleKontaEksport.insert(0, PoleKontaEksportBrowse.filename) @@ -398,7 +398,7 @@ class Main(TK.Tk): PoleOfficeEksport.grid(row = wiersz, column = 1) def PoleOfficeEksportBrowseDialog(): - PoleOfficeEksportBrowse.filename = TKfld.saveasfilename(initialdir = "C:/", title = "Zapisz", filetypes = (("Pliki csv", "*.csv"), ("Wszystkie pliki", "*.*"))) + PoleOfficeEksportBrowse.filename = TKfld.askdirectory(title = "Zapisz w...",) PoleOfficeEksport.delete(0, 'end') PoleOfficeEksport.insert(0, PoleOfficeEksportBrowse.filename) @@ -443,11 +443,13 @@ class Main(TK.Tk): def InfoOpen(): try: - x = open('.\instruction.txt') + x = open('readme.txt') except FileNotFoundError: MDdlg.err(4) + except: + MDdlg.err(22) else: - OS.system("notepad .\instruction.txt") + OS.system("notepad readme.txt") PrzyciskINFO = TK.Button(PasekDolny) PrzyciskINFO.config(text = 'Instrukcja') diff --git a/modules/__pycache__/__init__.cpython-38.pyc b/modules/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000..624116c Binary files /dev/null and b/modules/__pycache__/__init__.cpython-38.pyc differ diff --git a/modules/__pycache__/dialog.cpython-38.pyc b/modules/__pycache__/dialog.cpython-38.pyc new file mode 100644 index 0000000..dea199b Binary files /dev/null and b/modules/__pycache__/dialog.cpython-38.pyc differ diff --git a/modules/__pycache__/load_config.cpython-38.pyc b/modules/__pycache__/load_config.cpython-38.pyc new file mode 100644 index 0000000..9d50b02 Binary files /dev/null and b/modules/__pycache__/load_config.cpython-38.pyc differ diff --git a/modules/__pycache__/load_format.cpython-38.pyc b/modules/__pycache__/load_format.cpython-38.pyc new file mode 100644 index 0000000..df0cdcc Binary files /dev/null and b/modules/__pycache__/load_format.cpython-38.pyc differ diff --git a/modules/dialog.py b/modules/dialog.py index 5d05e46..e7f9174 100644 --- a/modules/dialog.py +++ b/modules/dialog.py @@ -20,26 +20,30 @@ # ----------------------------------------------- # Kody dialogowe # ------------------------------------------------- # E = [] # Błędy -E.append(["Nie znaleziono pliku konfiguracyjnego (config.cfg).\nPrzywróć plik. (E01x0000)", True]) #0 -E.append(["Błąd pliku konfiguracyjnego (config.cfg).\nNiepoprawna ilość wierszy w pliku\nPrzywróć plik. (E01x0001)", True]) #1 -E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 1\nPrzywróć plik. (E01x0011)", True]) #2 -E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 2\nPrzywróć plik. (E01x0012)", True]) #3 -E.append(["Nie znaleziono pliku składowego (instruction.txt)\nPrzywróć plik. (E03x0010)", False]) #4 +E.append(["Nie znaleziono pliku konfiguracyjnego (config.cfg).\nPrzywróć plik. (E01x0001)", True]) #0 +E.append(["Błąd pliku konfiguracyjnego (config.cfg).\nNiepoprawna ilość wierszy w pliku\nPrzywróć plik. (E01x0011)", True]) #1 +E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 1\nPrzywróć plik. (E01x0021)", True]) #2 +E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 2\nPrzywróć plik. (E01x0022)", True]) #3 +E.append(["Nie znaleziono pliku składowego (readme.txt)\nPrzywróć plik. (E03x0011)", False]) #4 E.append(["Nie znaleziono pliku formatu (format.fmt).\nPrzywróć plik (E02x0000)", True]) #5 -E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników klasy w formacie uczniów nie jest równa 1 (E02x0002)", False]) #6 -E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników oddziału w formacie uczniów nie jest równa 1 (E02x0003)", False]) #7 -E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników nazwiska w formacie uczniów nie jest równa 1 (E02x0004)", False]) #8 -E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników imienia w formacie uczniów nie jest równa 1 (E02x0005)", False]) #9 -E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników loginu w formacie uczniów nie jest równa 1 (E02x0006)", False]) #10 -E.append(["Błąd pliku formatu (format.fmt).\nPusty wiersz w formacie uczniów (E02x0001).", False]) #11 -E.append(["Błąd pliku formatu (format.fmt).\nPusty wiersz w formacie nauczycieli (E02x0011).", False]) #12 -E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników nazwiska w formacie nauczycieli nie jest równa 1 (E02x0012)", False]) #13 -E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników imienia w formacie nauczycieli nie jest równa 1 (E02x0013)", False]) #14 -E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników loginu w formacie nauczycieli nie jest równa 1 (E02x0014)", False]) #15 -E.append(["Błąd pliku formatu (format.fmt).\nNiedozwolone znaki w formacie. (E02x0020).", False]) #16 -E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 4\nPrzywróć plik. (E01x0013)", True]) #17 -E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 6\nPrzywróć plik. (E01x0014)", True]) #18 -E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 7\nPrzywróć plik. (E01x0015)", True]) #19 +E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników klasy w formacie uczniów nie jest równa 1 (E02x0102)", False]) #6 +E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników oddziału w formacie uczniów nie jest równa 1 (E02x0103)", False]) #7 +E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników nazwiska w formacie uczniów nie jest równa 1 (E02x0104)", False]) #8 +E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników imienia w formacie uczniów nie jest równa 1 (E02x0105)", False]) #9 +E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie uczniów.\nIlość znaczników loginu w formacie uczniów nie jest równa 1 (E02x0106)", False]) #10 +E.append(["Błąd pliku formatu (format.fmt).\nPusty wiersz w formacie uczniów (E02x0101).", False]) #11 +E.append(["Błąd pliku formatu (format.fmt).\nPusty wiersz w formacie nauczycieli (E02x0111).", False]) #12 +E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników nazwiska w formacie nauczycieli nie jest równa 1 (E02x0112)", False]) #13 +E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników imienia w formacie nauczycieli nie jest równa 1 (E02x0113)", False]) #14 +E.append(["Błąd pliku formatu (format.fmt).\nNie poprawne dane w formacie nauczycieli.\nIlość znaczników loginu w formacie nauczycieli nie jest równa 1 (E02x0114)", False]) #15 +E.append(["Błąd pliku formatu (format.fmt).\nNiedozwolone znaki w formacie. (E02x0120).", False]) #16 +E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 4\nPrzywróć plik. (E01x0023)", True]) #17 +E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 6\nPrzywróć plik. (E01x0024)", True]) #18 +E.append(["Bład pliku konfiguracyjnego (config.cfg).\nNiepoprawne dane w wierszu 7\nPrzywróć plik. (E01x0025)", True]) #19 +E.append(["Nieznany błąd podczas ładowania pliku konfiguracyjnego (config.cfg). (E01x0000)", True]) #20 +E.append(["Nieznany błąd podczas ładowania pliku formatu (format.fmt)). (E02x0000)", True]) #21 +E.append(["Nieznany błąd podczas ładowania pliku składowego (readme.txt) (E03x0011)", False]) #22 + I = [] # Informacje diff --git a/modules/load_config.py b/modules/load_config.py index 3873945..73ac62e 100644 --- a/modules/load_config.py +++ b/modules/load_config.py @@ -36,7 +36,7 @@ except ModuleNotFoundError: except Exception as exc: print('Wystąpił krytyczny błąd!') print('Nieznany błąd podczas ładowania jednego z modułów programu (dialog.py). Nie można załadować programu.') - print('Treść błędu: ' + exc) + print('Treść błędu: ' + str(exc)) print('Kod błędu: E00x0010') wait = input('Naciśnij ENTER aby wyjść') SS.exit(0) @@ -55,7 +55,7 @@ def CheckConfig(settings): try: if len(settings) != 7: error = int('x') - except ValueError: + except: MDdlg.err(1) # Linia 1 (0/1) @@ -63,7 +63,7 @@ def CheckConfig(settings): check = int(settings[0]) if 0 > check > 1: error = int('x') - except ValueError: + except: MDdlg.err(2) # Linia 2 (utf-8) @@ -71,25 +71,25 @@ def CheckConfig(settings): try: if settings[1] not in DostepneKodowanieWyjsciowe: error = int('x') - except ValueError: + except: MDdlg.err(3) # Linia 4 (int) try: x = int(settings[3]) - except ValueError: + except: MDdlg.err(17) # Linia 6 (int) try: x = int(settings[5]) - except ValueError: + except: MDdlg.err(18) # Linia 7 (int) try: x = int(settings[6]) - except ValueError: + except: MDdlg.err(19) @@ -99,6 +99,8 @@ def read(): check = open('.\config.cfg') except FileNotFoundError: MDdlg.err(0) + except: + MDdlg.err(20) else: with open('.\config.cfg', 'r') as cfg: config = cfg.read().split('\n') @@ -117,6 +119,8 @@ def edit(settings): check = open('.\config.cfg') except FileNotFoundError: MDdlg.err(0) + except: + MDdlg.err(20) else: SettingsToSave = [] SettingsToSave.append('Ciemny motyw(0/1): ' + str(settings[0]) + '\n') diff --git a/modules/load_format.py b/modules/load_format.py index 848cfbb..cc65371 100644 --- a/modules/load_format.py +++ b/modules/load_format.py @@ -36,7 +36,7 @@ except ModuleNotFoundError: except Exception as exc: print('Wystąpił krytyczny błąd!') print('Nieznany błąd podczas ładowania jednego z modułów programu (dialog.py). Nie można załadować programu.') - print('Treść błędu: ' + exc) + print('Treść błędu: ' + str(exc)) print('Kod błędu: E00x0010') wait = input('Naciśnij ENTER aby wyjść') SS.exit(0) @@ -55,14 +55,16 @@ def CheckFormat(Read, format): poprawne = True check = True while check: + # Uczniowie uczniowiefmt = '' for x in format[0]: uczniowiefmt += x + # Sprawdzanie pustych linii try: if format[0].count('') > 0: error = int('x') - except ValueError: + except: MDdlg.err(11) if Read: SS.exit(0) @@ -70,10 +72,11 @@ def CheckFormat(Read, format): poprawne = False break + # Sprawdzanie ilości liter K try: if uczniowiefmt.count('K') != 1: error = int('x') - except ValueError: + except: MDdlg.err(6) if Read: SS.exit(0) @@ -81,10 +84,11 @@ def CheckFormat(Read, format): poprawne = False break + # Sprawdzanie ilości liter O try: if uczniowiefmt.count('O') != 1: error = int('x') - except ValueError: + except: MDdlg.err(7) if Read: SS.exit(0) @@ -92,10 +96,11 @@ def CheckFormat(Read, format): poprawne = False break + # Sprawdzanie ilości liter N try: if uczniowiefmt.count('N') != 1: error = int('x') - except ValueError: + except: MDdlg.err(8) if Read: SS.exit(0) @@ -103,10 +108,11 @@ def CheckFormat(Read, format): poprawne = False break + # Sprawdzanie ilości liter I try: if uczniowiefmt.count('I') != 1: error = int('x') - except ValueError: + except: MDdlg.err(9) if Read: SS.exit(0) @@ -114,10 +120,11 @@ def CheckFormat(Read, format): poprawne = False break + # Sprawdzanie ilości liter L try: if uczniowiefmt.count('L') != 1: error = int('x') - except ValueError: + except: MDdlg.err(10) if Read: SS.exit(0) @@ -125,10 +132,17 @@ def CheckFormat(Read, format): poprawne = False break + + # Nauczyciele + nauczycielefmt = '' + for x in format[1]: + nauczycielefmt += x + + # Sprawdzanie pustych linii try: if format[1].count('') > 0: error = int('x') - except ValueError: + except: MDdlg.err(12) if Read: SS.exit(0) @@ -136,14 +150,11 @@ def CheckFormat(Read, format): poprawne = False break - nauczycielefmt = '' - for x in format[1]: - nauczycielefmt += x - + # Sprawdzanie ilości liter N try: if nauczycielefmt.count('N') != 1: error = int('x') - except ValueError: + except: MDdlg.err(13) if Read: SS.exit(0) @@ -151,10 +162,11 @@ def CheckFormat(Read, format): poprawne = False break + # Sprawdzanie ilości liter I try: if nauczycielefmt.count('I') != 1: error = int('x') - except ValueError: + except: MDdlg.err(14) if Read: SS.exit(0) @@ -162,10 +174,11 @@ def CheckFormat(Read, format): poprawne = False break + # Sprawdzanie ilości liter L try: if nauczycielefmt.count('L') != 1: error = int('x') - except ValueError: + except: MDdlg.err(15) if Read: SS.exit(0) @@ -173,12 +186,14 @@ def CheckFormat(Read, format): poprawne = False break + + # Sprawdzanie poprawności znaków NiedozwoloneZnaki = ['1','2','3','4','5','6','7','8','9','0','W','E','R','T','Y','U','P','A','S','D','F','G','H','J','Z','C','V','B','M'] try: for x in NiedozwoloneZnaki: if x in nauczycielefmt+uczniowiefmt: error = int('x') - except ValueError: + except: MDdlg.err(16) if Read: SS.exit(0) @@ -186,7 +201,8 @@ def CheckFormat(Read, format): poprawne = False break check = False - return poprawne + if not Read: + return poprawne @@ -196,6 +212,8 @@ def read(): check = open(r'.\format.fmt') except FileNotFoundError: MDdlg.err(5) + except: + MDdlg.err(21) else: with open(r'.\format.fmt', 'r') as fmt: fmt = fmt.read().split('\n\n') @@ -217,6 +235,8 @@ def edit(format): check = open(r'.\format.fmt') except FileNotFoundError: MDdlg.err(5) + except: + MDdlg.err(21) else: FormatToSaveX = [] for x in xformat: diff --git a/instruction.txt b/readme.txt similarity index 100% rename from instruction.txt rename to readme.txt