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

Add CustomEvent calendar feed

parent 237b6384
No related branches found
No related tags found
1 merge request!1314Resolve "Allow for creation of simple events"
Pipeline #146896 passed with warnings
# Generated by Django 4.2.5 on 2023-09-16 10:40
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("core", "0054_calendarevent_published"),
]
operations = [
migrations.CreateModel(
name="CustomEvent",
fields=[
(
"calendarevent_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="core.calendarevent",
),
),
("title", models.CharField(max_length=255, verbose_name="Title")),
("description", models.TextField(blank=True, verbose_name="Description")),
("groups", models.ManyToManyField(blank=True, related_name="+", to="core.group")),
("persons", models.ManyToManyField(blank=True, related_name="+", to="core.person")),
],
options={
"abstract": False,
},
bases=("core.calendarevent",),
),
]
......@@ -1778,3 +1778,35 @@ class Holiday(CalendarEvent):
class Meta:
verbose_name = _("Holiday")
verbose_name_plural = _("Holidays")
class CustomEvent(CalendarEvent):
name = "custom"
verbose_name = _("Additional events")
title = models.CharField(max_length=255, verbose_name=_("Title"))
description = models.TextField(verbose_name=_("Description"), blank=True)
persons = models.ManyToManyField(Person, related_name="+", blank=True)
groups = models.ManyToManyField(Group, related_name="+", blank=True)
@classmethod
def get_color(cls, request) -> str:
return get_site_preferences()["calendar__custom_event_color"]
@classmethod
def value_title(cls, reference_object: "CustomEvent", request) -> str:
"""Return the title of the calendar event."""
return self.title
@classmethod
def value_description(cls, reference_object: "CustomEvent", request) -> str:
"""Return the description of the calendar event."""
return self.description
@classmethod
def get_objects(cls, request, params=None) -> QuerySet:
qs = cls.objects.filter(
Q(persons=request.user.person) | Q(groups__members=request.user.person)
)
return qs
......@@ -504,6 +504,18 @@ class HolidayFeedColor(StringPreference):
required = True
@site_preferences_registry.register
class CustomEventFeedColor(StringPreference):
"""Color for the custom events calendar feed."""
section = calendar
name = "custom_event_color"
default = "#0d5eaf"
verbose_name = _("Custom events feed color")
widget = ColorWidget
required = True
@person_preferences_registry.register
class ActivatedCalendars(MultipleChoicePreference):
"""Calendars that are activated for a person."""
......
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