skillbox/server/assignments/schema/queries.py

25 lines
818 B
Python

import graphene
from graphene import relay
from api.utils import get_object
from assignments.models import StudentSubmission
from assignments.schema.types import AssignmentNode, StudentSubmissionNode
class AssignmentsQuery(object):
assignment = relay.Node.Field(AssignmentNode)
assignments = graphene.List(AssignmentNode)
class StudentSubmissionQuery:
student_submission = graphene.Field(StudentSubmissionNode, id=graphene.ID(required=True))
def resolve_student_submission(root, info, *args, **kwargs):
user = info.context.user
id = kwargs.get('id')
submission = get_object(StudentSubmission, id)
if user == submission.student or (user.is_teacher() and submission.student in user.users_in_active_school_class()):
return submission
return None