From ad959e0fea10362f9e76a7f58e3ee14746951e31 Mon Sep 17 00:00:00 2001 From: Alexander Malzkuhn Date: Tue, 13 May 2025 14:12:14 +0200 Subject: [PATCH] Vereinfachung Zuordnung Notizen Benutzer oder Admin --- admin.py | 19 +++++++++---------- homepage.py | 26 ++++++++++++++++++-------- users.py | 7 ++++++- users/testuser1/2025-5.json | 9 ++++++--- 4 files changed, 39 insertions(+), 22 deletions(-) diff --git a/admin.py b/admin.py index dc9f2f7..8853de8 100644 --- a/admin.py +++ b/admin.py @@ -316,7 +316,7 @@ Dies kann nicht rückgängig gemacht werden!''') if username == admins_name: ui.markdown('Administrator:') else: - ui.markdown(user(username).fullname) + ui.markdown(current_user.fullname) ui.markdown(text) else: ui.space() @@ -503,8 +503,8 @@ Dies kann nicht rückgängig gemacht werden!''') del_buttons[user].delete() def save_notes(): - if not note_labels[admin_settings["admin_user"]].is_deleted: - notes[admin_settings["admin_user"]] = note_labels[admin_settings["admin_user"]].value + if not note_labels["admin"].is_deleted: + notes["admin"] = note_labels["admin"].value current_user.write_notes(select_year.value, select_month.value, day, notes) timetable.refresh() dialog.close() @@ -519,18 +519,17 @@ Dies kann nicht rückgängig gemacht werden!''') with ui.grid(columns='auto auto auto'): admin_settings = load_adminsettings() # Beschreibungsfeld für Admin - username_labels[admin_settings["admin_user"]] = ui.markdown("Administrator:") + username_labels["admin"] = ui.markdown("Administrator:") # Textarea für Admin - note_labels[admin_settings["admin_user"]] = ui.textarea() + note_labels["admin"] = ui.textarea() for name, text in notes.items(): - if name != admin_settings["admin_user"]: - user_obj = user(name) - noteuser = user_obj.username - username_labels[noteuser] = ui.markdown(user_obj.fullname) + if name != "admin": + noteuser = "user" + username_labels[noteuser] = ui.markdown(current_user.fullname) note_labels[noteuser] = ui.markdown(text) else: - noteuser = admin_settings["admin_user"] + noteuser = "admin" note_labels[noteuser].set_value(text) del_buttons[noteuser] = ui.button(icon='remove', on_click=lambda user=noteuser: del_note_entry(user)) diff --git a/homepage.py b/homepage.py index da91d5d..a26ca77 100644 --- a/homepage.py +++ b/homepage.py @@ -97,21 +97,31 @@ def homepage(): ui.space() with ui.expansion("Tagesnotiz", icon='o_description'): with ui.grid(columns=2): + status_binder = ValueBinder() + def button_enabler(): if daynote.value == "": - save_button.disable() - delete_button.disable() + status_binder.value = False else: - save_button.enable() - delete_button.enable() + status_binder.value = True daynote = ui.textarea(on_change=button_enabler).classes('col-span-2') + try: + daynote.value = current_user.get_day_notes(today.year, today.month, today.day)["user"] + except: + daynote.value = "" - save_button = ui.button("Speichern") - save_button.disable() + def save_note(): + note_dict = { } + note_dict["user"] = daynote.value + current_user.write_notes(today.year, today.month, today.day, note_dict) + + save_button = ui.button("Speichern", on_click=save_note) + #save_button.disable() def del_text(): daynote.value = "" - delete_button = ui.button("Löschen", on_click=del_text) - delete_button.disable() + delete_button = ui.button("Löschen", on_click=del_text).bind_enabled_from(status_binder, 'value') + #delete_button.disable() + status_binder.value = False notes = current_user.get_day_notes(today.year, today.month, today.day) try: diff --git a/users.py b/users.py index fc93b72..fe9fce5 100644 --- a/users.py +++ b/users.py @@ -274,7 +274,12 @@ class user: def write_notes(self, year, month, day, note_dict): with open(f"{self.userfolder}/{int(year)}-{int(month)}.json", "r") as json_file: json_data = json.load(json_file) - json_data["notes"][str(day)] = note_dict + if len(note_dict) == 1: + json_data["notes"][str(day)] = { } + json_data["notes"][str(day)]["user"] = note_dict["user"] + else: + json_data["notes"][str(day)] = note_dict + json_output = json.dumps(json_data, indent=4) with open(f"{self.userfolder}/{int(year)}-{int(month)}.json", "w") as json_file: json_file.write(json_output) diff --git a/users/testuser1/2025-5.json b/users/testuser1/2025-5.json index 9ac3423..d3b1f01 100644 --- a/users/testuser1/2025-5.json +++ b/users/testuser1/2025-5.json @@ -7,17 +7,20 @@ }, "notes": { "5": { - "testuser1": "Jo, das ging echt ab.", + "user": "Jo, das ging echt ab.", "admin": "Streik\n\nUnd anderes" }, "4": { - "admin": "Testeintrag" + "admin": "Testeintrag\n\nZusatzeintrag" }, "2": {}, "1": {}, "9": { - "testuser1": "Dieses ist ein Testeintrag.", + "user": "Dieses ist ein Testeintrag.", "admin": "Das sollte der Testuser nicht sehen" + }, + "12": { + "user": "Testtext" } } } \ No newline at end of file