Skip to content
Snippets Groups Projects
Verified Commit 52a9cd14 authored by magicfelix's avatar magicfelix Committed by Jonathan Weth
Browse files

Add GraphQL schema for Documentation

parent 79517819
No related branches found
No related tags found
3 merge requests!352Draft: Resolve "Add dialog with each lesson's students",!350Resolve "Add simple course book list",!339Draft: Resolve "Migrate to new data model"
import graphene
from graphene_django import DjangoObjectType
from django.db.models.query_utils import Q
from aleksis.core.schema.base import DjangoFilterMixin, FilterOrderList
from ..models import Documentation, Participation
from .documentation import (
DocumentationType,
DocumentationCreateMutation,
DocumentationBatchCreateMutation,
DocumentationDeleteMutation,
DocumentationBatchPatchMutation
)
class Query(graphene.ObjectType):
documentations = FilterOrderList(DocumentationType)
documentations_by_course_id = FilterOrderList(DocumentationType, course_id=graphene.ID(required=True))
def resolve_documentations_by_course_id(root, info, course_id, **kwargs):
documentations = Documentation.objects.filter(Q(course__pk=course_id) | Q(lesson_event__course__pk=course_id))
return documentations
class Mutation(graphene.ObjectType):
create_documentation = DocumentationCreateMutation.Field()
create_documentations = DocumentationBatchCreateMutation.Field()
delete_documentation = DocumentationDeleteMutation.Field()
update_documentations = DocumentationBatchPatchMutation.Field()
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 = ("",) # FIXME
@classmethod
def before_mutate(cls, root, info, input):
if "year" in input and "calendarWeek" in input:
cw = CalendarWeek(year=input["year"], week=input["week"])
input["date_start"] = cw[0]
input["date_end"] = cw[6]
return input
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 = ("",) # FIXME
class DocumentationDeleteMutation(DeleteMutation):
klass = Documentation
permission_required = "" # 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 = ("",) # FIXME
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