4.0 Alpha (Build 20241)
This commit is contained in:
@@ -106,3 +106,7 @@
|
||||
- Przeniesienie informacji o kodowaniu wejsciowym z pliku 'config.cfg' do plików formatu
|
||||
- Zmiany w interfejsie w związku z dodaniem do plików formatu informacji o kodowaniu wejściowym
|
||||
- Stworzenie listy dozwolonych kodowań w zmiennej w programie
|
||||
|
||||
4.0 Alpha (Build 20241)
|
||||
- Ukończenie karty 'USTAWIENIA'
|
||||
- Zastosowanie nowego systemu przetwarzania plików konfiguracyjnych dla pliku 'config.cfg' w zapisie danych
|
||||
@@ -1,7 +1,6 @@
|
||||
secret(S) = entersecretstringhere
|
||||
allowedCoding(A) = ['utf-8', 'ANSI']
|
||||
mailOutputCoding(S) = utf-8
|
||||
officeOutputCoding(S) = utf-8
|
||||
mailOutputCoding(Sc) = utf-8
|
||||
officeOutputCoding(Sc) = utf-8
|
||||
domain(S) = losobolew.pl
|
||||
quota(I) = 500
|
||||
country(S) = Rzeczypospolita Polska
|
||||
|
||||
@@ -26,6 +26,9 @@ label1Font(F) = Segoe UI;10
|
||||
label2BG(C) = #21242D
|
||||
label2TextColor(C) = #C0C0C0
|
||||
label2Font(F) = Segoe UI;9
|
||||
label3BG(C) = #21242D
|
||||
label3TextColor(C) = #C0C0C0
|
||||
label3Font(F) = Segoe UI;7
|
||||
combobox1ArrowColor(C) = #C0C0C0
|
||||
combobox1ButtonColor(C) = #333842
|
||||
combobox1BorderColor(C) = #21242D
|
||||
@@ -106,4 +109,29 @@ editingPresetButtonsPadY(I) = 6
|
||||
editingPresetSaveButtonWidth(I) = 25
|
||||
editingPresetCancelButtonWidth(I) = 25
|
||||
settingsTabIcon(P) = assets/tab-icons/settings.png
|
||||
settingsHorizontalSeparatorPadY(I) = 10
|
||||
settingsVerticalSeparatorPadY(I) = 10
|
||||
settingsCodeLabelWidth(I) = 35
|
||||
settingsCodeLabelAnchor(FAanchor) = w
|
||||
settingsOtherLabelWidth(I) = 35
|
||||
settingsOtherLabelAnchor(FAanchor) = w
|
||||
settingsSchoolDataLabelAnchor(FAanchor) = center
|
||||
settingsButtonsPadY(I) = 6
|
||||
settingsButtonSaveWidth(I) = 20
|
||||
settingsButtonCancelWidth(I) = 15
|
||||
settingsButtonPDUOWidth(I) = 35
|
||||
settingsButtonPDUWWidth(I) = 35
|
||||
settingsButtonZPFWidth(I) = 35
|
||||
aboutTabIcon(P) = assets/tab-icons/about.png
|
||||
ZPFWindowWidth(I) = 500
|
||||
ZPFWindowHeight(I) = 400
|
||||
ZPFWindowWidthResizable(B) = 0
|
||||
ZPFWindowHeightResizable(B) = 0
|
||||
ZPFWindowMainBG(C) = #21242D
|
||||
listbox1BG(C) = #333842
|
||||
listbox1TextColor(C) = #C0C0C0
|
||||
listbox1Relief(FArelief) = flat
|
||||
listbox1BorderWidth(I) = 0
|
||||
listbox1ActiveStyle(FAactivestyle) = none
|
||||
listbox1HighlightThickness(I) = 0
|
||||
listbox1SelectBG(C) = #4F4F4F
|
||||
555
generator.pyw
555
generator.pyw
@@ -72,6 +72,10 @@ MSGlist = {
|
||||
'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',
|
||||
@@ -81,6 +85,8 @@ MSGlist = {
|
||||
'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',
|
||||
}
|
||||
|
||||
def MSG(code, terminate, *optionalInfo):
|
||||
@@ -193,7 +199,7 @@ class CFG:
|
||||
# Funkcje sprawdzające poprawność recordu
|
||||
def __checkI(self, write, record, var):
|
||||
if write:
|
||||
pass
|
||||
var = str(var)
|
||||
else:
|
||||
try:
|
||||
var = int(var)
|
||||
@@ -203,7 +209,52 @@ class CFG:
|
||||
|
||||
def __checkD(self, write, record, var):
|
||||
if write:
|
||||
pass
|
||||
varX = ''
|
||||
if var['D'] == None:
|
||||
varX += '*'
|
||||
else:
|
||||
day = str(var['D'])
|
||||
if len(day) == 1:
|
||||
day = '0' + day
|
||||
varX += day
|
||||
varX += '.'
|
||||
if var['M'] == None:
|
||||
varX += '*'
|
||||
else:
|
||||
month = str(var['M'])
|
||||
if len(month) == 1:
|
||||
month = '0' + month
|
||||
varX += month
|
||||
varX += '.'
|
||||
if var['Y'] == None:
|
||||
varX += '*'
|
||||
else:
|
||||
varX += str(var['Y'])
|
||||
varX += ' '
|
||||
if var['h'] == None:
|
||||
varX += '*'
|
||||
else:
|
||||
hour = str(var['h'])
|
||||
if len(hour) == 1:
|
||||
hour = '0' + hour
|
||||
varX += hour
|
||||
varX += ':'
|
||||
if var['m'] == None:
|
||||
varX += '*'
|
||||
else:
|
||||
minute = str(var['m'])
|
||||
if len(minute) == 1:
|
||||
minute = '0' + minute
|
||||
varX += minute
|
||||
varX += ':'
|
||||
if var['s'] == None:
|
||||
varX += '*'
|
||||
else:
|
||||
seconds = str(var['s'])
|
||||
if len(seconds) == 1:
|
||||
seconds = '0' + seconds
|
||||
varX += seconds
|
||||
var = varX
|
||||
else:
|
||||
varToReturn = {}
|
||||
var = var.split(' ')
|
||||
@@ -228,7 +279,23 @@ class CFG:
|
||||
|
||||
def __checkMSAs(self, write, record, var):
|
||||
if write:
|
||||
pass
|
||||
varX = []
|
||||
while var.count(''):
|
||||
var.remove('')
|
||||
for x in var:
|
||||
check = x.split(' | ')
|
||||
if len(check) != 3:
|
||||
return (False, 'Niepoprawne dane - klucz: %s' % record)
|
||||
try:
|
||||
checkX = int(check[1])
|
||||
except:
|
||||
return (False, 'Niepoprawne dane - klucz: %s' % record)
|
||||
if not (check[2] == '0' or check[2] == '1'):
|
||||
return (False, 'Niepoprawne dane - klucz: %s' % record)
|
||||
x = x.replace(' | ', ', ')
|
||||
x = '[' + x + ']'
|
||||
varX.append(x)
|
||||
var = '|'.join(varX)
|
||||
else:
|
||||
var = var.split('|')
|
||||
var = [x.strip('\r').strip('[').strip(']').split(', ') for x in var]
|
||||
@@ -250,6 +317,12 @@ class CFG:
|
||||
var = newVar
|
||||
return [True, var]
|
||||
|
||||
def __checkSc(self, record, var):
|
||||
var = var.strip('\r')
|
||||
if var not in VAR.allowedCoding:
|
||||
return [False, 'Niepoprawne dane - klucz: %s' % record]
|
||||
return [True, var]
|
||||
|
||||
|
||||
|
||||
def R(self, record):
|
||||
@@ -272,6 +345,13 @@ class CFG:
|
||||
# String
|
||||
var = var[0].strip('\r')
|
||||
return var
|
||||
elif var[1] == 'Sc':
|
||||
# Integer
|
||||
checkingOutput = self.__checkSc(record, var[0])
|
||||
if checkingOutput[0]:
|
||||
return checkingOutput[1]
|
||||
else:
|
||||
MSG('E0003', True, checkingOutput[1])
|
||||
elif var[1] == 'I':
|
||||
# Integer
|
||||
checkingOutput = self.__checkI(False, record, var[0])
|
||||
@@ -296,8 +376,8 @@ class CFG:
|
||||
else:
|
||||
MSG('E0003', True, 'Nie można rozpoznać typu klucza %s' % record)
|
||||
|
||||
def W(self, preset, changes):
|
||||
self.__checkIfFolderExist()
|
||||
def W(self, changes):
|
||||
self.__checkIfFileExist(True)
|
||||
file = CD.open(str(appdata) + '\Generator CSV\config.cfg', 'r', 'utf-8').read().split('\n')
|
||||
if file[-1] == '':
|
||||
file = file[:-1]
|
||||
@@ -318,6 +398,14 @@ class CFG:
|
||||
if type == 'S':
|
||||
# String
|
||||
pass
|
||||
elif type == 'Sc':
|
||||
# Integer
|
||||
checkingOutput = self.__checkSc(name, var)
|
||||
if checkingOutput[0]:
|
||||
var = checkingOutput[1]
|
||||
else:
|
||||
MSG('E0006', False, checkingOutput[1])
|
||||
return False
|
||||
elif type == 'I':
|
||||
# Integer
|
||||
checkingOutput = self.__checkI(True, name, var)
|
||||
@@ -420,6 +508,7 @@ class GUI:
|
||||
'anchor' : ['center', 'nw', 'n', 'ne', 'w', 'e', 'sw', 's', 'se'],
|
||||
'relief' : ['flat', 'raised', 'sunken', 'groove', 'ridge'],
|
||||
'fill' : ['x', 'y', 'both'],
|
||||
'activestyle' : ['dotbox', 'none', 'underline']
|
||||
}
|
||||
if var not in arrays[array]:
|
||||
return [False, 'Niepoprawne dane - klucz: %s' % record]
|
||||
@@ -1147,6 +1236,13 @@ class mainWindow:
|
||||
"font" : GUI.R('label2Font')
|
||||
},
|
||||
},
|
||||
"label3.TLabel": {
|
||||
"configure": {
|
||||
"background": GUI.R('label3BG'),
|
||||
"foreground": GUI.R('label3TextColor'),
|
||||
"font" : GUI.R('label3Font')
|
||||
},
|
||||
},
|
||||
"combobox1.TCombobox": {
|
||||
"configure": {
|
||||
"arrowcolor": GUI.R('combobox1ArrowColor'),
|
||||
@@ -1992,7 +2088,7 @@ class mainWindow:
|
||||
self.EPDLClassPosInRowSpinbox.config(style = 'spinbox1.TSpinbox')
|
||||
self.EPDLClassPosInRowSpinbox.grid(row = 5, column = 2, padx = GUI.R('EPDataLocalizationPadX'), pady = GUI.R('EPDataLocalizationPadY'))
|
||||
|
||||
#
|
||||
# Separator
|
||||
self.formatSeparator4Frame = TKttk.Frame(self.editingPresetDLFrame)
|
||||
self.formatSeparator4Frame.config(style = 'layoutFrame.TFrame')
|
||||
self.formatSeparator4Frame.grid(row = 6, column = 0, columnspan = 3)
|
||||
@@ -2000,7 +2096,7 @@ class mainWindow:
|
||||
self.formatSeparator4 = TKttk.Separator(self.formatSeparator4Frame)
|
||||
self.formatSeparator4.config(style = 'separator1.TSeparator')
|
||||
self.formatSeparator4.config(orient = TK.HORIZONTAL)
|
||||
self.formatSeparator4.pack(padx = GUI.R('formatHorizontalSeparatorPadY'), fill = TK.X, expand = 1)
|
||||
self.formatSeparator4.pack(padx = GUI.R('formatHorizontalSeparatorPadY'), pady = 10, fill = TK.X, expand = 1)
|
||||
|
||||
# "Kodowanie"
|
||||
self.formatInputCodingLabel = TKttk.Label(self.editingPresetDLFrame)
|
||||
@@ -2013,7 +2109,7 @@ class mainWindow:
|
||||
self.formatInputCodingCombobox = TKttk.Combobox(self.editingPresetDLFrame)
|
||||
self.formatInputCodingCombobox.config(textvariable = self.formatInputCodingVar)
|
||||
self.formatInputCodingCombobox.config(state = TK.DISABLED)
|
||||
self.formatInputCodingCombobox.config(style = 'combobox1.TCombobox')
|
||||
self.formatInputCodingCombobox.config(style = 'combobox2.TCombobox')
|
||||
self.formatInputCodingCombobox.option_add("*TCombobox*Listbox.background", GUI.R('combobox2ListBoxBackground'))
|
||||
self.formatInputCodingCombobox.option_add("*TCombobox*Listbox.foreground", GUI.R('combobox2ListBoxForeground'))
|
||||
self.formatInputCodingCombobox.option_add("*TCombobox*Listbox.selectBackground", GUI.R('combobox2ListBoxSelectBackground'))
|
||||
@@ -2036,7 +2132,7 @@ class mainWindow:
|
||||
|
||||
#############################################################
|
||||
|
||||
# (2) Przyciski #############################################
|
||||
# (1) Przyciski #############################################
|
||||
|
||||
self.editingPresetButtonsFrame = TKttk.Frame(self.formatFrame)
|
||||
self.editingPresetButtonsFrame.config(style = 'layoutFrame.TFrame')
|
||||
@@ -2089,6 +2185,334 @@ class mainWindow:
|
||||
self.settingsFrame.config(style = 'contentTabFrame.TFrame')
|
||||
self.settingsFrame.pack(fill = GUI.R('contentTabFrameFill'), expand = GUI.R('contentTabFrameExpand'), padx = GUI.R('tabFramePadding'), pady = GUI.R('tabFramePadding'))
|
||||
|
||||
# (1) Ustwienia #############################################
|
||||
|
||||
self.settingsMainFrame = TKttk.Frame(self.settingsFrame)
|
||||
self.settingsMainFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsMainFrame.pack(side = TK.TOP, fill = TK.BOTH, expand = 1)
|
||||
|
||||
# (2) Po lewo #####################################
|
||||
|
||||
self.settingsLeftFrame = TKttk.Frame(self.settingsMainFrame)
|
||||
self.settingsLeftFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsLeftFrame.pack(side = TK.LEFT, fill = TK.BOTH, expand = 1)
|
||||
|
||||
# (3) Kodowanie #########################
|
||||
|
||||
self.settingsCodeFrame = TKttk.Frame(self.settingsLeftFrame)
|
||||
self.settingsCodeFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsCodeFrame.pack(side = TK.TOP, fill = TK.X)
|
||||
|
||||
# (4) Kodowanie dla pliku poczty
|
||||
|
||||
self.settingsMailCodeFrame = TKttk.Frame(self.settingsCodeFrame)
|
||||
self.settingsMailCodeFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsMailCodeFrame.pack(side = TK.TOP, fill = TK.X, pady = 6, expand = 1)
|
||||
|
||||
# 'Kodowanie wyjściowe dla pliku poczty'
|
||||
self.settingsMailCodeLabel = TKttk.Label(self.settingsMailCodeFrame)
|
||||
self.settingsMailCodeLabel.config(style = 'label1.TLabel')
|
||||
self.settingsMailCodeLabel.config(width = GUI.R('settingsCodeLabelWidth'))
|
||||
self.settingsMailCodeLabel.config(anchor = GUI.R('settingsCodeLabelAnchor'))
|
||||
self.settingsMailCodeLabel.config(text = 'Kodowanie wyjściowe dla pliku poczty')
|
||||
self.settingsMailCodeLabel.pack(side = TK.LEFT)
|
||||
|
||||
# Kodowanie dla poczty - Combobox
|
||||
self.settingsMailCodeVar = TK.StringVar()
|
||||
self.settingsMailCodeCombobox = TKttk.Combobox(self.settingsMailCodeFrame)
|
||||
self.settingsMailCodeCombobox.config(textvariable = self.settingsMailCodeVar)
|
||||
self.settingsMailCodeCombobox.config(style = 'combobox2.TCombobox')
|
||||
self.settingsMailCodeCombobox.option_add("*TCombobox*Listbox.background", GUI.R('combobox2ListBoxBackground'))
|
||||
self.settingsMailCodeCombobox.option_add("*TCombobox*Listbox.foreground", GUI.R('combobox2ListBoxForeground'))
|
||||
self.settingsMailCodeCombobox.option_add("*TCombobox*Listbox.selectBackground", GUI.R('combobox2ListBoxSelectBackground'))
|
||||
self.settingsMailCodeCombobox.option_add("*TCombobox*Listbox.selectForeground", GUI.R('combobox2ListBoxSelectForeground'))
|
||||
self.settingsMailCodeCombobox.pack(side = TK.RIGHT, fill = TK.X, expand = 1)
|
||||
self.settingsMailCodeCombobox['values'] = tuple(VAR.allowedCoding)
|
||||
self.settingsMailCodeCombobox.set(CFG.R('mailOutputCoding'))
|
||||
|
||||
###############################
|
||||
|
||||
# (4) Kodowanie dla pliku office
|
||||
|
||||
self.settingsOfficeCodeFrame = TKttk.Frame(self.settingsCodeFrame)
|
||||
self.settingsOfficeCodeFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsOfficeCodeFrame.pack(side = TK.BOTTOM, fill = TK.X, pady = 6, expand = 1)
|
||||
|
||||
# 'Kodowanie wyjściowe dla pliku office'
|
||||
self.settingsOfficeCodeLabel = TKttk.Label(self.settingsOfficeCodeFrame)
|
||||
self.settingsOfficeCodeLabel.config(style = 'label1.TLabel')
|
||||
self.settingsOfficeCodeLabel.config(width = GUI.R('settingsCodeLabelWidth'))
|
||||
self.settingsOfficeCodeLabel.config(anchor = GUI.R('settingsCodeLabelAnchor'))
|
||||
self.settingsOfficeCodeLabel.config(text = 'Kodowanie wyjściowe dla pliku office')
|
||||
self.settingsOfficeCodeLabel.pack(side = TK.LEFT)
|
||||
|
||||
# Kodowanie dla poczty - Combobox
|
||||
self.settingsOfficeCodeVar = TK.StringVar()
|
||||
self.settingsOfficeCodeCombobox = TKttk.Combobox(self.settingsOfficeCodeFrame)
|
||||
self.settingsOfficeCodeCombobox.config(textvariable = self.settingsOfficeCodeVar)
|
||||
self.settingsOfficeCodeCombobox.config(style = 'combobox2.TCombobox')
|
||||
self.settingsOfficeCodeCombobox.option_add("*TCombobox*Listbox.background", GUI.R('combobox2ListBoxBackground'))
|
||||
self.settingsOfficeCodeCombobox.option_add("*TCombobox*Listbox.foreground", GUI.R('combobox2ListBoxForeground'))
|
||||
self.settingsOfficeCodeCombobox.option_add("*TCombobox*Listbox.selectBackground", GUI.R('combobox2ListBoxSelectBackground'))
|
||||
self.settingsOfficeCodeCombobox.option_add("*TCombobox*Listbox.selectForeground", GUI.R('combobox2ListBoxSelectForeground'))
|
||||
self.settingsOfficeCodeCombobox.pack(side = TK.RIGHT, fill = TK.X, expand = 1)
|
||||
self.settingsOfficeCodeCombobox['values'] = tuple(VAR.allowedCoding)
|
||||
self.settingsOfficeCodeCombobox.set(CFG.R('officeOutputCoding'))
|
||||
|
||||
###############################
|
||||
|
||||
#########################################
|
||||
|
||||
# (3) Separator #########################
|
||||
|
||||
self.settingsSeparator3 = TKttk.Separator(self.settingsLeftFrame)
|
||||
self.settingsSeparator3.config(style = 'separator1.TSeparator')
|
||||
self.settingsSeparator3.config(orient = TK.HORIZONTAL)
|
||||
self.settingsSeparator3.pack(fill = TK.X, pady = GUI.R('settingsHorizontalSeparatorPadY'))
|
||||
|
||||
#########################################
|
||||
|
||||
# (3) Inne dane #########################
|
||||
|
||||
self.settingsOtherFrame = TKttk.Frame(self.settingsLeftFrame)
|
||||
self.settingsOtherFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsOtherFrame.pack(fill = TK.X)
|
||||
|
||||
# (4) Domena ##################
|
||||
|
||||
self.settingsOtherDomainFrame = TKttk.Frame(self.settingsOtherFrame)
|
||||
self.settingsOtherDomainFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsOtherDomainFrame.pack(fill = TK.X, pady = 6, expand = 1)
|
||||
|
||||
# 'Domena (używana w mailu)'
|
||||
self.settingsOtherDomainLabel = TKttk.Label(self.settingsOtherDomainFrame)
|
||||
self.settingsOtherDomainLabel.config(style = 'label1.TLabel')
|
||||
self.settingsOtherDomainLabel.config(width = GUI.R('settingsOtherLabelWidth'))
|
||||
self.settingsOtherDomainLabel.config(anchor = GUI.R('settingsOtherLabelAnchor'))
|
||||
self.settingsOtherDomainLabel.config(text = 'Domena (używana w mailu)')
|
||||
self.settingsOtherDomainLabel.pack(side = TK.LEFT)
|
||||
|
||||
# Domena - Entry
|
||||
self.settingsOtherDomainVar = TK.StringVar()
|
||||
self.settingsOtherDomainEntry = TKttk.Entry(self.settingsOtherDomainFrame)
|
||||
self.settingsOtherDomainEntry.config(style = 'entry1.TEntry')
|
||||
self.settingsOtherDomainEntry.config(textvariable = self.settingsOtherDomainVar)
|
||||
self.settingsOtherDomainEntry.pack(side = TK.RIGHT, fill = TK.X, expand = 1)
|
||||
self.settingsOtherDomainVar.set(CFG.R('domain'))
|
||||
|
||||
###############################
|
||||
|
||||
# (4) Quota ###################
|
||||
|
||||
self.settingsOtherQuotaFrame = TKttk.Frame(self.settingsOtherFrame)
|
||||
self.settingsOtherQuotaFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsOtherQuotaFrame.pack(fill = TK.X, pady = 6, expand = 1)
|
||||
|
||||
# 'Quota (MB)'
|
||||
self.settingsOtherQuotaLabel = TKttk.Label(self.settingsOtherQuotaFrame)
|
||||
self.settingsOtherQuotaLabel.config(style = 'label1.TLabel')
|
||||
self.settingsOtherQuotaLabel.config(width = GUI.R('settingsOtherLabelWidth'))
|
||||
self.settingsOtherQuotaLabel.config(anchor = GUI.R('settingsOtherLabelAnchor'))
|
||||
self.settingsOtherQuotaLabel.config(text = 'Quota (MB)')
|
||||
self.settingsOtherQuotaLabel.pack(side = TK.LEFT)
|
||||
|
||||
# Domena - Entry
|
||||
self.settingsOtherQuotaVar = TK.IntVar()
|
||||
self.settingsOtherQuotaSpinbox = TKttk.Spinbox(self.settingsOtherQuotaFrame)
|
||||
self.settingsOtherQuotaSpinbox.config(textvariable = self.settingsOtherQuotaVar)
|
||||
self.settingsOtherQuotaSpinbox.config(from_ = 0)
|
||||
self.settingsOtherQuotaSpinbox.config(to = 10000000000000000000000)
|
||||
self.settingsOtherQuotaSpinbox.config(style = 'spinbox1.TSpinbox')
|
||||
self.settingsOtherQuotaSpinbox.pack(side = TK.RIGHT, fill = TK.X, expand = 1)
|
||||
self.settingsOtherQuotaSpinbox.set(CFG.R('quota'))
|
||||
|
||||
###############################
|
||||
|
||||
# (4) Kraj ##################
|
||||
|
||||
self.settingsOtherCountryFrame = TKttk.Frame(self.settingsOtherFrame)
|
||||
self.settingsOtherCountryFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsOtherCountryFrame.pack(fill = TK.X, pady = 6, expand = 1)
|
||||
|
||||
# 'Kraj (zapisany w danych na office)'
|
||||
self.settingsOtherCountryLabel = TKttk.Label(self.settingsOtherCountryFrame)
|
||||
self.settingsOtherCountryLabel.config(style = 'label1.TLabel')
|
||||
self.settingsOtherCountryLabel.config(width = GUI.R('settingsOtherLabelWidth'))
|
||||
self.settingsOtherCountryLabel.config(anchor = GUI.R('settingsOtherLabelAnchor'))
|
||||
self.settingsOtherCountryLabel.config(text = 'Kraj (zapisany w danych na office)')
|
||||
self.settingsOtherCountryLabel.pack(side = TK.LEFT)
|
||||
|
||||
# Domena - Entry
|
||||
self.settingsOtherCountryVar = TK.StringVar()
|
||||
self.settingsOtherCountryEntry = TKttk.Entry(self.settingsOtherCountryFrame)
|
||||
self.settingsOtherCountryEntry.config(style = 'entry1.TEntry')
|
||||
self.settingsOtherCountryEntry.config(textvariable = self.settingsOtherCountryVar)
|
||||
self.settingsOtherCountryEntry.pack(side = TK.RIGHT, fill = TK.X, expand = 1)
|
||||
self.settingsOtherCountryVar.set(CFG.R('country'))
|
||||
|
||||
###############################
|
||||
|
||||
# (4) Rozpoczęcir roku szkolnego
|
||||
|
||||
self.settingsOtherDRRSFrame = TKttk.Frame(self.settingsOtherFrame)
|
||||
self.settingsOtherDRRSFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsOtherDRRSFrame.pack(fill = TK.X, expand = 1, pady = 6)
|
||||
|
||||
# 'Rozpoczęcie roku szkolnego (Dzień | Miesiąc)'
|
||||
self.settingsOtherDRRSLabel = TKttk.Label(self.settingsOtherDRRSFrame)
|
||||
self.settingsOtherDRRSLabel.config(style = 'label1.TLabel')
|
||||
self.settingsOtherDRRSLabel.config(width = GUI.R('settingsOtherLabelWidth'))
|
||||
self.settingsOtherDRRSLabel.config(anchor = GUI.R('settingsOtherLabelAnchor'))
|
||||
self.settingsOtherDRRSLabel.config(text = 'Rozpoczęcie roku szkolnego (DD | MM)')
|
||||
self.settingsOtherDRRSLabel.pack(side = TK.LEFT)
|
||||
|
||||
# Rozpoczęcie roku szkolnego - Miesiąc
|
||||
self.settingsOtherDRRSMonthVar = TK.IntVar()
|
||||
self.settingsOtherDRRSMonthSpinbox = TKttk.Spinbox(self.settingsOtherDRRSFrame)
|
||||
self.settingsOtherDRRSMonthSpinbox.config(textvariable = self.settingsOtherDRRSMonthVar)
|
||||
self.settingsOtherDRRSMonthSpinbox.config(from_ = 1)
|
||||
self.settingsOtherDRRSMonthSpinbox.config(to = 12)
|
||||
self.settingsOtherDRRSMonthSpinbox.config(style = 'spinbox1.TSpinbox')
|
||||
self.settingsOtherDRRSMonthSpinbox.pack(side = TK.RIGHT, fill = TK.X, expand = 1, padx = (6, 0))
|
||||
self.settingsOtherDRRSMonthSpinbox.set(CFG.R('schoolyearStart')['M'])
|
||||
|
||||
# Rozpoczęcie roku szkolnego - Dzień
|
||||
self.settingsOtherDRRSDayVar = TK.IntVar()
|
||||
self.settingsOtherDRRSDaySpinbox = TKttk.Spinbox(self.settingsOtherDRRSFrame)
|
||||
self.settingsOtherDRRSDaySpinbox.config(textvariable = self.settingsOtherDRRSDayVar)
|
||||
self.settingsOtherDRRSDaySpinbox.config(from_ = 1)
|
||||
self.settingsOtherDRRSDaySpinbox.config(to = 31)
|
||||
self.settingsOtherDRRSDaySpinbox.config(style = 'spinbox1.TSpinbox')
|
||||
self.settingsOtherDRRSDaySpinbox.pack(side = TK.RIGHT, fill = TK.X, expand = 1, padx = (0, 6))
|
||||
self.settingsOtherDRRSDaySpinbox.set(CFG.R('schoolyearStart')['D'])
|
||||
|
||||
###############################
|
||||
|
||||
#########################################
|
||||
|
||||
###################################################
|
||||
|
||||
# (2) Separator ###################################
|
||||
|
||||
self.settingsSeparator2 = TKttk.Separator(self.settingsMainFrame)
|
||||
self.settingsSeparator2.config(style = 'separator1.TSeparator')
|
||||
self.settingsSeparator2.config(orient = TK.VERTICAL)
|
||||
self.settingsSeparator2.pack(side = TK.LEFT, fill = TK.Y, padx = GUI.R('settingsVerticalSeparatorPadY'))
|
||||
|
||||
###################################################
|
||||
|
||||
# (2) Dane o szkołach #############################
|
||||
|
||||
self.settingsSchoolDataFrame = TKttk.Frame(self.settingsMainFrame)
|
||||
self.settingsSchoolDataFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsSchoolDataFrame.pack(side = TK.RIGHT, fill = TK.BOTH)
|
||||
|
||||
# 'Dane o szkołach'
|
||||
self.settingsSchoolDataLabel = TKttk.Label(self.settingsSchoolDataFrame)
|
||||
self.settingsSchoolDataLabel.config(style = 'label1.TLabel')
|
||||
self.settingsSchoolDataLabel.config(anchor = GUI.R('settingsSchoolDataLabelAnchor'))
|
||||
self.settingsSchoolDataLabel.config(text = 'Dane o szkołach')
|
||||
self.settingsSchoolDataLabel.pack(side = TK.TOP, pady = 6)
|
||||
|
||||
# Label - oznaczenia kolumn
|
||||
self.settingsSchoolDataInstructionLabel = TKttk.Label(self.settingsSchoolDataFrame)
|
||||
self.settingsSchoolDataInstructionLabel.config(style = 'label3.TLabel')
|
||||
self.settingsSchoolDataInstructionLabel.config(anchor = GUI.R('settingsSchoolDataLabelAnchor'))
|
||||
self.settingsSchoolDataInstructionLabel.config(text = 'OZNACZENIE SZKOŁY | ILOŚĆ KLAS | CZY OZNACZENIE SZKOŁY W ZNACZNIKU KLASY? (0/1)')
|
||||
self.settingsSchoolDataInstructionLabel.pack()
|
||||
|
||||
# Dane o szkołach - Text
|
||||
self.settingsSchoolDataText = TK.Text(self.settingsSchoolDataFrame)
|
||||
self.settingsSchoolDataText.config(background = GUI.R('text1Background'))
|
||||
self.settingsSchoolDataText.config(foreground = GUI.R('text1TextColor'))
|
||||
self.settingsSchoolDataText.config(relief = GUI.R('text1Relief'))
|
||||
self.settingsSchoolDataText.config(width = 50)
|
||||
self.settingsSchoolDataText.pack(pady = 6, fill = TK.Y, expand = 1)
|
||||
for x in CFG.R('schoolData'):
|
||||
if x[2]:
|
||||
x[2] = '1'
|
||||
else:
|
||||
x[2] = '0'
|
||||
x[1] = str(x[1])
|
||||
self.settingsSchoolDataText.insert(TK.END, (' | '.join(x) + '\n'))
|
||||
|
||||
###################################################
|
||||
|
||||
#############################################################
|
||||
|
||||
# (1) Separator #############################################
|
||||
|
||||
self.settingsSeparator1 = TKttk.Separator(self.settingsFrame)
|
||||
self.settingsSeparator1.config(style = 'separator1.TSeparator')
|
||||
self.settingsSeparator1.config(orient = TK.HORIZONTAL)
|
||||
self.settingsSeparator1.pack(fill = TK.X, pady = GUI.R('settingsHorizontalSeparatorPadY'))
|
||||
|
||||
#############################################################
|
||||
|
||||
# (1) Przyciski #############################################
|
||||
|
||||
self.settingsButtonsFrame = TKttk.Frame(self.settingsFrame)
|
||||
self.settingsButtonsFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsButtonsFrame.pack(side = TK.BOTTOM, fill = TK.X, pady = GUI.R('settingsButtonsPadY'))
|
||||
|
||||
# (2) Przyciski ZAPISZ i Anuluj ###################
|
||||
|
||||
self.settingsButtonsSaveCancelFrame = TKttk.Frame(self.settingsButtonsFrame)
|
||||
self.settingsButtonsSaveCancelFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsButtonsSaveCancelFrame.pack(side = TK.LEFT)
|
||||
|
||||
# Przycisk ZAPISZ
|
||||
self.settingsButtonSave = TKttk.Button(self.settingsButtonsSaveCancelFrame)
|
||||
self.settingsButtonSave.config(command = self.settingsButtonSaveAction)
|
||||
self.settingsButtonSave.config(style = 'button1.TButton')
|
||||
self.settingsButtonSave.config(width = GUI.R('settingsButtonSaveWidth'))
|
||||
self.settingsButtonSave.config(text = 'ZAPISZ')
|
||||
self.settingsButtonSave.pack(side = TK.LEFT, padx = 6)
|
||||
|
||||
# Przycisk Anuluj
|
||||
self.settingsButtonCancel = TKttk.Button(self.settingsButtonsSaveCancelFrame)
|
||||
self.settingsButtonCancel.config(command = self.settingsButtonCancelAction)
|
||||
self.settingsButtonCancel.config(style = 'button1.TButton')
|
||||
self.settingsButtonCancel.config(width = GUI.R('settingsButtonCancelWidth'))
|
||||
self.settingsButtonCancel.config(text = 'Anuluj')
|
||||
self.settingsButtonCancel.pack(side = TK.RIGHT, padx = 6)
|
||||
|
||||
###################################################
|
||||
|
||||
# (2) Inne przyciski ##############################
|
||||
|
||||
self.settingsButtonsOtherFrame = TKttk.Frame(self.settingsButtonsFrame)
|
||||
self.settingsButtonsOtherFrame.config(style = 'layoutFrame.TFrame')
|
||||
self.settingsButtonsOtherFrame.pack(side = TK.RIGHT)
|
||||
|
||||
# Przycisk "Zarządzaj presetami formatu"
|
||||
self.settingsButtonZPF = TKttk.Button(self.settingsButtonsOtherFrame)
|
||||
self.settingsButtonZPF.config(command = self.settingsButtonZPFAction)
|
||||
self.settingsButtonZPF.config(style = 'button1.TButton')
|
||||
self.settingsButtonZPF.config(width = GUI.R('settingsButtonZPFWidth'))
|
||||
self.settingsButtonZPF.config(text = 'Zarządzaj presetami formatu')
|
||||
self.settingsButtonZPF.pack(side = TK.RIGHT, padx = 6)
|
||||
|
||||
# Przycisk "Przywróć domyślne ustawienia wyglądu"
|
||||
self.settingsButtonPDUW = TKttk.Button(self.settingsButtonsOtherFrame)
|
||||
self.settingsButtonPDUW.config(command = self.settingsButtonPDUWAction)
|
||||
self.settingsButtonPDUW.config(style = 'button1.TButton')
|
||||
self.settingsButtonPDUW.config(width = GUI.R('settingsButtonPDUWWidth'))
|
||||
self.settingsButtonPDUW.config(text = 'Przywróć domyślne ustawienia wyglądu')
|
||||
self.settingsButtonPDUW.pack(side = TK.RIGHT, padx = 6)
|
||||
|
||||
# Przycisk "Przywróć domyślne ustwienia ogólne"
|
||||
self.settingsButtonPDUO = TKttk.Button(self.settingsButtonsOtherFrame)
|
||||
self.settingsButtonPDUO.config(command = self.settingsButtonPDUOAction)
|
||||
self.settingsButtonPDUO.config(style = 'button1.TButton')
|
||||
self.settingsButtonPDUO.config(width = GUI.R('settingsButtonPDUOWidth'))
|
||||
self.settingsButtonPDUO.config(text = 'Przywróć domyślne ustawienia ogólne')
|
||||
self.settingsButtonPDUO.pack(side = TK.RIGHT, padx = 6)
|
||||
|
||||
###################################################
|
||||
|
||||
#############################################################
|
||||
|
||||
######################################################################
|
||||
|
||||
|
||||
@@ -2350,6 +2774,119 @@ class mainWindow:
|
||||
def editingPresetCancelButtonAction(self):
|
||||
self.editingPresetClear()
|
||||
|
||||
# Akcje przycisków - TAB3
|
||||
|
||||
def settingsReset(self):
|
||||
self.settingsMailCodeCombobox.set(CFG.R('mailOutputCoding'))
|
||||
self.settingsOfficeCodeCombobox.set(CFG.R('officeOutputCoding'))
|
||||
self.settingsOtherDomainVar.set(CFG.R('domain'))
|
||||
self.settingsOtherQuotaSpinbox.set(CFG.R('quota'))
|
||||
self.settingsOtherCountryVar.set(CFG.R('country'))
|
||||
self.settingsOtherDRRSMonthSpinbox.set(CFG.R('schoolyearStart')['M'])
|
||||
self.settingsOtherDRRSDaySpinbox.set(CFG.R('schoolyearStart')['D'])
|
||||
self.settingsSchoolDataText.delete('1.0', TK.END)
|
||||
for x in CFG.R('schoolData'):
|
||||
if x[2]:
|
||||
x[2] = '1'
|
||||
else:
|
||||
x[2] = '0'
|
||||
x[1] = str(x[1])
|
||||
self.settingsSchoolDataText.insert(TK.END, (' | '.join(x) + '\n'))
|
||||
|
||||
def settingsButtonSaveAction(self):
|
||||
if MSG('A0004', False):
|
||||
changes = {}
|
||||
changes['mailOutputCoding'] = self.settingsMailCodeCombobox.get()
|
||||
changes['officeOutputCoding'] = self.settingsOfficeCodeCombobox.get()
|
||||
changes['domain'] = self.settingsOtherDomainVar.get()
|
||||
changes['quota'] = self.settingsOtherQuotaSpinbox.get()
|
||||
changes['country'] = self.settingsOtherCountryVar.get()
|
||||
changes['schoolyearStart'] = {
|
||||
'D' : self.settingsOtherDRRSDaySpinbox.get(),
|
||||
'M' : self.settingsOtherDRRSMonthSpinbox.get(),
|
||||
'Y' : None,
|
||||
'h' : None,
|
||||
'm' : None,
|
||||
's' : None,
|
||||
}
|
||||
changes['schoolData'] = (self.settingsSchoolDataText.get("1.0", TK.END)).split('\n')
|
||||
CFG.W(changes)
|
||||
self.settingsReset()
|
||||
else:
|
||||
return
|
||||
|
||||
def settingsButtonCancelAction(self):
|
||||
self.settingsReset()
|
||||
|
||||
def settingsButtonPDUOAction(self):
|
||||
if MSG('A0005', False):
|
||||
try:
|
||||
OS.remove(str(appdata) + '\Generator CSV\config.cfg')
|
||||
SU.copy('default-configs/config.cfg', str(appdata) + '\Generator CSV\config.cfg')
|
||||
except Exception as exceptInfo:
|
||||
MSG('E0001', True, exceptInfo)
|
||||
MSG('I0002', True)
|
||||
else:
|
||||
return
|
||||
|
||||
def settingsButtonPDUWAction(self):
|
||||
if MSG('A0006', False):
|
||||
try:
|
||||
OS.remove(str(appdata) + '\Generator CSV\style.cfg')
|
||||
SU.copy('default-configs/style.cfg', str(appdata) + '\Generator CSV\style.cfg')
|
||||
except Exception as exceptInfo:
|
||||
MSG('E0001', True, exceptInfo)
|
||||
MSG('I0002', True)
|
||||
else:
|
||||
return
|
||||
|
||||
def deleteSelectedFPButtonAction(self):
|
||||
if MSG('A0007', False):
|
||||
selected = self.selectFPListbox.curselection()
|
||||
for x in selected:
|
||||
try:
|
||||
OS.remove(str(appdata) + ('/Generator CSV/format-presets') + ('\%s.fmt' % self.selectFPListbox.get(x)))
|
||||
except Exception as exceptInfo:
|
||||
MSG('E0015', True, exceptInfo)
|
||||
MSG('I0001', False)
|
||||
self.updatePresetListInGenerateTab()
|
||||
self.loadingList['values'] = tuple(FMT.getList())
|
||||
self.selectFPListbox.delete(0, TK.END)
|
||||
for x in FMT.getList():
|
||||
self.selectFPListbox.insert(TK.END, x)
|
||||
else:
|
||||
return
|
||||
|
||||
def settingsButtonZPFAction(self):
|
||||
# Pod okno
|
||||
self.ZPFWindow = TK.Toplevel(self.master)
|
||||
self.ZPFWindow.title("Zarządzanie presetami formatu")
|
||||
self.ZPFWindow.geometry('%ix%i' % (GUI.R('ZPFWindowWidth'), GUI.R('ZPFWindowHeight')))
|
||||
self.ZPFWindow.resizable(width = GUI.R('ZPFWindowWidthResizable'), height = GUI.R('ZPFWindowHeightResizable'))
|
||||
self.ZPFWindow.configure(bg = GUI.R('ZPFWindowMainBG'))
|
||||
self.ZPFWindow.iconbitmap(GUI.R('mainIcon'))
|
||||
|
||||
# Wybór format presetu - listbox
|
||||
self.selectFPListbox = TK.Listbox(self.ZPFWindow)
|
||||
self.selectFPListbox.config(activestyle = GUI.R('listbox1ActiveStyle'))
|
||||
self.selectFPListbox.config(bg = GUI.R('listbox1BG'))
|
||||
self.selectFPListbox.config(fg = GUI.R('listbox1TextColor'))
|
||||
self.selectFPListbox.config(relief = GUI.R('listbox1Relief'))
|
||||
self.selectFPListbox.config(bd = GUI.R('listbox1BorderWidth'))
|
||||
self.selectFPListbox.config(highlightthickness = GUI.R('listbox1HighlightThickness'))
|
||||
self.selectFPListbox.config(selectbackground = GUI.R('listbox1SelectBG'))
|
||||
self.selectFPListbox.config(selectmode = TK.MULTIPLE)
|
||||
self.selectFPListbox.pack(fill = TK.BOTH, expand = 1, padx = 6, pady = 6)
|
||||
for x in FMT.getList():
|
||||
self.selectFPListbox.insert(TK.END, x)
|
||||
|
||||
# Usuń zaznaczone - Button
|
||||
self.deleteSelectedFPButton = TKttk.Button(self.ZPFWindow)
|
||||
self.deleteSelectedFPButton.config(style = 'button1.TButton')
|
||||
self.deleteSelectedFPButton.config(text = 'Usuń zaznaczone')
|
||||
self.deleteSelectedFPButton.config(command = self.deleteSelectedFPButtonAction)
|
||||
self.deleteSelectedFPButton.pack(fill = TK.X, padx = 6, pady = 6)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user