25 lines
818 B
Python
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
|