From a4a50e7d13d855d791f56c684c168c492b1801a4 Mon Sep 17 00:00:00 2001 From: Alexander Malzkuhn Date: Fri, 18 Apr 2025 12:45:23 +0200 Subject: [PATCH] Erste Versuche WebUI mit NiceGUI --- __pycache__/definitions.cpython-311.pyc | Bin 619 -> 619 bytes definitions.py | 2 +- nicegui_test.py | 32 ++++++++++++----- users/test/settings.json | 27 ++++++++++++++ users/testuser/settings.json | 2 +- users/testuser2/settings.json | 27 ++++++++++++++ web_ui.py | 46 ++++++++++++++++++++++++ 7 files changed, 126 insertions(+), 10 deletions(-) create mode 100644 users/test/settings.json create mode 100644 users/testuser2/settings.json create mode 100644 web_ui.py diff --git a/__pycache__/definitions.cpython-311.pyc b/__pycache__/definitions.cpython-311.pyc index 29fae7fdb9cdede967718f26031071e4662b23c8..7c779a4de8e28c4dd38d4f7f7bc1943961a4ded5 100644 GIT binary patch delta 26 gcmaFO@|uNvIWI340}#Y2GEL-u$&^*F@mnb)0ACLWvj6}9 delta 26 gcmaFO@|uNvIWI340}z~D$uN=oB~wA(#&4yJ0Ba)%tpET3 diff --git a/definitions.py b/definitions.py index 28b6c83..7034256 100644 --- a/definitions.py +++ b/definitions.py @@ -13,7 +13,7 @@ userfolder = "users" # Dateinamen usersettingsfilename = "settings.json" -photofilename = "photo.png" +photofilename = "photo.jpg" # Status diff --git a/nicegui_test.py b/nicegui_test.py index 5db097b..2dbcbbd 100644 --- a/nicegui_test.py +++ b/nicegui_test.py @@ -1,12 +1,28 @@ from nicegui import ui +from users import * +from definitions import * -def pinpad(): +@ui.page('/login') +def page_login(): + ui.label('Loginseite') - def update_time(): - string_time = strftime('%A, der %d.%m.%Y - %H:%M:%S') - nonlocal digital_clock - digital_clock - digital_clock.after(1000, update_time) +@ui.page('/stamping') +def page_stamping(): + ui.label('Stempelsteite') - digital_clock = ui.label() - update_time() \ No newline at end of file +@ui.page('/userlist') +def page_userlist(): + + def click_button(button): + ui.notify(button) + + ui.label(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 + +ui.run(port=8090) diff --git a/users/test/settings.json b/users/test/settings.json new file mode 100644 index 0000000..9561df2 --- /dev/null +++ b/users/test/settings.json @@ -0,0 +1,27 @@ +{ + "username": "test", + "name": "Karl Klammer", + "password": "123456789", + "workhours": { + "2024-04-01": { + "0": "0", + "1": "8", + "2": "8", + "3": "8", + "4": "8", + "5": "8", + "6": "0", + "vacation": "30" + }, + "2024-04-07": { + "0": "0", + "1": "6", + "2": "6", + "3": "6", + "4": "8", + "5": "6", + "6": "0", + "vacation": "28" + } + } +} \ No newline at end of file diff --git a/users/testuser/settings.json b/users/testuser/settings.json index aa4dbda..5d8f3ee 100644 --- a/users/testuser/settings.json +++ b/users/testuser/settings.json @@ -1,6 +1,6 @@ { "username": "testuser", - "name": "Der neue Tester", + "name": "Otto Octavius", "password": "123456789", "workhours": { "2024-04-01": { diff --git a/users/testuser2/settings.json b/users/testuser2/settings.json new file mode 100644 index 0000000..5aa6347 --- /dev/null +++ b/users/testuser2/settings.json @@ -0,0 +1,27 @@ +{ + "username": "testuser", + "name": "Peter Pan", + "password": "123456789", + "workhours": { + "2024-04-01": { + "0": "0", + "1": "8", + "2": "8", + "3": "8", + "4": "8", + "5": "8", + "6": "0", + "vacation": "30" + }, + "2024-04-07": { + "0": "0", + "1": "6", + "2": "6", + "3": "6", + "4": "8", + "5": "6", + "6": "0", + "vacation": "28" + } + } +} \ No newline at end of file diff --git a/web_ui.py b/web_ui.py new file mode 100644 index 0000000..9ae5674 --- /dev/null +++ b/web_ui.py @@ -0,0 +1,46 @@ +from gi.overrides.keysyms import value +from nicegui import ui +from users import * +from definitions import * + +@ui.page('/login') +def page_login(): + ui.label('Loginseite') + +@ui.page('/stamping') +def page_stamping(): + ui.label('Stempelsteite') + +@ui.page('/touchscreen') +def page_touchscreen(): + + def button_click(name): + ui.notify(name) + + userlist = list_users() + number_of_users = len(userlist) + + for name in userlist: + current_user = user(name) + with ui.row(): + ui.markdown("**" + current_user.fullname + "**") + ui.toggle([status_in, status_out], value=status_in, on_change=lambda: button_click()) + +@ui.page('/userlist') +def page_userlist(): + + def click_button(button): + ui.notify(button) + + ui.markdown("#" + 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 + +ui.run(port=8090) + +