Allg. Update Userlist

Rückgängig Knopf für Feiertage
This commit is contained in:
Alexander Malzkuhn 2025-05-08 12:27:59 +02:00
parent 2dfef4da8c
commit 3221245b7f
5 changed files with 102 additions and 26 deletions

View File

@ -42,6 +42,14 @@ def page_admin():
settings = ui.tab('Einstellungen')
users = ui.tab('Benutzer')
userlist = [ ]
def update_userlist():
nonlocal userlist
userlist = list_users()
update_userlist()
with (((ui.tab_panels(tabs, value=time_overview)))):
with ui.tab_panel(time_overview):
@ -84,7 +92,6 @@ def page_admin():
except NameError:
pass
userlist = list_users()
ui.markdown("Benutzer:")
time_user = ui.select(options=userlist, on_change=update_user)
@ -204,7 +211,7 @@ def page_admin():
with ui.dialog() as dialog, ui.card():
ui.markdown(f'''Soll der Eintrag **{absence_type}** für den **{day}. {calendar.month_name[int(select_month.value)]} {select_year.value}** gelöscht werden?
Dies kann nicht rückgägig gemacht werden!''')
Dies kann nicht rückgägig gemacht werden!''')
with ui.grid(columns=3):
ui.button("Ja", on_click=execute_deletion)
ui.space()
@ -531,6 +538,7 @@ def page_admin():
ui.button("OK", on_click=lambda: dialog.close())
dialog.open()
ui.notify("Einstellungen gespeichert")
timetable.refresh()
ui.markdown("Benutzername des Adminstrators")
admin_user = ui.input()
@ -553,6 +561,9 @@ def page_admin():
with ui.card():
ui.markdown('**Feiertage:**')
reset_visibility = ValueBinder()
reset_visibility.value = False
def new_holiday_entry():
def add_holiday_to_dict():
year_from_picker = int(datepicker.value.split("-")[0])
@ -562,8 +573,8 @@ def page_admin():
repetition_date_dt = datetime.datetime(year_from_picker + i, month_from_picker, day_from_picker)
date_entry = repetition_date_dt.strftime('%Y-%m-%d')
data["holidays"][date_entry] = description.value
print(data['holidays'])
holiday_buttons_grid.refresh()
reset_visibility.value = True
dialog.close()
with ui.dialog() as dialog, ui.card():
@ -607,6 +618,7 @@ def page_admin():
def del_holiday_entry(entry):
del(data['holidays'][entry.strftime('%Y-%m-%d')])
reset_visibility.value = True
holiday_buttons_grid.refresh()
def defined_holidays():
@ -620,7 +632,7 @@ def page_admin():
new_year = ui.checkbox("Neujahr (1. Januar)").classes(checkbox_classes)
heilige_drei_koenige = ui.checkbox("Heilige Drei Könige (6. Januar)").classes(checkbox_classes)
womens_day = ui.checkbox("Internationaler Frauentag (8. März)").classes(checkbox_classes)
gruendonnerstag = ui.checkbox("Gründonnerstag (berechnet").classes(checkbox_classes)
gruendonnerstag = ui.checkbox("Gründonnerstag (berechnet)").classes(checkbox_classes)
karfreitag = ui.checkbox("Karfreitag (berechnet").classes(checkbox_classes)
easter_sunday = ui.checkbox("Ostersonntag (berechnet)").classes(checkbox_classes)
easter_monday = ui.checkbox("Ostermontag (berechnet)").classes(checkbox_classes)
@ -667,7 +679,7 @@ def page_admin():
datum = datum_dt.strftime("%Y-%m-%d")
data["holidays"][f"{datum}"] = "Ostermontag"
if first_of_may.value:
data["holidays"][f"{year}-05-01"] = f"Tage der Arbeit"
data["holidays"][f"{year}-05-01"] = f"Tag der Arbeit"
if liberation_day.value:
data["holidays"][f"{year}-05-08"] = f"Tag der Befreiung"
if ascension_day.value:
@ -711,6 +723,7 @@ def page_admin():
data["holidays"][f"{year}-12-25"] = f"1. Weihnachtsfeiertag"
if boxing_day.value:
data["holidays"][f"{year}-12-26"] = f"2. Weihnachtsfeiertag"
reset_visibility.value = True
dialog.close()
holiday_buttons_grid.refresh()
@ -722,11 +735,19 @@ def page_admin():
ui.button("Abbrechen", on_click=dialog.close)
dialog.open()
def reset_holidays():
old_data = load_adminsettings()
data["holidays"] = old_data["holidays"]
reset_visibility.value = False
holiday_buttons_grid.refresh()
with ui.grid(columns='auto auto'):
ui.space()
with ui.row():
ui.button("Gesetzliche Feiertage eintragen", on_click=defined_holidays)
ui.button("Eigener Eintrag", on_click=new_holiday_entry)
ui.button("Zurücksetzen", icon="undo", on_click=reset_holidays).bind_visibility_from(reset_visibility, 'value').classes('bg-red')
ui.separator().classes('col-span-2')
for year_entry in year_list:
ui.markdown(f"{str(year_entry)}:")
@ -833,12 +854,19 @@ def page_admin():
current_user = user(user_selection.value)
def del_definitely():
if current_user.username == time_user.value:
if userlist.index(current_user.username) == 0:
time_user.value = userlist[1]
else:
time_user.value = userlist[0]
current_user.del_user()
#userlist = list_users()
#userlist.sort()
#user_selection.clear()
#user_selection.set_options(userlist)
#user_selection.value = userlist[0]
update_userlist()
time_user.set_options(userlist)
user_ui.refresh()
dialog.close()
ui.notify("Benutzer gelöscht")
@ -907,7 +935,8 @@ def page_admin():
if user_name_input.validate():
print(user_name_input.value)
new_user(user_name_input.value)
userlist = list_users()
update_userlist()
time_user.set_options(userlist)
user_ui.refresh()
dialog.close()
else:

View File

@ -58,5 +58,8 @@ absence_entries = {"U": { "name": "Urlaub",
"text-color": "white"},
"EZ": { "name": "Elternzeit",
"color": "purple",
"text-color": "white"},
"SO": { "name": "Sonstiges",
"color": "pink",
"text-color": "white"}
}

View File

@ -3,5 +3,66 @@
"admin_password": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
"port": "8090",
"secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise",
"holidays": {}
"holidays": {
"2025-01-01": "Neujahr",
"2025-04-18": "Karfreitag",
"2025-04-21": "Ostermontag",
"2025-05-01": "Tag der Arbeit",
"2025-05-29": "Christi Himmelfahrt",
"2025-06-08": "Pfingstmontag",
"2025-10-03": "Tag der deutschen Einheit",
"2025-10-30": "Reformationstag",
"2025-12-25": "1. Weihnachtsfeiertag",
"2025-12-26": "2. Weihnachtsfeiertag",
"2026-01-01": "Neujahr",
"2026-04-03": "Karfreitag",
"2026-04-06": "Ostermontag",
"2026-05-01": "Tag der Arbeit",
"2026-05-14": "Christi Himmelfahrt",
"2026-05-24": "Pfingstmontag",
"2026-10-03": "Tag der deutschen Einheit",
"2026-10-30": "Reformationstag",
"2026-12-25": "1. Weihnachtsfeiertag",
"2026-12-26": "2. Weihnachtsfeiertag",
"2027-01-01": "Neujahr",
"2027-03-26": "Karfreitag",
"2027-03-29": "Ostermontag",
"2027-05-01": "Tag der Arbeit",
"2027-05-06": "Christi Himmelfahrt",
"2027-05-16": "Pfingstmontag",
"2027-10-03": "Tag der deutschen Einheit",
"2027-10-30": "Reformationstag",
"2027-12-25": "1. Weihnachtsfeiertag",
"2027-12-26": "2. Weihnachtsfeiertag",
"2028-01-01": "Neujahr",
"2028-04-14": "Karfreitag",
"2028-04-17": "Ostermontag",
"2028-05-01": "Tag der Arbeit",
"2028-05-25": "Christi Himmelfahrt",
"2028-06-04": "Pfingstmontag",
"2028-10-03": "Tag der deutschen Einheit",
"2028-10-30": "Reformationstag",
"2028-12-25": "1. Weihnachtsfeiertag",
"2028-12-26": "2. Weihnachtsfeiertag",
"2029-01-01": "Neujahr",
"2029-03-30": "Karfreitag",
"2029-04-02": "Ostermontag",
"2029-05-01": "Tag der Arbeit",
"2029-05-10": "Christi Himmelfahrt",
"2029-05-20": "Pfingstmontag",
"2029-10-03": "Tag der deutschen Einheit",
"2029-10-30": "Reformationstag",
"2029-12-25": "1. Weihnachtsfeiertag",
"2029-12-26": "2. Weihnachtsfeiertag",
"2030-01-01": "Neujahr",
"2030-04-19": "Karfreitag",
"2030-04-22": "Ostermontag",
"2030-05-01": "Tage der Arbeit",
"2030-05-30": "Christi Himmelfahrt",
"2030-06-09": "Pfingstmontag",
"2030-10-03": "Tag der deutschen Einheit",
"2030-10-30": "Reformationstag",
"2030-12-25": "1. Weihnachtsfeiertag",
"2030-12-26": "2. Weihnachtsfeiertag"
}
}

View File

@ -2,6 +2,7 @@
"archived": 0,
"overtime": 0,
"absence": {
"14": "U"
"14": "U",
"2": "SO"
}
}

View File

@ -1,18 +0,0 @@
{
"username": "testuser99",
"fullname": "testuser99",
"password": "37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f",
"api_key": "d0c28e4b8dff9685e774e6e2e6bcea6b746d34af",
"workhours": {
"2025-05-08": {
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"vacation": 0
}
}
}