feat: Home Assistant Kalender-Integration + Bugfix ausgeblendete Kalender
- Neue Integration: Home Assistant als Kalenderquelle via REST-API
(GET /api/calendars + GET /api/calendars/{entity_id})
- Authentifizierung per Long-Lived Access Token
- Neues Modal zum Verbinden (Name, URL, Token) mit Fehlerbehandlung
- Kalender einzeln aktivierbar/deaktivierbar, Farbe änderbar
- Ausgeblendete HA-Kalender in Einstellungen wiederherstellbar
- Sync- und Trennen-Buttons in den Einstellungen
- Bugfix: CalDAV- und Google-Kalender mit sidebar_hidden=true
liefern nun keine Events mehr im Kalender
This commit is contained in:
@@ -266,7 +266,7 @@ def get_events(
|
||||
|
||||
for account in accounts:
|
||||
for calendar in account.calendars:
|
||||
if not calendar.enabled:
|
||||
if not calendar.enabled or calendar.sidebar_hidden:
|
||||
continue
|
||||
try:
|
||||
events = caldav_client.fetch_events(
|
||||
@@ -355,6 +355,19 @@ def get_events(
|
||||
logger.error("Error fetching Google Calendar for %s: %s", g_acc.email, exc)
|
||||
google_errors.append({"email": g_acc.email})
|
||||
|
||||
# ── Home Assistant events ─────────────────────────────
|
||||
from routers.homeassistant_router import get_ha_events
|
||||
ha_accounts = (
|
||||
db.query(models.HomeAssistantAccount)
|
||||
.filter(models.HomeAssistantAccount.user_id == current_user.id)
|
||||
.all()
|
||||
)
|
||||
for ha_acc in ha_accounts:
|
||||
try:
|
||||
all_events.extend(get_ha_events(ha_acc, start_dt, end_dt))
|
||||
except Exception as exc:
|
||||
logger.error("Error fetching HA events for %s: %s", ha_acc.name, exc)
|
||||
|
||||
return {"events": all_events, "errors": google_errors}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user