diff --git a/assets/documentation-page/description/format-danych.png b/assets/documentation-page/description/format-danych.png new file mode 100644 index 0000000..d6b65f5 Binary files /dev/null and b/assets/documentation-page/description/format-danych.png differ diff --git a/assets/documentation-page/description/generator-csv.png b/assets/documentation-page/description/generator-csv.png new file mode 100644 index 0000000..0475cda Binary files /dev/null and b/assets/documentation-page/description/generator-csv.png differ diff --git a/assets/documentation-page/description/o-programie.png b/assets/documentation-page/description/o-programie.png new file mode 100644 index 0000000..9285df6 Binary files /dev/null and b/assets/documentation-page/description/o-programie.png differ diff --git a/assets/documentation-page/description/ustawienia.png b/assets/documentation-page/description/ustawienia.png new file mode 100644 index 0000000..1c335c5 Binary files /dev/null and b/assets/documentation-page/description/ustawienia.png differ diff --git a/assets/documentation-page/how-to-use/example-input-data.png b/assets/documentation-page/instruction/example-input-data.png similarity index 100% rename from assets/documentation-page/how-to-use/example-input-data.png rename to assets/documentation-page/instruction/example-input-data.png diff --git a/assets/documentation-page/how-to-use/generate-input-file-settings.png b/assets/documentation-page/instruction/generate-input-file-settings.png similarity index 100% rename from assets/documentation-page/how-to-use/generate-input-file-settings.png rename to assets/documentation-page/instruction/generate-input-file-settings.png diff --git a/assets/documentation-page/how-to-use/generate-output-file-settings.png b/assets/documentation-page/instruction/generate-output-file-settings.png similarity index 100% rename from assets/documentation-page/how-to-use/generate-output-file-settings.png rename to assets/documentation-page/instruction/generate-output-file-settings.png diff --git a/assets/documentation-page/how-to-use/input-name.png b/assets/documentation-page/instruction/input-name.png similarity index 100% rename from assets/documentation-page/how-to-use/input-name.png rename to assets/documentation-page/instruction/input-name.png diff --git a/changelog.txt b/changelog.txt deleted file mode 100644 index 44ab0b2..0000000 --- a/changelog.txt +++ /dev/null @@ -1,22 +0,0 @@ -1.0 -- Pierwsza wersja programu składająca się z 4 części - -2.0 -- Podstawowy tekstowy interfejs -- Scalenie programu w jeden -- Aktualizacja formatu plików z danymi -- Wstępne przystosowanie do działania w czteroletnim liceum i w trzyletniej szkole branżowej -- Aktualizacja kodowania - -3.0 -- Wprowadzenie pełnego graficznego interfejsu w środowisku tkinter -- Wstępne obsługiwanie wyjątków -- Przeniesienie modułów do oddzielnego pliku -- Stworzenie pliku 'format.py' ze skryptem przetwarzającym dane - przystosowanie programu do ewentualnych zmian w formacie plików z danymi -- Przeniesienie ukrytych ustawień do pliku 'config.cfg' - -3.0.1 -- Poprawka błędu - pole 3 i 4 nie mają już przypisanej tej samej zmiennej tekstowej -- Przydzielenie wersji, autorów, tytułu programu i lat pracy do zmiennych globalnych środowiska graficznego - -4.0 - Work in progress \ No newline at end of file diff --git a/configs/config.cfg b/configs/config.cfg index 4880304..5faa0a3 100644 --- a/configs/config.cfg +++ b/configs/config.cfg @@ -7,6 +7,6 @@ country(S) = Rzeczypospolita Polska schoolData(MSAs) = [LO, 4, 0]|[BS, 3, 1] schoolyearStart(D) = 01.09.* *:*:* ifHeadlineInMail(B) = 0 -headlineInMail(S) = beta +headlineInMail(S) = mailHeadline ifHeadlineInOffice(B) = 0 -headlineInOffice(S) = beta \ No newline at end of file +headlineInOffice(S) = officeHeadline \ No newline at end of file diff --git a/configs/style.cfg b/configs/style.cfg index 4130065..ba31d34 100644 --- a/configs/style.cfg +++ b/configs/style.cfg @@ -136,7 +136,7 @@ button2Background(C) = #21242D button2Padding(I) = 0 aboutLogoButtonImg(P) = assets/icon.png aboutLogoButtonImgSize(I) = 250 -aboutInstructionButtonWidth(I) = 15 +aboutInstructionButtonWidth(I) = 25 aboutOtherInfoFramePadX(I) = 10 ZPFWindowWidth(I) = 500 ZPFWindowHeight(I) = 400 diff --git a/dev-changelog.txt b/dev-changelog.txt index 3d16cc8..c4b921d 100644 --- a/dev-changelog.txt +++ b/dev-changelog.txt @@ -139,4 +139,12 @@ - Dodanie możliwości dodawania nagłówków do plików wyjściowych - Wsparcie dla kodowania ISO-8859-2 - Wyeliminowanie błędu wyrzucającego wyjątek w przypadku próby zapisania format presetu o nazwie zawierającej zakazane znaki. -- Dodanie mechanizmu pozwalającego na automatyczne resetowanie katalogu programu w appdata podczas uruchamiania programu \ No newline at end of file +- Dodanie mechanizmu pozwalającego na automatyczne resetowanie katalogu programu w appdata podczas uruchamiania programu + +4.0 Beta (Build 20246) +- Zmiana domyślnych nagłówków +- Zmiana tekstu w przycisku w karcie 'O programie' +- Przeniesienie pliku 'changelog.txt' do sekcji strony 'O programie' +- Dodanie screenshotów programu do sekcji strony 'Opis' +- Rozpoczęcie prac nad sekcją strony 'Dokumentacja' +- Lekkie poprawki w kodzie programu \ No newline at end of file diff --git a/documentation/about_program.html b/documentation/about_program.html index e046a42..780ad5a 100644 --- a/documentation/about_program.html +++ b/documentation/about_program.html @@ -11,21 +11,96 @@


+



+

+

Generator CSV

+

- Autorzy: + Wersja 4.0 Beta (Build 20246)

+

- Mateusz Skoczek (styczeń 2019 - wrzesień 2020)

- dla ZSP Sobolew
+ © styczeń 2019 - wrzesień 2020
+
+ Mateusz Skoczek
+
+ dla ZSP Sobolew

+ +
+
+
+
+
+
+
+
+
+
+ +

Historia wersji

+ +

Wersja 1.0

+
+ +
+
+
+ +

Wersja 2.0

+
+ +
+
+
+ +

Wersja 3.0

+
+ +
+
+
+ +

Wersja 3.0.1

+
+ +
+
+
+ +

Wersja 4.0 (work in progress)

+
+ +
+
+
\ No newline at end of file diff --git a/documentation/content.css b/documentation/content.css index 3b7d964..19859c5 100644 --- a/documentation/content.css +++ b/documentation/content.css @@ -5,6 +5,13 @@ h1 { text-align: center; } +h2 { + color: #C0C0C0; + font-family: 'Segoe UI'; + font-size: 25px; + text-align: center; +} + h5 { color: #C0C0C0; font-family: 'Segoe UI'; @@ -24,6 +31,10 @@ p { text-align: center; } +#description-image { + text-align: center; +} + #about-program-image { text-align: center; } @@ -39,6 +50,13 @@ p { text-align: center; } +#about-program-changelog-main-version { + color: #C0C0C0; + font-family: 'Segoe UI'; + font-size: 17px; + font-weight: 600; +} + td { color: #C0C0C0; font-family: 'Segoe UI'; @@ -77,4 +95,10 @@ th { li { color: #C0C0C0; + font-family: 'Segoe UI'; +} + +code { + color: #C0C0C0; + font-size: large; } \ No newline at end of file diff --git a/documentation/description.html b/documentation/description.html index 824ae4b..290677b 100644 --- a/documentation/description.html +++ b/documentation/description.html @@ -7,6 +7,12 @@ Generator CSV -

Program "Generator CSV" służy do przetwarzania plików danymi uczniów/nauczycieli i generowania plików wyjściowych w formacie pozwalającym na import danych na stronach szkoły oraz portal.office.com

+

Program "Generator CSV" służy do przetwarzania plików danymi uczniów/nauczycieli i generowania plików wyjściowych w formacie pozwalającym na import danych na stronie szkoły oraz portal.office.com

+
+
+


+


+


+


\ No newline at end of file diff --git a/documentation/index.html b/documentation/index.html index 685195b..915b1cb 100644 --- a/documentation/index.html +++ b/documentation/index.html @@ -16,8 +16,8 @@ diff --git a/documentation/how_to_use.html b/documentation/instruction.html similarity index 96% rename from documentation/how_to_use.html rename to documentation/instruction.html index 1d3a51a..6f7635f 100644 --- a/documentation/how_to_use.html +++ b/documentation/instruction.html @@ -10,11 +10,11 @@

Dane dla przykładu:

-
+

W praktyce układ danych wygląda tak (* - nieznaczące dla programu dane):

[imię] [nazwisko]
[klasa] [szkoła]
[login], [haslo*]

Uruchom program i otwórz zakładkę FORMAT DANYCH. W pierwszej kolejności należy nadać nazwę presetowi formatu w polu zaznaczonym poniżej lub wybrać preset już istniejący z listy rozwijanej

-
+

Aby przejśc do edycji presetu należy wcisnąć przycisk WCZYTAJ


Typ osoby
@@ -97,10 +97,10 @@

W pierwszej kolejności należy przygotować pliki wejściowe oraz stworzyć presety formatu dla tych plików, według instrukcji w sekcji "Tworzenie/edytowanie format presetu dla danego pliku źródłowego" (jednego presetu formatu można używac do kilku plików jeżeli pliki mają ten sam format i to samo kodowanie)

Krok 2

Przejdź do zakładki GENERATOR CSV. Możesz przetworzyć naraz 4 pliki wejściowe. Dla każdego pliku należy wybrać jego lokalizację (wpisać ją w polu, oznaczonym kolorem czerwonym na poniższym zdjęciu, lub otworzyć okno wyboru lokalizacji za pomocą przycisku "Przeglądaj" i tam wybrać plik. Następnie należy wybrać preset formatu, odpowiedni dla pliku wejściowego, w polu oznaczonym kolorem zielonym na poniższym zdjęciu.

-
+
Krok 3

Wybierz lokalizację zapisu pliku wyjściowego dla serwisu szkoły, wpisując lokalizację wraz z nazwą pliku w polu, oznaczonym kolorem czerwonym na poniższym zdjęciu, lub otwierając okno wyboru lokalizacji za pomocą przycisku "Przeglądaj" obok tego pola i tam wybierając plik.
Wybierz lokalizację zapisu pliku wyjściowego dla serwisu portal.office.com, wpisując lokalizację wraz z nazwą pliku w polu, oznaczonym kolorem zielonym na poniższym zdjęciu, lub otwierając okno wyboru lokalizacji za pomocą przycisku "Przeglądaj" obok tego pola i tam wybierając plik.

-
+
Krok 4

Aby rozpocząć generowanie wciśnij przycisk START i potwierdź komunikat. Pliki wyjściowe zostaną zapisane w wybranych lokalizacjach. Przed importem upewnij się że w plikach nie występują błędy.

diff --git a/documentation/program_documentation.html b/documentation/program_documentation.html index 71ad1e4..0efebb7 100644 --- a/documentation/program_documentation.html +++ b/documentation/program_documentation.html @@ -7,6 +7,114 @@ Generator CSV -

reset_appdata

+ +
+

+ Informacje o programie
+
+ programName - Zmienna definująca nazwę programu
+ programVersion - Zmienna definiująca główną wersję programu
+ programVersionStage - Zmienna definiująca etap rozwoju programu. Wersja stabilna definiowana jest przez pusty string
+ programVersionBuild - Zmienna definiująca numer buildu programu. Zapisany jest on w formacie '[ostatnie dwie cyfry roku][numer dnia w roku]'
+ programCustomer - Zmienna definiująca nazwę organizacji zlecającej stworzenie programu
+ programAuthors - Lista zawierająca nazwy osób rozwijających program.
+ programToW - Lista zawierająca informacje na temat czasu rozwoju programu. Format: ['miesiąc rozpoczęcia prac', 'rok rozpoczęcia prac', 'aktualny dla rozwoju danej wersji miesiąc', 'aktualny dla rozwoju danej wersji rok']
+
+
+ Dozwolone kodowanie plików
+
+ allowedCoding - Lista zawierająca wspierane kodowania plików. Są one wyświetlane w rozwijanych listach wyboru kodowania pliku.
+
+
+ Dozwolone znaki
+
+ allowedCharactersInSeparator - Lista zawierająca znaki które można wpisać w pola dotyczące separatorów osób, linii i danych
+

+
+ + +
+

+ Biblioteki główne
+
+ W tej sekcji importowane są wszystkie biblioteki niezwiązane z interfejsem graficznych
+

+

+

+
+ Biblioteki interfejsu graficznego
+
+ W tej sekcji importowane są wszystkie biblioteki związane z interfejsem graficznym +
+

+

+
+ + +
+

+ Lista komunikatów
+
+ Słownik MSGlist zawiera listę komunikatów. Format: '[kod dialogowy]' : '[komunikat]'. Kod dialogowy składa się z [jednoznakowego znacznika rodzaju okna dialogowego][czterocyfrowego numeru komunikatu]
+
+
+ Rodzaje okien dialogowych: +

+

+

+
+ Funkcja odpowiedzialna za wywoływanie komunikatów dialogowych
+
+ Wywoływanie funkcji: MSG([kod dialogowy],[True - Zakończ działanie programu po zamknięciu okna dialogowego/False - Kontynuuj działanie programu po zamknięciu okna dialogowego],[dodatkowe informacje wyświetlane w komunikacie - opcjonalnie])
+
+ +

+
+ + +
+ +
+ + \ No newline at end of file diff --git a/generator.pyw b/generator.pyw index 71f33fc..347da8b 100644 --- a/generator.pyw +++ b/generator.pyw @@ -2,7 +2,7 @@ # Generator CSV # Wersja 4.0 # Autorzy: Mateusz Skoczek -# Styczeń 2019 - Czerwiec 2020 +# styczeń 2019 - wrzesień 2020 # dla ZSP Sobolew """ @@ -10,14 +10,14 @@ -# ----------------------------------------- # Zmienne # ----------------------------------------- # +# --------------------------------- # Główne zmienne globalne # --------------------------------- # class VAR: # Informacje o programie programName = 'Generator CSV' programVersion = '4.0' programVersionStage = 'Beta' - programVersionBuild = '20245' + programVersionBuild = '20246' programCustomer = 'ZSP Sobolew' programAuthors = ['Mateusz Skoczek'] programToW = ['styczeń', '2019', 'wrzesień', '2020'] @@ -32,10 +32,9 @@ class VAR: -# --------------------------- # Import wbudowanych bibliotek Pythona # -------------------------- # +# ------------------------------------- # Import bibliotek # ------------------------------------ # - -# Główne +# Biblioteki główne import sys as SS import os as OS import time as TM @@ -44,7 +43,7 @@ import pathlib as PT import shutil as SU -# GUI +# Biblioteki interfejsu graficznego import tkinter as TK from tkinter import ttk as TKttk from tkinter import messagebox as TKmsb @@ -57,9 +56,9 @@ from PIL import Image as PLimg -# ---------------------------------------- # Komunikaty # --------------------------------------- # - +# -------------------------------------- # Okna dialogowe # ------------------------------------- # +# Lista komunikatów MSGlist = { 'E0000' : 'none', 'E0001' : 'Wystąpił błąd podczas inicjalizacji katalogu z plikami konfiguracyjnymi programu w katalogu %APPDATA%', @@ -68,13 +67,6 @@ MSGlist = { 'E0004' : 'Wystąpił błąd podczas ładowania pliku stylu (style.cfg)', 'E0005' : 'Niepoprawne dane w pliku stylu (style.cfg)', 'E0006' : 'Niepoprawne dane w pliku formatu', - 'A0001' : 'Czy chcesz zapisać? Zostanie utworzony nowy plik', - 'A0002' : 'Czy chcesz zapisać? Plik zostanie nadpisany', - 'A0003' : 'Czy chcesz rozpocząć przetwarzanie plików?', - 'A0004' : 'Czy chcesz zapisać?', - 'A0005' : 'Czy na pewno chcesz przywrócić domyślne ustawienia ogólne?', - 'A0006' : 'Czy na pewno chcesz przywrócić domyślne ustawienia wyglądu?', - 'A0007' : 'Czy na pewno chcesz usunąc zaznaczone format presety?', 'E0007' : 'Wymagany przynajmniej jeden plik wejściowy', 'E0008' : 'Nie można odnaleźć jednego z powyższych plików', 'E0009' : 'Nie można odnaleźć jednego z powyższych format presetów', @@ -83,18 +75,27 @@ MSGlist = { 'E0012' : 'Nie można przetworzyć danych na format wyjściowy', 'E0013' : 'Nie można utworzyć plików wejściowych', 'E0014' : 'Nie można zapisać plików wejściowych', - 'I0001' : 'Operacja ukończona pomyślnie', - 'I0002' : 'Aplikacja zostanie zamknięta w celu przeładowania ustawień', 'E0015' : 'Nie można usunąć wybranych format presetów', 'E0016' : 'Nie można uruchomić pliku instrukcji (documentation/index.html)', 'E0017' : 'Nie można zapisać pliku formatu', + 'A0001' : 'Czy chcesz zapisać? Zostanie utworzony nowy plik', + 'A0002' : 'Czy chcesz zapisać? Plik zostanie nadpisany', + 'A0003' : 'Czy chcesz rozpocząć przetwarzanie plików?', + 'A0004' : 'Czy chcesz zapisać?', + 'A0005' : 'Czy na pewno chcesz przywrócić domyślne ustawienia ogólne?', + 'A0006' : 'Czy na pewno chcesz przywrócić domyślne ustawienia wyglądu?', + 'A0007' : 'Czy na pewno chcesz usunąc zaznaczone format presety?', + 'I0001' : 'Operacja ukończona pomyślnie', + 'I0002' : 'Aplikacja zostanie zamknięta w celu przeładowania ustawień', } + +# Funkcja odpowiedzialna za wywoływanie komunikatów dialogowych def MSG(code, terminate, *optionalInfo): try: optionalInfo[0] except: - optionalInfo = ('', '') + optionalInfo = [''] # Błędy if code[0] == 'E': @@ -2859,7 +2860,7 @@ class mainWindow: self.aboutInstructionButton.config(command = self.aboutInstructionButtonAction) self.aboutInstructionButton.config(style = 'button1.TButton') self.aboutInstructionButton.config(width = GUI.R('aboutInstructionButtonWidth')) - self.aboutInstructionButton.config(text = 'Instrukcja') + self.aboutInstructionButton.config(text = 'Więcej informacji') self.aboutInstructionButton.pack(side = TK.RIGHT) #############################################################