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:
@@ -30,6 +30,9 @@ class User(Base):
|
||||
google_accounts = relationship(
|
||||
"GoogleAccount", back_populates="user", cascade="all, delete-orphan"
|
||||
)
|
||||
homeassistant_accounts = relationship(
|
||||
"HomeAssistantAccount", back_populates="user", cascade="all, delete-orphan"
|
||||
)
|
||||
|
||||
|
||||
class CalDAVAccount(Base):
|
||||
@@ -176,3 +179,32 @@ class GoogleCalendar(Base):
|
||||
sidebar_hidden = Column(Boolean, default=False)
|
||||
|
||||
account = relationship("GoogleAccount", back_populates="calendars")
|
||||
|
||||
|
||||
class HomeAssistantAccount(Base):
|
||||
__tablename__ = "homeassistant_accounts"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), nullable=False)
|
||||
name = Column(String(100), nullable=False)
|
||||
url = Column(String(500), nullable=False)
|
||||
token = Column(Text, nullable=False)
|
||||
|
||||
user = relationship("User", back_populates="homeassistant_accounts")
|
||||
calendars = relationship(
|
||||
"HomeAssistantCalendar", back_populates="account", cascade="all, delete-orphan"
|
||||
)
|
||||
|
||||
|
||||
class HomeAssistantCalendar(Base):
|
||||
__tablename__ = "homeassistant_calendars"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
account_id = Column(Integer, ForeignKey("homeassistant_accounts.id"), nullable=False)
|
||||
entity_id = Column(String(255), nullable=False)
|
||||
name = Column(String(255), nullable=False)
|
||||
color = Column(String(7), nullable=True)
|
||||
enabled = Column(Boolean, default=True)
|
||||
sidebar_hidden = Column(Boolean, default=False)
|
||||
|
||||
account = relationship("HomeAssistantAccount", back_populates="calendars")
|
||||
|
||||
Reference in New Issue
Block a user