Skip to content
Snippets Groups Projects
participation_status.py 951 B
from graphene_django import DjangoObjectType

from aleksis.apps.alsijil.models import ParticipationStatus
from aleksis.core.schema.base import (
    BaseBatchPatchMutation,
    DjangoFilterMixin,
    OptimisticResponseTypeMixin,
    PermissionsTypeMixin,
)


class ParticipationStatusType(
    OptimisticResponseTypeMixin,
    PermissionsTypeMixin,
    DjangoFilterMixin,
    DjangoObjectType,
):
    class Meta:
        model = ParticipationStatus
        fields = (
            "id",
            "person",
            "absence_reason",
            "related_documentation",
            "base_absence",
        )


class ParticipationStatusBatchPatchMutation(BaseBatchPatchMutation):
    class Meta:
        model = ParticipationStatus
        fields = ("id", "absence_reason")  # Only the reason can be updated after creation
        permissions = ("alsijil.change_participation_status",)  # FIXME
        return_field_name = "participationStatuses"