zeiterfassung/web_ui.py
Alexander Malzkuhn e86ddac778 Restructuring, Rangefunktion Abwesenheit
py-Dateien restrukturiert
Arbeitszeitenfunktion hinzugefügt
Rangefunktion für Abwesenheit hinzugefügt
2025-04-25 23:24:22 +02:00

81 lines
1.8 KiB
Python

from datetime import datetime
from nicegui import ui, app
from users import *
from definitions import *
from calendar import monthrange
import hashlib
import calendar
import locale
locale.setlocale(locale.LC_ALL, '')
class pageheader:
def __init__(self, heading):
self.heading = heading
ui.markdown(f"##{app_title} {app_version}")
ui.markdown(f"###{self.heading}")
class ValueBinder:
def __init__(self):
self.value = ""
def cookie_hash(user, password):
return hashlib.sha256(b"{user}{app.storage.user['id']}{password}").hexdigest()
def load_adminsettings():
# Settingsdatei einlesen
try:
with open(f"{scriptpath}/{usersettingsfilename}") as json_file:
data = json.load(json_file)
json_file.close()
return(data)
except:
return(-1)
def convert_seconds_to_hours(seconds):
if seconds < 0:
sign = "-"
seconds = seconds * (-1)
else:
sign = ""
hours = seconds // 3600
remaining_seconds = seconds - hours * 3600
minutes = remaining_seconds // 60
remaining_seconds = remaining_seconds - minutes * 60
if remaining_seconds > 0 and sign != "-":
minutes = minutes + 1
if hours < 10:
hours = "0" + str(hours)
else:
hours = str(hours)
if minutes < 10:
minutes = "0" + str(minutes)
else:
minutes = str(minutes)
if sign == "-":
return(f"-{hours}:{minutes}")
else:
return(f"{hours}:{minutes}")
@ui.page('/userlist')
def page_userlist():
def click_button(button):
ui.notify(button)
ui.markdown(f"#{app_title} {app_version}")
userlist = list_users()
buttons = { }
for name in userlist:
button = ui.button(text=name, on_click=lambda name=name:click_button(name) )
buttons[name] = button