🐛(calendars) add default calendar color
This commit is contained in:
@@ -127,6 +127,11 @@ class Base(Configuration):
|
||||
environ_name="TRANSLATIONS_JSON_PATH",
|
||||
environ_prefix=None,
|
||||
)
|
||||
DEFAULT_CALENDAR_COLOR = values.Value(
|
||||
"#3788d8",
|
||||
environ_name="DEFAULT_CALENDAR_COLOR",
|
||||
environ_prefix=None,
|
||||
)
|
||||
|
||||
# Security
|
||||
ALLOWED_HOSTS = values.ListValue([])
|
||||
|
||||
@@ -118,7 +118,7 @@ class CalendarCreateSerializer(serializers.Serializer): # pylint: disable=abstr
|
||||
"""Serializer for creating a Calendar (CalDAV only, no Django model)."""
|
||||
|
||||
name = serializers.CharField(max_length=255)
|
||||
color = serializers.CharField(max_length=7, required=False, default="#3174ad")
|
||||
color = serializers.CharField(max_length=7, required=False, default="")
|
||||
description = serializers.CharField(required=False, default="")
|
||||
|
||||
|
||||
|
||||
@@ -287,7 +287,7 @@ class CalendarViewSet(viewsets.GenericViewSet):
|
||||
caldav_path = service.create_calendar(
|
||||
user=request.user,
|
||||
name=serializer.validated_data["name"],
|
||||
color=serializer.validated_data.get("color", "#3174ad"),
|
||||
color=serializer.validated_data.get("color", ""),
|
||||
)
|
||||
|
||||
return drf_response.Response(
|
||||
|
||||
@@ -207,7 +207,7 @@ class CalDAVClient:
|
||||
)
|
||||
|
||||
name = props.get(DisplayName.tag, "Calendar")
|
||||
color = props.get(CalendarColor.tag, "#3174ad")
|
||||
color = props.get(CalendarColor.tag, settings.DEFAULT_CALENDAR_COLOR)
|
||||
description = props.get(CalendarDescription.tag, "")
|
||||
|
||||
# Clean up color (CalDAV may return with alpha channel like #RRGGBBAA)
|
||||
@@ -517,16 +517,25 @@ class CalendarService:
|
||||
|
||||
def create_default_calendar(self, user) -> str:
|
||||
"""Create a default calendar for a user. Returns the caldav_path."""
|
||||
from core.services.translation_service import TranslationService # noqa: PLC0415
|
||||
|
||||
calendar_id = str(uuid4())
|
||||
calendar_name = "Mon calendrier"
|
||||
return self.caldav.create_calendar(user, calendar_name, calendar_id)
|
||||
lang = TranslationService.resolve_language(email=user.email)
|
||||
calendar_name = TranslationService.t(
|
||||
"calendar.list.defaultCalendarName", lang
|
||||
)
|
||||
return self.caldav.create_calendar(
|
||||
user, calendar_name, calendar_id, color=settings.DEFAULT_CALENDAR_COLOR
|
||||
)
|
||||
|
||||
def create_calendar(
|
||||
self, user, name: str, color: str = "#3174ad"
|
||||
self, user, name: str, color: str = ""
|
||||
) -> str:
|
||||
"""Create a new calendar for a user. Returns the caldav_path."""
|
||||
calendar_id = str(uuid4())
|
||||
return self.caldav.create_calendar(user, name, calendar_id, color=color)
|
||||
return self.caldav.create_calendar(
|
||||
user, name, calendar_id, color=color or settings.DEFAULT_CALENDAR_COLOR
|
||||
)
|
||||
|
||||
def get_events(self, user, caldav_path: str, start=None, end=None) -> list:
|
||||
"""Get events from a calendar. Returns parsed event data."""
|
||||
|
||||
@@ -181,6 +181,7 @@
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"defaultCalendarName": "My calendar",
|
||||
"myCalendars": "My calendars",
|
||||
"sharedCalendars": "Shared calendars",
|
||||
"shared": "(shared)",
|
||||
@@ -914,6 +915,7 @@
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"defaultCalendarName": "Mon calendrier",
|
||||
"myCalendars": "Mes calendriers",
|
||||
"sharedCalendars": "Calendriers partagés",
|
||||
"shared": "(partagé)",
|
||||
@@ -1394,6 +1396,7 @@
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"defaultCalendarName": "Mijn kalender",
|
||||
"myCalendars": "Mijn kalenders",
|
||||
"sharedCalendars": "Gedeelde kalenders",
|
||||
"shared": "(gedeeld)",
|
||||
|
||||
Reference in New Issue
Block a user