Einlesen ab Einstellungsdatum hinzugefügt
Neukonstruktion des Tabellenaufbaus benötigt
This commit is contained in:
parent
cb757ac6b6
commit
d8609dce2b
65
users.py
65
users.py
@ -124,35 +124,66 @@ class user:
|
||||
def del_user(self):
|
||||
shutil.rmtree(self.userfolder)
|
||||
|
||||
def get_starting_day(self):
|
||||
starting_date = list(self.workhours)
|
||||
starting_date.sort()
|
||||
year = str(starting_date[0])[:4]
|
||||
month = str(starting_date[0])[5:7]
|
||||
day = str(starting_date[0])[8:10]
|
||||
|
||||
return (year, month, day)
|
||||
|
||||
def get_years(self):
|
||||
txtfiles = [ ]
|
||||
for file in os.listdir(self.userfolder):
|
||||
if file.endswith(".txt"):
|
||||
txtfiles.append(file)
|
||||
for i in range(len(txtfiles)):
|
||||
txtfiles[i] = txtfiles[i][:4]
|
||||
txtfiles = list(set(txtfiles))
|
||||
txtfiles.sort()
|
||||
return txtfiles
|
||||
years = [ ]
|
||||
|
||||
# Aktuelles Jahr bestimmen
|
||||
year_now = int(datetime.datetime.fromtimestamp(time.time()).strftime('%Y'))
|
||||
|
||||
for i in range(int(self.get_starting_day()[0]), year_now + 1):
|
||||
years.append(str(i))
|
||||
|
||||
return years
|
||||
|
||||
def get_months(self, year):
|
||||
txtfiles = [ ]
|
||||
for file in os.listdir(self.userfolder):
|
||||
if file.endswith(".txt"):
|
||||
txtfiles.append(file)
|
||||
txtfiles.sort()
|
||||
available_months = [ ]
|
||||
|
||||
for entry in txtfiles:
|
||||
if entry[:4] == str(year):
|
||||
available_months.append(entry[5:-4])
|
||||
# Anfangsdatum bestimmen
|
||||
start_year = int(self.get_starting_day()[0])
|
||||
start_month = int(self.get_starting_day()[1])
|
||||
year_now = int(datetime.datetime.now().year)
|
||||
month_now = int(datetime.datetime.now().month)
|
||||
|
||||
if start_year == year:
|
||||
if start_year == year_now:
|
||||
for i in range(start_month, month_now + 1):
|
||||
available_months.append(i)
|
||||
elif start_year < year_now:
|
||||
for i in range(start_month, 13):
|
||||
available_months.append(i)
|
||||
else:
|
||||
if int(year) == year_now:
|
||||
for i in range(1, month_now + 1):
|
||||
available_months.append(i)
|
||||
elif int(year) < year_now:
|
||||
for i in range(1, 13):
|
||||
available_months.append(i)
|
||||
|
||||
return(available_months)
|
||||
|
||||
|
||||
|
||||
|
||||
return available_months
|
||||
|
||||
def get_timestamps(self, year, month):
|
||||
try:
|
||||
with open(f"{self.userfolder}/{year}-{month}.txt", "r") as file:
|
||||
timestamps = file.readlines()
|
||||
timestamps.sort()
|
||||
return timestamps
|
||||
except:
|
||||
timestamps = [ ]
|
||||
return timestamps
|
||||
|
||||
def write_edited_timestamps(self, timestamps, year, month):
|
||||
with open(f"{self.userfolder}/{year}-{month}.txt", "w") as file:
|
||||
|
57
web_ui.py
57
web_ui.py
@ -22,7 +22,7 @@ class pageheader:
|
||||
|
||||
class ValueBinder:
|
||||
def __init__(self):
|
||||
self.value_to_bind = ""
|
||||
self.value = ""
|
||||
|
||||
def cookie_hash(user, password):
|
||||
return hashlib.sha256(b"{user}{app.storage.user['id']}{password}").hexdigest()
|
||||
@ -120,7 +120,7 @@ def page_admin():
|
||||
users = ui.tab('Benutzer')
|
||||
settings = ui.tab('Einstellungen')
|
||||
|
||||
with (ui.tab_panels(tabs, value=time_overview)):
|
||||
with ((ui.tab_panels(tabs, value=time_overview))):
|
||||
|
||||
with ui.tab_panel(time_overview):
|
||||
ui.markdown("##Übersichten")
|
||||
@ -133,47 +133,55 @@ def page_admin():
|
||||
month_binder = ValueBinder()
|
||||
|
||||
def update_months():
|
||||
try:
|
||||
#try:
|
||||
print('Update Months called')
|
||||
current_user = user(time_user.value)
|
||||
available_months = current_user.get_months(year_binder.value_to_bind)
|
||||
available_months = current_user.get_months(year_binder.value)
|
||||
available_months_dict = {}
|
||||
for element in available_months:
|
||||
available_months_dict[element] = calendar.month_name[int(element)]
|
||||
print(available_months_dict)
|
||||
select_month.clear()
|
||||
select_month.set_options(available_months_dict)
|
||||
select_month.value = list(available_months)[0]
|
||||
except:
|
||||
pass
|
||||
|
||||
#except:
|
||||
# print("select.month existiert noch nicht")
|
||||
|
||||
userlist = list_users()
|
||||
ui.markdown("Benutzer:")
|
||||
time_user = ui.select(options=userlist, on_change=update_months)
|
||||
print("Time User wird konstruiert")
|
||||
time_user = ui.select(options=userlist, value=userlist[0], on_change=update_months)
|
||||
|
||||
user_to_select_for_start = userlist[0]
|
||||
current_user = user(user_to_select_for_start)
|
||||
|
||||
time_user.value = userlist[0]
|
||||
current_year = datetime.datetime.now().year
|
||||
current_month = datetime.datetime.now().month
|
||||
|
||||
current_user = user(time_user.value)
|
||||
current_user = user(user_to_select_for_start)
|
||||
available_years = current_user.get_years()
|
||||
available_months = current_user.get_months(current_year)
|
||||
|
||||
available_months_dict = { }
|
||||
for element in available_months:
|
||||
available_months_dict[element] = calendar.month_name[int(element)]
|
||||
print('Selektoren konstruiert')
|
||||
print(f" current_month: {current_month} und available_months: {available_months}")
|
||||
if current_month in available_months:
|
||||
set_month = current_month
|
||||
else:
|
||||
set_month = available_months[0]
|
||||
print(set_month)
|
||||
print(f" current_year: {current_year} und available_years: {available_years}")
|
||||
if str(current_year) in available_years:
|
||||
set_year = str(current_year)
|
||||
else:
|
||||
set_year = (available_years[0])
|
||||
print(set_year)
|
||||
select_month = ui.select(options=available_months_dict, value=set_month).bind_value_to(month_binder, 'value')
|
||||
select_year = ui.select(options=available_years, value=set_year, on_change=update_months).bind_value_to(year_binder, 'value')
|
||||
|
||||
select_month = ui.select(options=available_months_dict).bind_value(month_binder, 'value_to_bind')
|
||||
|
||||
select_year = ui.select(options=available_years, on_change=update_months).bind_value(year_binder, 'value_to_bind')
|
||||
try:
|
||||
select_year.value = str(current_year)
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
select_month.value = str(current_month)
|
||||
except:
|
||||
select_month.value = str(available_months[0])
|
||||
|
||||
month_header = ui.markdown(f"###Buchungen für {calendar.month_name[int(select_month.value)]} {select_year.value}")
|
||||
month_header = ui.markdown(f"###Buchungen für {current_user.fullname} für {calendar.month_name[int(select_month.value)]} {select_year.value}")
|
||||
|
||||
# Tabelle aufbauen
|
||||
with ui.card() as calendar_card:
|
||||
@ -347,7 +355,8 @@ def page_admin():
|
||||
def clear_card():
|
||||
calendar_card.clear()
|
||||
update_month_and_year()
|
||||
month_header.set_content(f"###Buchungen für {calendar.month_name[int(select_month.value)]} {select_year.value}")
|
||||
current_user = user(time_user.value)
|
||||
month_header.set_content(f"###Buchungen für {current_user.fullname} für {calendar.month_name[int(select_month.value)]} {select_year.value}")
|
||||
|
||||
button_update = ui.button("Aktualisieren", on_click=clear_card)
|
||||
button_update.move(timetable_header)
|
||||
|
Loading…
x
Reference in New Issue
Block a user