diff --git a/users.py b/users.py index a4ea0a3..94d374b 100644 --- a/users.py +++ b/users.py @@ -29,6 +29,7 @@ class user: self.fullname = data["name"] self.password = data["password"] self.workhours = data["workhours"] + self.username = data["username"] def get_stamp_file(self): year = str(datetime.datetime.now().year) diff --git a/users/test/2025-4.txt b/users/test/2025-4.txt index 1592319..a4487a4 100644 --- a/users/test/2025-4.txt +++ b/users/test/2025-4.txt @@ -2,3 +2,11 @@ 1744989837 1744989913 1744989917 +1744991287 +1744991291 +1744991475 +1744991478 +1744991773 +1744991776 +1744991910 +1744991912 diff --git a/users/testuser/2025-4.txt b/users/testuser/2025-4.txt index ff9610d..f4ed5ca 100644 --- a/users/testuser/2025-4.txt +++ b/users/testuser/2025-4.txt @@ -14,3 +14,13 @@ 1744989909 1744989914 1744989916 +1744991169 +1744991171 +1744991288 +1744991291 +1744991473 +1744991477 +1744991770 +1744991777 +1745181046 +1745181050 diff --git a/users/testuser2/2025-4.txt b/users/testuser2/2025-4.txt index a007095..71c97e7 100644 --- a/users/testuser2/2025-4.txt +++ b/users/testuser2/2025-4.txt @@ -6,3 +6,7 @@ 1744989907 1744989915 1744989916 +1744991290 +1744991291 +1745004502 +1745004504 diff --git a/web_ui.py b/web_ui.py index 32ff281..8c06c42 100644 --- a/web_ui.py +++ b/web_ui.py @@ -3,6 +3,13 @@ from users import * from definitions import * import hashlib +class pageheader: + def __init__(self, heading): + self.heading = heading + + ui.markdown(f"##{app_title} {app_version}") + ui.markdown(f"###{self.heading}") + def cookie_hash(user, password): return hashlib.sha256(b"{user}{app.storage.user['id']}{password}").hexdigest() @@ -33,8 +40,11 @@ def page_login(): else: ui.notify("Login fehlgeschlagen") - ui.markdown(f"## {app_title} {app_version}") - ui.markdown("Bitte einloggen") + #ui.markdown(f"## {app_title} {app_version}") + #ui.markdown("Bitte einloggen") + + pageheader("Bitte einloggen:") + with ui.grid(columns=2): ui.markdown("Benutzer:") username = ui.input('Benutzername') @@ -53,22 +63,82 @@ def page_admin(): # Adminseite if browser_cookie == active_login: - ui.markdown(f"##{app_title} {app_version}") - ui.markdown("###Administrator Benutzer") - with ui.grid(columns=2): - ui.label("Benutzername des Adminstrators") - admin_user = ui.input() - admin_user.value = data["admin_user"] - ui.label("Passwort des Adminsistrators") - admin_password = ui.input(password=True) - admin_password.value = data["admin_password"] + pageheader("Administration") - ui.markdown("###Benutzerverwaltung") - userlist = list_users() - with ui.grid(columns=2): - for name in userlist: - ui.label(name) - ui.button("Löschen") + with ui.tabs() as tabs: + admin_user = ui.tab('Admin Benutzer') + users = ui.tab('Benutzer') + settings = ui.tab('Einstellungen') + + with ui.tab_panels(tabs, value=admin_user): + with ui.tab_panel(admin_user): + with ui.grid(columns=2): + ui.label("Benutzername des Adminstrators") + admin_user = ui.input() + admin_user.value = data["admin_user"] + ui.label("Passwort des Adminsistrators") + admin_password = ui.input(password=True) + admin_password.value = data["admin_password"] + with ui.tab_panel(users): + ui.markdown("###Benutzerverwaltung") + userlist = list_users() + workhours = [ ] + with ui.row(): + def user_selection_changed(value): + current_user = user(value) + username_input.value = current_user.username + fullname_input.value = current_user.fullname + password_input.value = current_user.password + usersettingscard.visible = True + + workhours_select.set_options(list(current_user.workhours)) + workhours_select.value = list(current_user.workhours)[0] + workinghourscard.visible = True + with ui.column(): + ui.select(options=userlist, with_input=True, on_change=lambda e: user_selection_changed(e.value)) + ui.button("Neu") + + with ui.column(): + with ui.card() as usersettingscard: + ui.markdown("**Benutzereisntellungen**") + with ui.grid(columns=2): + + ui.label("Benutzername:") + username_input = ui.input() + ui.label("Voller Name:") + fullname_input = ui.input() + ui.label("Passwort") + password_input = ui.input(password=True) + with ui.row(): + ui.button("Speichern") + ui.button("Löschen") + + with ui.card() as workinghourscard: + workhours = [ ] + ui.markdown("**Arbeitszeiten**") + with ui.grid(columns=2): + ui.markdown("gültig ab:") + workhours_select = ui.select(options=workhours) + days = [ ] + weekdays = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"] + counter = 0 + for day in weekdays: + ui.markdown(day) + days.append(ui.input()) + counter = counter + 1 + ui.separator() + with ui.grid(columns=2): + ui.markdown("Urlaubstage") + vacation_input = ui.input() + with ui.row(): + ui.button("Speichern") + ui.button("Löschen") + ui.button("Neu") + + + # Initial das Benutzerfeld unsichtbar machen + usersettingscard.visible = False + workinghourscard.visible = False # Alternativ zur Loginseite navigieren else: