Skip to content
Snippets Groups Projects
personal_note.py 1.46 KiB
Newer Older
Julian's avatar
Julian committed
from graphene_django import DjangoObjectType

from aleksis.apps.alsijil.models import NewPersonalNote
from aleksis.core.schema.base import (
    BaseBatchCreateMutation,
    BaseBatchDeleteMutation,
    BaseBatchPatchMutation,
Julian's avatar
Julian committed
    DjangoFilterMixin,
Julian's avatar
Julian committed
    OptimisticResponseTypeMixin,
    PermissionsTypeMixin,
)


class PersonalNoteType(
    OptimisticResponseTypeMixin,
    PermissionsTypeMixin,
    DjangoFilterMixin,
    DjangoObjectType,
):
    class Meta:
        model = NewPersonalNote
        fields = (
            "id",
            "note",
            "extra_mark",
            "tardiness",
Julian's avatar
Julian committed

Julian's avatar
Julian committed
class PersonalNoteBatchCreateMutation(BaseBatchCreateMutation):
    class Meta:
        model = NewPersonalNote
        type_name = "BatchCreatePersonalNoteInput"
        return_field_name = "personalNotes"
        fields = ("note", "extra_mark", "documentation", "person", "tardiness")
Julian's avatar
Julian committed
        permissions = ("alsijil.create_personal_note",)  # FIXME


class PersonalNoteBatchPatchMutation(BaseBatchPatchMutation):
    class Meta:
        model = NewPersonalNote
        type_name = "BatchPatchPersonalNoteInput"
        return_field_name = "personalNotes"
        fields = ("id", "note", "extra_mark", "documentation", "person", "tardiness")
Julian's avatar
Julian committed
        permissions = ("alsijil.change_personal_note",)  # FIXME

Julian's avatar
Julian committed

Julian's avatar
Julian committed
class PersonalNoteBatchDeleteMutation(BaseBatchDeleteMutation):
    class Meta:
        model = NewPersonalNote
        permissions = ("alsijil.delete_personal_note",)  # FIXME