diff --git a/lib/admin.py b/lib/admin.py index 92ed7ef..3396e10 100644 --- a/lib/admin.py +++ b/lib/admin.py @@ -6,6 +6,7 @@ from dateutil.easter import * from nicegui import ui, app, events from nicegui.html import button +from nicegui.events import KeyEventArguments from lib.users import * from lib.definitions import * @@ -241,12 +242,21 @@ Dies kann nicht rückgängig gemacht werden!''') ui.button("Ja", on_click=execute_deletion) ui.space() ui.button("Nein", on_click=dialog.close) + + def handle_key(e: KeyEventArguments): + if e.key == 'j' or e.key == 'Enter': + execute_deletion() + if e.key == 'n' or e.key == 'Esc': + dialog.close() + + keyboard = ui.keyboard(on_key=handle_key) + dialog.open() try: for i in list(user_absent): if int(i) == day: - absence_button = ui.button(absence_entries[user_absent[i]]["name"], on_click=lambda i=i, day=day: delete_absence(day, absence_entries[user_absent[i]]["name"])).props(f'color={absence_entries[user_absent[i]]["color"]}') + absence_button = ui.button(absence_entries[user_absent[i]]["name"], on_click=lambda i=i, day=day: delete_absence(day, absence_entries[user_absent[i]]["name"])).props(f'color={absence_entries[user_absent[i]]["color"]} square') if archive_status: absence_button.disable() except: @@ -319,7 +329,7 @@ Dies kann nicht rückgängig gemacht werden!''') with ui.card().classes('bg-inherit'): with ui.row(): for j in temp_pair: - timestamp_button = ui.button(datetime.datetime.fromtimestamp(int(j)).strftime('%H:%M'), on_click=lambda t_stamp=j, day=day: edit_entry(t_stamp, day)) + timestamp_button = ui.button(datetime.datetime.fromtimestamp(int(j)).strftime('%H:%M'), on_click=lambda t_stamp=j, day=day: edit_entry(t_stamp, day)).props('square') if archive_status: timestamp_button.disable() except Exception as e: @@ -569,7 +579,7 @@ Dies kann nicht rückgängig gemacht werden!''') dialog.open() dialog.move(calendar_card) - with ui.button(icon='menu') as menu_button: + with ui.button(icon='menu').props('square') as menu_button: with ui.menu() as menu: menu_item = ui.menu_item("Zeiteintrag hinzufügen", lambda day=day: add_entry(day)) if archive_status: @@ -1187,6 +1197,13 @@ Dies kann nicht rückgängig gemacht werden!''') with ui.row(): ui.button("Löschen", on_click=delete_entry) ui.button("Abbrechen", on_click=dialog.close) + def handle_key(e: KeyEventArguments): + print(e.key) + if e.key == 'j' or e.key == 'Enter': + delete_entry() + if e.key == 'n' or e.key == 'Esc': + dialog.close() + keyboard = ui.keyboard(on_key=handle_key) else: ui.markdown("Es gibt nur einen Eintrag. Dieser kann nicht gelöscht werden.") ui.button("OK", on_click=dialog.close) diff --git a/lib/homepage.py b/lib/homepage.py index bd9b479..092bad3 100644 --- a/lib/homepage.py +++ b/lib/homepage.py @@ -49,13 +49,17 @@ def homepage(): def update_timer(): additional_time = 0 - if time_toggle.value == "total": + if time_toggle.value: additional_time = yesterdays_overtime() + time_toggle.set_text("Gesamtzeit") + if not time_toggle.value: + time_toggle.set_text("Tageszeit") if current_user.get_worked_time(today.year, today.month, today.day)[1] > 0: time_in_total = additional_time + time_so_far + int((datetime.datetime.now().timestamp() - current_user.get_worked_time(today.year, today.month, today.day)[1])) else: time_in_total = additional_time + time_so_far working_hours.set_content(convert_seconds_to_hours(time_in_total)) + with ui.grid(columns='1fr 1fr'): if current_user.stamp_status() == status_in: bg_color = 'green' @@ -64,8 +68,11 @@ def homepage(): working_hours = ui.markdown(convert_seconds_to_hours(time_so_far)).classes(f'col-span-2 rounded-3xl text-center text-white text-bold text-2xl border-4 border-gray-600 bg-{bg_color}') in_button = ui.button("Einstempeln", on_click=stamp_and_refresh).classes('bg-green') out_button = ui.button("Ausstempeln", on_click=stamp_and_refresh).classes('bg-red') - time_toggle = ui.toggle({"day": "Tagesarbeitszeit", "total": "Gesamtzeit"}, value="day", - on_change=update_timer).classes('w-full justify-center col-span-2').tooltip("Hier lässt sich die Anzeige oben zwischen heute geleisteter Arbeitszeit und summierter Arbeitszeit umschalten.") + + time_toggle = ui.switch("Tageszeit",on_change=update_timer).classes('w-full justify-center col-span-2 normal-case') + + #time_toggle = ui.toggle({"day": "Tagesarbeitszeit", "total": "Gesamtzeit"}, value="day", + # on_change=update_timer).classes('w-full justify-center col-span-2 normal-case').tooltip("Hier lässt sich die Anzeige oben zwischen heute geleisteter Arbeitszeit und summierter Arbeitszeit umschalten.") working_timer = ui.timer(1.0, update_timer) working_timer.active = False diff --git a/lib/web_ui.py b/lib/web_ui.py index 5297d2a..f7f6ace 100644 --- a/lib/web_ui.py +++ b/lib/web_ui.py @@ -118,5 +118,4 @@ def login_is_valid(user = -1): else: return False except: - return False - + return False \ No newline at end of file diff --git a/settings.json b/settings.json index 4bedf6d..3a7dc0b 100644 --- a/settings.json +++ b/settings.json @@ -6,8 +6,8 @@ "touchscreen": true, "times_on_touchscreen": true, "photos_on_touchscreen": true, - "picture_height": "100", - "button_height": "120", + "picture_height": "200", + "button_height": "300", "user_notes": true, "vacation_application": true, "backup_folder": "/home/alexander/Dokumente/Python/Zeiterfassung/backup", diff --git a/users/testuser3/photo.jpg b/users/testuser3/photo.jpg index c5003dc..8da4f2e 100644 Binary files a/users/testuser3/photo.jpg and b/users/testuser3/photo.jpg differ diff --git a/zeiterfassung.py b/zeiterfassung.py index 13181e4..f6ebcb3 100644 --- a/zeiterfassung.py +++ b/zeiterfassung.py @@ -49,7 +49,10 @@ def main(): # Styling: ui.button.default_classes('normal-case') + ui.button.default_props('rounded') ui.tab.default_classes('normal-case') + ui.toggle.default_classes('normal-case') + ui.toggle.default_props('rounded') ui.run(favicon="favicon.svg", port=port, storage_secret=secret, language='de-DE', show_welcome_message=False)