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

Merge branch 'master' into 266-add-statistics-page-for-absences

parents 098a7a1d d2253bdd
No related branches found
No related tags found
1 merge request!361Resolve "Add statistics page for absences"
Pipeline #193619 failed
...@@ -4,8 +4,7 @@ from typing import Optional ...@@ -4,8 +4,7 @@ from typing import Optional
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.db import models from django.db import models
from django.db.models import QuerySet from django.db.models import QuerySet, Q
from django.db.models.query_utils import Q
from django.http import HttpRequest from django.http import HttpRequest
from django.urls import reverse from django.urls import reverse
from django.utils import timezone from django.utils import timezone
...@@ -438,20 +437,21 @@ class ParticipationStatus(CalendarEvent): ...@@ -438,20 +437,21 @@ class ParticipationStatus(CalendarEvent):
@classmethod @classmethod
def get_objects( def get_objects(
cls, request: HttpRequest | None = None, params: dict[str, any] | None = None, **kwargs cls, request: HttpRequest | None = None, params: dict[str, any] | None = None, additional_filter: Q | None = None, **kwargs
) -> QuerySet: ) -> QuerySet:
qs = ( q = additional_filter or Q()
super()
.get_objects(request, params, **kwargs)
.select_related("person", "absence_reason")
)
if params: if params:
if params.get("person"): if params.get("person"):
qs = qs.filter(person=params["person"]) q = q & Q(person=params["person"])
elif params.get("persons"): elif params.get("persons"):
qs = qs.filter(person__in=params["persons"]) q = q & Q(person__in=params["persons"])
elif params.get("group"): elif params.get("group"):
qs = qs.filter(groups_of_person__in=params.get("group")) q = q & Q(groups_of_person__in=params.get("group"))
qs = (
super()
.get_objects(request, params, additional_filter=q, select_related=["person", "absence_reason"], **kwargs)
)
return qs return qs
@classmethod @classmethod
......
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