Newer
Older
from django.core.exceptions import PermissionDenied
from graphene_django import DjangoObjectType
from aleksis.apps.alsijil.models import ExtraMark
from aleksis.core.schema.base import (
BaseBatchCreateMutation,
BaseBatchDeleteMutation,
BaseBatchPatchMutation,
DjangoFilterMixin,
OptimisticResponseTypeMixin,
PermissionsTypeMixin,
)
class ExtraMarkType(
OptimisticResponseTypeMixin,
PermissionsTypeMixin,
DjangoFilterMixin,
DjangoObjectType,
):
class Meta:
model = ExtraMark
fields = ("id", "short_name", "name", "colour_fg", "colour_bg", "show_in_coursebook")
@classmethod
def get_queryset(cls, queryset, info):
if info.context.user.has_perm("alsijil.fetch_extramarks_rule"):
return queryset
raise PermissionDenied()
class ExtraMarkBatchCreateMutation(BaseBatchCreateMutation):
class Meta:
model = ExtraMark
fields = ("short_name", "name", "colour_fg", "colour_bg", "show_in_coursebook")
optional_fields = ("name",)
@classmethod
def check_permissions(cls, root, info, input): # noqa
if info.context.user.has_perm("alsijil.create_extramark_rule"):
return
raise PermissionDenied()
class ExtraMarkBatchDeleteMutation(BaseBatchDeleteMutation):
class Meta:
model = ExtraMark
@classmethod
def check_permissions(cls, root, info, input): # noqa
if info.context.user.has_perm("alsijil.delete_extramark_rule"):
return
raise PermissionDenied()
class ExtraMarkBatchPatchMutation(BaseBatchPatchMutation):
class Meta:
model = ExtraMark
fields = ("id", "short_name", "name", "colour_fg", "colour_bg", "show_in_coursebook")
@classmethod
def check_permissions(cls, root, info, input): # noqa
if info.context.user.has_perm("alsijil.edit_extramark_rule"):
return
raise PermissionDenied()