Skip to content

Commit

Permalink
Specify a default calendar colour so we don't accidentally crash
Browse files Browse the repository at this point in the history
  • Loading branch information
MelissaAutumn committed Oct 22, 2024
1 parent 58359ee commit c3ea759
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 4 deletions.
4 changes: 2 additions & 2 deletions backend/src/appointment/controller/calendar.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

from .. import utils
from ..database.schemas import CalendarConnection
from ..defines import REDIS_REMOTE_EVENTS_KEY, DATEFMT
from ..defines import REDIS_REMOTE_EVENTS_KEY, DATEFMT, DEFAULT_CALENDAR_COLOUR
from .apis.google_client import GoogleClient
from ..database.models import CalendarProvider, BookingStatus
from ..database import schemas, models, repo
Expand Down Expand Up @@ -341,7 +341,7 @@ def sync_calendars(self):
user=self.user,
password=self.password,
provider=CalendarProvider.caldav,
color='#c276c5' # Pick a default colour for now!
color=DEFAULT_CALENDAR_COLOUR # Pick a default colour for now!
)

# add calendar
Expand Down
4 changes: 3 additions & 1 deletion backend/src/appointment/database/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

from pydantic import BaseModel, Field, EmailStr, model_validator
from pydantic_core import PydanticCustomError

from ..defines import DEFAULT_CALENDAR_COLOUR
from ..l10n import l10n


Expand Down Expand Up @@ -243,7 +245,7 @@ class ScheduleSlug(BaseModel):

class CalendarBase(BaseModel):
title: str | None = None
color: str | None = None
color: str | None = DEFAULT_CALENDAR_COLOUR
connected: bool | None = None


Expand Down
3 changes: 3 additions & 0 deletions backend/src/appointment/defines.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@

# Custom pydantic error types
END_TIME_BEFORE_START_TIME_ERR = 'end_time_before_start_time'

# CalDAV doesn't provide colours afaik
DEFAULT_CALENDAR_COLOUR = '#c276c5'
3 changes: 2 additions & 1 deletion backend/src/appointment/routes/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
from ..controller.auth import signed_url_by_subscriber, schedule_links_by_subscriber
from ..database.models import Subscriber, CalendarProvider, MeetingLinkProviderType, ExternalConnectionType, \
InviteStatus
from ..defines import DEFAULT_CALENDAR_COLOUR
from ..dependencies.google import get_google_client
from ..dependencies.auth import get_subscriber
from ..dependencies.database import get_db, get_redis
Expand Down Expand Up @@ -102,7 +103,7 @@ def read_my_appointments(db: Session = Depends(get_db), subscriber: Subscriber =
# Note because we `__dict__` any relationship values won't be carried over, so don't forget to manually add those!
appointments = map(
lambda x: schemas.AppointmentWithCalendarOut(
**x.__dict__, calendar_title=x.calendar.title, calendar_color=x.calendar.color
**x.__dict__, calendar_title=x.calendar.title, calendar_color=x.calendar.color or DEFAULT_CALENDAR_COLOUR
),
appointments,
)
Expand Down

0 comments on commit c3ea759

Please sign in to comment.