From 1a49e0963efbb03b9d61d788b1ddd16c7245ca07 Mon Sep 17 00:00:00 2001 From: Alexander Malzkuhn Date: Wed, 28 May 2025 12:43:36 +0200 Subject: [PATCH] Ablehnungsfunktion Abfangen von leerem Antrag --- lib/admin.py | 19 +++++++++++++++++-- lib/homepage.py | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/admin.py b/lib/admin.py index 1f36c6d..17cc02a 100644 --- a/lib/admin.py +++ b/lib/admin.py @@ -676,7 +676,7 @@ Dies kann nicht rückgängig gemacht werden!''') 'vacation_remaining': f'{actual_user.get_vacation_claim() - actual_user.count_absence_days("U", startdate_dt.year)} Tage', 'vacation_remaining_after_submission': f'{actual_user.get_vacation_claim() - actual_user.count_absence_days("U", startdate_dt.year) - vacation_duration } Tage'}) global vacation_table - vacation_table = ui.table(columns=va_columns, rows=va_rows, row_key='key', selection='multiple', column_defaults={'align': 'left', 'sortable': True}) + vacation_table = ui.table(columns=va_columns, rows=va_rows, row_key='key', selection='single', column_defaults={'align': 'left', 'sortable': True}) va_table() def approve_vacation(): @@ -701,12 +701,27 @@ Dies kann nicht rückgängig gemacht werden!''') ui.notify("Fehler beim Entfernen des Urlaubsantrages nach dem Eintragen.") va_table.refresh() timetable.refresh() + overview_table.refresh() + + def deny_vacation(): + for selection in vacation_table.selected: + key = selection["key"] + username = key.split("-")[0] + index = key.split("-")[1] + actual_user = user(username) + try: + retract_result = actual_user.revoke_vacation_application(index) + ui.notify(f"Urlaubsantrag vom {selection['start']} bis {selection['end']} für {actual_user.fullname} entfernt.") + except IndexError: + ui.notify("Fehler beim Entfernen des Urlaubsantrages. Ggf. wurde dieser zurückgezogen.") + va_table.refresh() + overview_table.refresh() ui.button("Aktualisieren", on_click=va_table.refresh) ui.separator() with ui.grid(columns=2): ui.button("Genehmigen", on_click=approve_vacation) - ui.button("Ablehnen") + ui.button("Ablehnen", on_click=deny_vacation) with ui.tab_panel(settings): with ui.grid(columns='auto auto'): diff --git a/lib/homepage.py b/lib/homepage.py index 23c07cb..4e7d12a 100644 --- a/lib/homepage.py +++ b/lib/homepage.py @@ -230,6 +230,8 @@ def homepage(): ui.label("Urlaub für folgenden Zeitraum beantragen:") vacation_date = ui.date().props('range today-btn') def vacation_submission(): + if vacation_date.value == None: + return None try: current_user.vacation_application(vacation_date.value["from"], vacation_date.value["to"]) except TypeError: