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