zeiterfassung/main.py
Alexander Malzkuhn b6a1db63bc Fehlerbehebungen
Fehlervermeidung
Favicon ersetzt
2025-06-05 12:34:29 +02:00

104 lines
3.2 KiB
Python

#!/usr/bin/env python3
# Zeiterfassung
import os.path
from lib.web_ui import *
from lib.admin import *
from lib.login import *
from lib.users import *
from lib.touchscreen import *
from lib.definitions import *
from lib.api import *
from lib.homepage import *
import json
import argparse
from lib.web_ui import hash_password
def commandline_header():
message_string = f"{app_title} {app_version}"
underline = ""
for i in range(len(message_string)):
underline += "-"
print(message_string)
print(underline)
def main():
# Einstellungen einlesen
data = load_adminsettings()
port = int(data["port"])
secret = data["secret"]
list_users()
homepage()
def startup_message():
commandline_header()
url_string = ""
for i in list(app.urls):
url_string += f"{i}, "
url_string = url_string[0:-2]
print("Oberfläche erreichbar unter: " + url_string)
app.on_startup(startup_message)
# Styling:
ui.button.default_classes('normal-case')
ui.button.default_props('rounded')
ui.tab.default_classes('normal-case')
ui.toggle.default_classes('normal-case')
ui.toggle.default_props('rounded')
ui.row.default_classes('items-baseline')
#if not os.path.exists(os.path.join(scriptpath, "favicon.svg")):
# with open(os.path.join(scriptpath, "favicon.svg"), 'w') as favicon_file:
# favicon_file.write(favicon)
ui.run(favicon='', port=port, storage_secret=secret, language='de-DE', show_welcome_message=False)
if __name__ in ("__main__", "__mp_main__"):
parser = argparse.ArgumentParser(description=f'{app_title} {app_version}')
parser.add_argument('--admin-access', help='Zugangsdaten für Administrator einstellen', action="store_true")
args = parser.parse_args()
if is_docker():
scriptpath = "/app"
backupfolder = "/backup"
if args.admin_access:
commandline_header()
print("Lade Administrationseinstellungen")
admin_settings = load_adminsettings()
print("Geben Sie den neuen Benutzernamen für den Administrationsbenutzer an:")
admin_user = input()
if admin_user == "":
print("Ungültiger Benutzername. Breche ab.")
quit()
print("Geben Sie das neue Passwort für den Administrationsbenutzer ein:")
admin_password = input()
if admin_password == "":
print("Ungültiges Passwort. Breche ab.")
quit()
print("Sie haben folgende Informationen eingegeben.")
print(f"Benutzername: {admin_user}")
print(f"Passwort: {admin_password}")
print("Sollen diese Einstellungen übernommen werden? j=Ja")
question = input()
if question == "j":
admin_settings["admin_user"] = admin_user
admin_settings["admin_password"] = hash_password(admin_password)
json_dict = json.dumps(admin_settings, indent=4)
with open(os.path.join(scriptpath, usersettingsfilename), "w") as outputfile:
outputfile.write(json_dict)
print("Daten geschrieben")
quit()
else:
print("Breche ab.")
quit()
main()