Skip to content
Snippets Groups Projects
Verified Commit 0544f72c authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Add default color for calendar feeds

parent f41c2731
No related branches found
No related tags found
1 merge request!339Fix some bugs with displaying lesson events
......@@ -67,7 +67,7 @@ from aleksis.core.mixins import (
SchoolTermRelatedExtensibleModel,
)
from aleksis.core.models import CalendarEvent, DashboardWidget, Group, Person, Room, SchoolTerm
from aleksis.core.util.core_helpers import has_person
from aleksis.core.util.core_helpers import get_site_preferences, has_person
class ValidityRange(ExtensibleModel):
......@@ -1476,6 +1476,10 @@ class LessonEvent(CalendarEvent):
"""Get the description of the lesson event."""
return render_to_string("chronos/lesson_event_description.txt", {"event": reference_object})
@classmethod
def get_color(cls, request: HttpRequest | None = None) -> str:
return get_site_preferences()["chronos__lesson_color"]
@classmethod
def value_color(cls, reference_object: LessonEvent, request: HttpRequest | None = None) -> str:
"""Get the color of the lesson event."""
......@@ -1522,6 +1526,7 @@ class LessonEvent(CalendarEvent):
"amends": cls.value_meta(reference_object.amends, request)
if reference_object.amends
else None,
"title": reference_object.title,
"teachers": [
{
"id": t.pk,
......@@ -1627,6 +1632,10 @@ class SupervisionEvent(LessonEvent):
"chronos/supervision_event_description.txt", {"event": reference_object}
)
@classmethod
def get_color(cls, request: HttpRequest | None = None) -> str:
return get_site_preferences()["chronos__supervision_color"]
@classmethod
def get_objects(
cls, request: HttpRequest | None = None, params: dict[str, any] | None = None
......
......@@ -2,8 +2,14 @@ from datetime import time
from django.utils.translation import gettext_lazy as _
from colorfield.widgets import ColorWidget
from dynamic_preferences.preferences import Section
from dynamic_preferences.types import BooleanPreference, IntegerPreference, TimePreference
from dynamic_preferences.types import (
BooleanPreference,
IntegerPreference,
StringPreference,
TimePreference,
)
from aleksis.core.registries import person_preferences_registry, site_preferences_registry
......@@ -107,3 +113,27 @@ class SendNotificationsPerson(BooleanPreference):
name = "send_notifications"
default = True
verbose_name = _("Send notifications for current timetable changes")
@site_preferences_registry.register
class LessonEventFeedColor(StringPreference):
"""Color for the lesson calendar feed."""
section = chronos
name = "lesson_color"
default = "#a7ffeb"
verbose_name = _("Lesson calendar feed color")
widget = ColorWidget
required = True
@site_preferences_registry.register
class SupervisionEventFeedColor(StringPreference):
"""Color for the supervision calendar feed."""
section = chronos
name = "supervision_color"
default = "#e6ee9c"
verbose_name = _("Supervision calendar feed color")
widget = ColorWidget
required = True
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment