Kalender-Sichtbarkeit persistent speichern + Sidebar-Overflow-Fix
- sidebar_hidden-Spalte zu calendars und google_calendars hinzugefügt - Ausblenden-Button persistiert jetzt server-seitig (cross-device) - Einblenden in Einstellungen schreibt sidebar_hidden=false zurück - Sidebar: overflow-x hidden verhindert dass lange Namen den Button rausschieben
This commit is contained in:
@@ -31,6 +31,18 @@ def _migrate():
|
||||
logging.info("Migration: added week_start_day column")
|
||||
except Exception:
|
||||
pass # Column already exists
|
||||
try:
|
||||
conn.execute(text("ALTER TABLE calendars ADD COLUMN sidebar_hidden BOOLEAN DEFAULT 0"))
|
||||
conn.commit()
|
||||
logging.info("Migration: added sidebar_hidden to calendars")
|
||||
except Exception:
|
||||
pass
|
||||
try:
|
||||
conn.execute(text("ALTER TABLE google_calendars ADD COLUMN sidebar_hidden BOOLEAN DEFAULT 0"))
|
||||
conn.commit()
|
||||
logging.info("Migration: added sidebar_hidden to google_calendars")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
_migrate()
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ class Calendar(Base):
|
||||
name = Column(String(100), nullable=False)
|
||||
color = Column(String(7), nullable=True)
|
||||
enabled = Column(Boolean, default=True)
|
||||
sidebar_hidden = Column(Boolean, default=False)
|
||||
|
||||
account = relationship("CalDAVAccount", back_populates="calendars")
|
||||
|
||||
@@ -168,5 +169,6 @@ class GoogleCalendar(Base):
|
||||
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("GoogleAccount", back_populates="calendars")
|
||||
|
||||
@@ -29,6 +29,7 @@ class CalendarUpdate(BaseModel):
|
||||
enabled: Optional[bool] = None
|
||||
color: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
sidebar_hidden: Optional[bool] = None
|
||||
|
||||
|
||||
class EventCreate(BaseModel):
|
||||
@@ -67,6 +68,7 @@ def _account_dict(a: models.CalDAVAccount) -> dict:
|
||||
"color": c.color or a.color,
|
||||
"enabled": c.enabled,
|
||||
"cal_id": c.cal_id,
|
||||
"sidebar_hidden": bool(c.sidebar_hidden),
|
||||
}
|
||||
for c in a.calendars
|
||||
],
|
||||
@@ -225,6 +227,8 @@ def update_calendar(
|
||||
calendar.color = data.color
|
||||
if data.name is not None:
|
||||
calendar.name = data.name
|
||||
if data.sidebar_hidden is not None:
|
||||
calendar.sidebar_hidden = data.sidebar_hidden
|
||||
db.commit()
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
@@ -131,6 +131,7 @@ def _account_dict(a: models.GoogleAccount) -> dict:
|
||||
"name": c.name,
|
||||
"color": c.color or "#4285f4",
|
||||
"enabled": c.enabled,
|
||||
"sidebar_hidden": bool(c.sidebar_hidden),
|
||||
}
|
||||
for c in a.calendars
|
||||
],
|
||||
@@ -325,6 +326,7 @@ class GoogleCalendarUpdate(BaseModel):
|
||||
enabled: Optional[bool] = None
|
||||
color: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
sidebar_hidden: Optional[bool] = None
|
||||
|
||||
|
||||
@router.put("/calendars/{calendar_id}")
|
||||
@@ -351,6 +353,8 @@ def update_calendar(
|
||||
gcal.color = data.color
|
||||
if data.name is not None:
|
||||
gcal.name = data.name
|
||||
if data.sidebar_hidden is not None:
|
||||
gcal.sidebar_hidden = data.sidebar_hidden
|
||||
db.commit()
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user