Skip to content
Snippets Groups Projects
Commit 93c41cf4 authored by Julian's avatar Julian
Browse files

Create schema for participation_status

parent e166859b
No related branches found
No related tags found
1 merge request!362Resolve "Add personal note management dialog in course book"
......@@ -19,6 +19,7 @@ from aleksis.core.schema.base import (
PermissionsTypeMixin,
)
from aleksis.core.util.core_helpers import get_site_preferences
from .participation_status import ParticipationStatusType
from ..models import Documentation
......@@ -39,6 +40,7 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
"date_start",
"date_end",
"teachers",
"participations",
)
filter_fields = {
"id": ["exact", "lte", "gte"],
......@@ -48,6 +50,7 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
course = graphene.Field(CourseType, required=False)
amends = graphene.Field(lambda: LessonEventType, required=False)
subject = graphene.Field(SubjectType, required=False)
participations = graphene.List(ParticipationStatusType, required=False)
future_notice = graphene.Boolean(required=False)
......@@ -71,6 +74,15 @@ class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectTyp
info.context.user, root
)
@staticmethod
def resolve_participations(root: Documentation, info, **kwargs):
# TODO: probably check for permission
# A dummy documentation will not have any participations
if str(root.pk).startswith("DUMMY") or not hasattr(root, "participations"):
return []
return root.participations.all()
@classmethod
def get_queryset(cls, queryset, info):
return get_objects_for_user(info.context.user, "alsijil.view_documentation", queryset)
......
from graphene_django import DjangoObjectType
from aleksis.apps.alsijil.models import ParticipationStatus
from aleksis.core.schema.base import PermissionsTypeMixin, DjangoFilterMixin
class ParticipationStatusType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
class Meta:
model = ParticipationStatus
fields = (
"id",
"person",
"absence_reason",
"related_documentation",
"base_absence",
)
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