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

Make Absence model real, usable calendar event by adding mandatory value methods

parent 3dba3a5f
No related branches found
No related tags found
No related merge requests found
Pipeline #189716 passed with warnings
from django.db import models
from django.db.models import QuerySet
from django.http import HttpRequest
from django.utils.translation import gettext_lazy as _
from colorfield.fields import ColorField
......@@ -80,6 +82,32 @@ class Absence(FreeBusy):
comment = models.TextField(verbose_name=_("Comment"), blank=True)
@classmethod
def get_objects(
cls, request: HttpRequest | None = None, params: dict[str, any] | None = None
) -> QuerySet:
qs = super().get_objects(request, params).select_related("person", "reason")
if params:
if params.get("person"):
qs = qs.filter(person_id=params["person"])
elif params.get("persons"):
qs = qs.filter(person_id__in=params["persons"])
elif params.get("group"):
qs = qs.filter(person__member_of__id=params.get("group"))
return qs
@classmethod
def value_title(cls, reference_object: "Absence", request: HttpRequest | None = None) -> str:
"""Return the title of the calendar event."""
return f"{reference_object.person} ({reference_object.reason})"
@classmethod
def value_description(
cls, reference_object: "Absence", request: HttpRequest | None = None
) -> str:
"""Return the title of the calendar event."""
return ""
def __str__(self):
return f"{self.person} ({self.datetime_start} - {self.datetime_end})"
......
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