From 29dea3256186bdaa38a0ef91e65d288357f858e9 Mon Sep 17 00:00:00 2001 From: Daniel Nagel Date: Tue, 24 Feb 2026 12:55:45 +0000 Subject: [PATCH] =?UTF-8?q?Dritte=20H=C3=A4lfte=20Admin=20Panel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/database.cpython-312.pyc | Bin 3244 -> 4039 bytes database.py | 24 +++++++++++++++++--- gui/__pycache__/main_gui.cpython-312.pyc | Bin 8367 -> 8513 bytes gui/main_gui.py | 27 +++++++++-------------- 4 files changed, 32 insertions(+), 19 deletions(-) diff --git a/__pycache__/database.cpython-312.pyc b/__pycache__/database.cpython-312.pyc index 6c928f992813fd553823762dcc28134fcc1daeca..eea985e8799dd43710ae9f5464465da9f566e712 100644 GIT binary patch delta 635 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 diff --git a/gui/main_gui.py b/gui/main_gui.py index b3a00fa..b3d8512 100644 --- a/gui/main_gui.py +++ b/gui/main_gui.py @@ -83,22 +83,17 @@ def build_ui(): admin_container = ui.column().classes("w-full") with ui.card().classes("w-full"): - admin_login = ui.input(placeholder="Admin Passwort", password=True).props("clearable") - admin_loginbutton = ui.button(text="Login") - def check_login(): - print("geändert") - admin_container.clear() - print ("CHEEEECK!") + # 1. Das Passwort-Feld + pw_input = ui.input("Passwort", password=True) + + # Das Admin-Panel wird nur angezeigt, wenn der Wert vom Input '1234' ist. + # lambda v: v == '1234' ist die Prüf-Logik (True/False). - if admin_login.value == "1234": - with admin_container: - ui.separator() - admin_loginbutton.on_click(check_login) - - - - - + with ui.card().bind_visibility_from(pw_input, 'value', backward=lambda v: v == '1234').classes("w-full"): + ui.label("Admin Panel") + with ui.row().classes('w-full'): + ui.input(label="Neuer ATS Träger").classes('flex-1') + ui.button(text="Hinzufügen") # --- Rechte Karte: Tabelle --- # 'flex-1': Diese Karte nimmt die restliche Breite der Reihe ein. @@ -127,6 +122,6 @@ def build_ui(): with ui.row().classes("p-2 pb-6 items-center"): dark = ui.dark_mode(True) - # Der Switch ist nun schön in einer Leiste unten + #Light/Dark Switch in der Leiste unten. ui.switch('Dark mode').bind_value(dark)