Fotohandling, Port aus den Einstellungen

This commit is contained in:
Alexander Malzkuhn 2025-04-27 09:56:01 +02:00
parent ac57af88b3
commit 1484ff537e
4 changed files with 89 additions and 23 deletions

View File

@ -35,9 +35,8 @@ def page_admin():
with ui.tabs() as tabs:
time_overview = ui.tab('Zeitübersichten')
admin_user = ui.tab('Admin Benutzer')
users = ui.tab('Benutzer')
settings = ui.tab('Einstellungen')
users = ui.tab('Benutzer')
with ((ui.tab_panels(tabs, value=time_overview))):
@ -444,24 +443,45 @@ Dies kann nicht rückgägig gemacht werden!''')
button_update.move(timetable_header)
with ui.tab_panel(admin_user):
with ui.tab_panel(settings):
with ui.card():
ui.markdown("**Administrationsbenutzer:**")
with ui.grid(columns=2):
def save_admin_settings():
output_dict = { }
output_dict["admin_user"] = admin_user.value
output_dict["adnin_password"] = admin_password.value
output_dict["admin_password"] = admin_password.value
output_dict["port"] = port.value
output_dict["secret"] = secret
json_dict = json.dumps(output_dict, indent=4)
with open(f"{scriptpath}/{usersettingsfilename}", "w") as outputfile:
outputfile.write(json_dict)
print(old_port)
print(int(port.value))
if old_port != int(port.value):
with ui.dialog() as dialog, ui.card():
ui.markdown("Damit die Porteinstellungen wirksam werden, muss der Server neu gestartet werden.")
ui.button("OK", on_click=lambda: dialog.close())
dialog.open()
ui.notify("Einstellungen gespeichert")
ui.label("Benutzername des Adminstrators")
ui.markdown("Benutzername des Adminstrators")
admin_user = ui.input()
admin_user.value = data["admin_user"]
ui.label("Passwort des Adminsistrators")
ui.markdown("Passwort des Adminsistrators")
admin_password = ui.input(password=True)
admin_password.value = data["admin_password"]
secret = data["secret"]
with ui.card():
ui.markdown("**Systemeinstellungen:**")
with ui.grid(columns=2):
ui.markdown("Port:")
port = ui.input()
old_port = data["port"]
port.value = old_port
ui.button("Speichern", on_click=save_admin_settings)
with ui.tab_panel(users):
@ -488,6 +508,12 @@ Dies kann nicht rückgägig gemacht werden!''')
workhours_select.value = workhour_list[0]
workinghourscard.visible = True
user_photo.set_source(current_user.photofile)
user_photo.force_reload()
user_photo.set_visibility(os.path.exists(current_user.photofile))
delete_button.set_visibility(os.path.exists(current_user.photofile))
except:
pass
@ -622,11 +648,33 @@ Dies kann nicht rückgägig gemacht werden!''')
ui.markdown("Passwort")
password_input = ui.input(password=True)
with ui.grid(columns=2):
ui.button("Speichern", on_click=save_user_settings)
ui.button("Löschen", on_click=del_user)
with ui.card() as photocard:
ui.markdown('**Foto**')
current_user = user(user_selection.value)
user_photo = ui.image(current_user.photofile)
def handle_upload(e: events.UploadEventArguments):
picture = e.content.read()
current_user = user(user_selection.value)
with open(current_user.photofile, 'wb') as outoutfile:
outoutfile.write(picture)
uploader.reset()
user_selection_changed()
def del_photo():
current_user = user(user_selection.value)
current_user.delete_photo()
user_selection_changed()
uploader = ui.upload(label="Foto hochladen", on_upload=handle_upload).props('accept=.jpg|.jpeg').classes('max-w-full')
delete_button = ui.button("Löschen", on_click=del_photo)
with ui.card() as workinghourscard:
workhours = []
ui.markdown("**Arbeitszeiten**")

18
main.py
View File

@ -5,5 +5,21 @@ from admin import *
from login import *
from users import *
from touchscreen import *
from definitions import *
import json
ui.run(port=8090, storage_secret="test")
def main():
# Einstellungen einlesen
with open(f"{scriptpath}/settings.json") as json_file:
data = json.load(json_file)
port = int(data["port"])
secret = data["secret"]
ui.run(port=port, storage_secret=secret)
if __name__ in ("__main__", "__mp_main__"):
main()

View File

@ -1,4 +1,6 @@
{
"admin_user": "admin",
"admin_password": "123456"
"admin_password": "123456",
"port": "8090",
"secret": "ftgzuhjikg,mt5jn46uzer8sfi9okrmtzjhndfierko5zltjhdgise"
}

BIN
users/testuser3/photo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 KiB