# dashboard/callbacks/appointments_callbacks.py import os import sys sys.path.append('/workspace') from dash import Input, Output, State, callback, ctx, dash from flask import session import json import requests print("appointments_callbacks.py geladen") API_BASE_URL = os.getenv("API_BASE_URL", "http://192.168.43.100") @callback( dash.Output('output', 'children'), dash.Input('calendar', 'lastDateClick') ) def display_date(date_str): if date_str: return f"Letzter Klick auf: {date_str}" return "Klicke auf ein Datum im Kalender!" @callback( dash.Output('event-output', 'children'), dash.Input('calendar', 'lastEventClick') ) def display_event(event_id): if event_id: return f"Letztes Event geklickt: {event_id}" return "Klicke auf ein Event im Kalender!" @callback( dash.Output('select-output', 'children'), dash.Input('calendar', 'lastSelect') ) def display_select(select_info): if select_info: return f"Markiert: {select_info['start']} bis {select_info['end']} (ganztägig: {select_info['allDay']})" return "Markiere einen Bereich im Kalender!" @callback( dash.Output('calendar', 'events'), dash.Input('calendar', 'lastNavClick'), ) def load_events(view_dates): """ Lädt Events aus der API für den angezeigten Zeitraum im Kalender. """ print("Lade Events für Zeitraum:", view_dates) if not view_dates or "start" not in view_dates or "end" not in view_dates: return [] start = view_dates["start"] end = view_dates["end"] try: resp = requests.get(f"{API_BASE_URL}/api/events", params={"start": start, "end": end}) resp.raise_for_status() events = resp.json() return events except Exception as e: print("Fehler beim Laden der Events:", e) return []