Skip to content
Snippets Groups Projects
documentation.py 2.19 KiB
Newer Older
import graphene
from calendarweek import CalendarWeek
from graphene_django import DjangoListField
from graphene_django.types import DjangoObjectType
from graphene_django_cud.mutations import (
    DjangoBatchCreateMutation,
    DjangoBatchPatchMutation,
    DjangoCreateMutation,
)
from guardian.shortcuts import get_objects_for_user

from aleksis.core.schema.base import (
    DeleteMutation,
    DjangoFilterMixin,
    PermissionBatchPatchMixin,
    PermissionsTypeMixin,
)

from ..models import Documentation


class DocumentationType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
    class Meta:
        model = Documentation
        fields = ("id", "course", "lesson_event", "subject", "topic", "homework", "group_note", "datetime_start", "datetime_end", "date_start", "date_end")
        filter_fields = {
            "id": ["exact", "lte", "gte"],
            "course__name": ["exact"],
        }


class DocumentationCreateMutation(DjangoCreateMutation):
    class Meta:
        model = Documentation
        fields = ("course", "lesson_event", "subject", "topic", "homework", "group_note", "datetime_start", "datetime_end", "date_start", "date_end")
        optional_fields = ("course", "lesson_event", "subject", "topic", "homework", "group_note", "datetime_start", "datetime_end", "date_start", "date_end")
        permissions = ("alsijil.add_documentation",)  # FIXME


class DocumentationBatchCreateMutation(DjangoBatchCreateMutation):
    class Meta:
        model = Documentation
        fields = ("id", "course", "lesson_event", "subject", "topic", "homework", "group_note", "datetime_start", "datetime_end", "date_start", "date_end")
        permissions = ("alsijil.add_documentation",)  # FIXME


class DocumentationDeleteMutation(DeleteMutation):
    klass = Documentation
    permission_required = "alsijil.delete_documentation_rule"  # FIXME


class DocumentationBatchPatchMutation(PermissionBatchPatchMixin, DjangoBatchPatchMutation):
    class Meta:
        model = Documentation
        fields = ("id", "course", "lesson_event", "subject", "topic", "homework", "group_note", "datetime_start", "datetime_end", "date_start", "date_end")
        permissions = ("alsijil.edit_documentation_rule",)  # FIXME