Update MyActivity query to include more activities
This commit is contained in:
parent
6f0cb0dd88
commit
1549cde151
|
|
@ -6,7 +6,7 @@ from graphene_django.debug import DjangoDebug
|
||||||
# noinspection PyUnresolvedReferences
|
# noinspection PyUnresolvedReferences
|
||||||
from api import graphene_wagtail # Keep this import exactly here, it's necessary for StreamField conversion
|
from api import graphene_wagtail # Keep this import exactly here, it's necessary for StreamField conversion
|
||||||
from assignments.schema.mutations import AssignmentMutations
|
from assignments.schema.mutations import AssignmentMutations
|
||||||
from assignments.schema.queries import AssignmentsQuery, StudentSubmissionQuery, MyActivityQuery
|
from assignments.schema.queries import AssignmentsQuery, StudentSubmissionQuery
|
||||||
from basicknowledge.queries import BasicKnowledgeQuery
|
from basicknowledge.queries import BasicKnowledgeQuery
|
||||||
from books.schema.mutations.main import BookMutations
|
from books.schema.mutations.main import BookMutations
|
||||||
from books.schema.queries import BookQuery
|
from books.schema.queries import BookQuery
|
||||||
|
|
@ -26,7 +26,7 @@ from registration.mutations_public import RegistrationMutations
|
||||||
|
|
||||||
|
|
||||||
class Query(UsersQuery, AllUsersQuery, ModuleRoomsQuery, RoomsQuery, ObjectivesQuery, BookQuery, AssignmentsQuery,
|
class Query(UsersQuery, AllUsersQuery, ModuleRoomsQuery, RoomsQuery, ObjectivesQuery, BookQuery, AssignmentsQuery,
|
||||||
StudentSubmissionQuery, BasicKnowledgeQuery, PortfolioQuery, MyActivityQuery, SurveysQuery,
|
StudentSubmissionQuery, BasicKnowledgeQuery, PortfolioQuery, SurveysQuery,
|
||||||
graphene.ObjectType):
|
graphene.ObjectType):
|
||||||
node = relay.Node.Field()
|
node = relay.Node.Field()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,3 @@ class AssignmentsQuery(object):
|
||||||
|
|
||||||
class StudentSubmissionQuery(object):
|
class StudentSubmissionQuery(object):
|
||||||
student_submission = relay.Node.Field(StudentSubmissionNode)
|
student_submission = relay.Node.Field(StudentSubmissionNode)
|
||||||
|
|
||||||
|
|
||||||
class MyActivityQuery(object):
|
|
||||||
my_activity = DjangoFilterConnectionField(StudentSubmissionNode)
|
|
||||||
|
|
||||||
def resolve_my_activity(self, info, **kwargs):
|
|
||||||
user = info.context.user
|
|
||||||
return StudentSubmission.objects.filter(student=user)
|
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,14 @@ from graphene_django import DjangoObjectType
|
||||||
from graphene_django.filter import DjangoFilterConnectionField
|
from graphene_django.filter import DjangoFilterConnectionField
|
||||||
|
|
||||||
from api.utils import get_object
|
from api.utils import get_object
|
||||||
|
from assignments.models import StudentSubmission
|
||||||
|
from assignments.schema.types import StudentSubmissionNode
|
||||||
from books.utils import are_solutions_enabled_for
|
from books.utils import are_solutions_enabled_for
|
||||||
from notes.models import ContentBlockBookmark, ChapterBookmark, ModuleBookmark
|
from notes.models import ContentBlockBookmark, ChapterBookmark, ModuleBookmark
|
||||||
from notes.schema import ContentBlockBookmarkNode, ChapterBookmarkNode, ModuleBookmarkNode
|
from notes.schema import ContentBlockBookmarkNode, ChapterBookmarkNode, ModuleBookmarkNode
|
||||||
from rooms.models import ModuleRoomSlug
|
from rooms.models import ModuleRoomSlug
|
||||||
|
from surveys.models import Answer
|
||||||
|
from surveys.schema import AnswerNode
|
||||||
from ..models import Book, Topic, Module, Chapter, ContentBlock
|
from ..models import Book, Topic, Module, Chapter, ContentBlock
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -103,6 +107,7 @@ class ChapterNode(DjangoObjectType):
|
||||||
chapter=self
|
chapter=self
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
|
|
||||||
class ModuleNode(DjangoObjectType):
|
class ModuleNode(DjangoObjectType):
|
||||||
pk = graphene.Int()
|
pk = graphene.Int()
|
||||||
chapters = DjangoFilterConnectionField(ChapterNode)
|
chapters = DjangoFilterConnectionField(ChapterNode)
|
||||||
|
|
@ -110,6 +115,10 @@ class ModuleNode(DjangoObjectType):
|
||||||
hero_image = graphene.String()
|
hero_image = graphene.String()
|
||||||
solutions_enabled = graphene.Boolean()
|
solutions_enabled = graphene.Boolean()
|
||||||
bookmark = graphene.Field(ModuleBookmarkNode)
|
bookmark = graphene.Field(ModuleBookmarkNode)
|
||||||
|
my_submissions = DjangoFilterConnectionField(StudentSubmissionNode)
|
||||||
|
my_answers = DjangoFilterConnectionField(AnswerNode)
|
||||||
|
my_content_bookmarks = DjangoFilterConnectionField(ContentBlockBookmarkNode)
|
||||||
|
my_chapter_bookmarks = DjangoFilterConnectionField(ChapterBookmarkNode)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Module
|
model = Module
|
||||||
|
|
@ -145,6 +154,32 @@ class ModuleNode(DjangoObjectType):
|
||||||
module=self
|
module=self
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
|
def resolve_my_submissions(self, info, **kwargs):
|
||||||
|
user = info.context.user
|
||||||
|
return StudentSubmission.objects.filter(student=user, assignment__module=self)
|
||||||
|
# we want:
|
||||||
|
# StudentSubmission
|
||||||
|
|
||||||
|
def resolve_my_answers(self, info, **kwargs):
|
||||||
|
user = info.context.user
|
||||||
|
return Answer.objects.filter(owner=user, survey__module=self)
|
||||||
|
# Survey
|
||||||
|
|
||||||
|
def resolve_my_content_bookmarks(self, info, **kwargs):
|
||||||
|
user = info.context.user
|
||||||
|
content_blocks = ContentBlock.objects.live().descendant_of(self)
|
||||||
|
return ContentBlockBookmark.objects.filter(content_block__in=content_blocks, user=user)
|
||||||
|
# Bookmark Text
|
||||||
|
# Bookmark Image etc
|
||||||
|
# Bookmark Other
|
||||||
|
# Note
|
||||||
|
#
|
||||||
|
|
||||||
|
def resolve_my_chapter_bookmarks(self, info, **kwargs):
|
||||||
|
user = info.context.user
|
||||||
|
chapters = Chapter.objects.live().descendant_of(self)
|
||||||
|
return ChapterBookmark.objects.filter(chapter__in=chapters, user=user)
|
||||||
|
|
||||||
|
|
||||||
class TopicNode(DjangoObjectType):
|
class TopicNode(DjangoObjectType):
|
||||||
pk = graphene.Int()
|
pk = graphene.Int()
|
||||||
|
|
@ -196,7 +231,7 @@ class FilteredChapterNode(DjangoObjectType):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Chapter
|
model = Chapter
|
||||||
only_fields = [
|
only_fields = [
|
||||||
'slug', 'title',
|
'slug', 'title', 'description',
|
||||||
]
|
]
|
||||||
filter_fields = [
|
filter_fields = [
|
||||||
'slug', 'title',
|
'slug', 'title',
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ class ContentBlockBookmarkNode(DjangoObjectType):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ContentBlockBookmark
|
model = ContentBlockBookmark
|
||||||
|
filter_fields = []
|
||||||
|
interfaces = (relay.Node,)
|
||||||
|
|
||||||
|
|
||||||
class ModuleBookmarkNode(DjangoObjectType):
|
class ModuleBookmarkNode(DjangoObjectType):
|
||||||
|
|
@ -37,3 +39,5 @@ class ChapterBookmarkNode(DjangoObjectType):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ChapterBookmark
|
model = ChapterBookmark
|
||||||
|
filter_fields = []
|
||||||
|
interfaces = (relay.Node,)
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ class AnswerNode(DjangoObjectType):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Answer
|
model = Answer
|
||||||
interfaces = (relay.Node,)
|
interfaces = (relay.Node,)
|
||||||
|
filter_fields = []
|
||||||
|
|
||||||
def resolve_pk(self, *args, **kwargs):
|
def resolve_pk(self, *args, **kwargs):
|
||||||
return self.id
|
return self.id
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@ from graphene import relay
|
||||||
from graphene_django import DjangoObjectType
|
from graphene_django import DjangoObjectType
|
||||||
from graphene_django.filter import DjangoFilterConnectionField
|
from graphene_django.filter import DjangoFilterConnectionField
|
||||||
|
|
||||||
|
from assignments.models import StudentSubmission
|
||||||
|
from assignments.schema.types import StudentSubmissionNode
|
||||||
|
from books.models import Module
|
||||||
|
from books.schema.queries import ModuleNode
|
||||||
from users.models import User, SchoolClass
|
from users.models import User, SchoolClass
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -43,6 +47,7 @@ class UserNode(DjangoObjectType):
|
||||||
class UsersQuery(object):
|
class UsersQuery(object):
|
||||||
me = graphene.Field(UserNode)
|
me = graphene.Field(UserNode)
|
||||||
all_users = DjangoFilterConnectionField(UserNode)
|
all_users = DjangoFilterConnectionField(UserNode)
|
||||||
|
my_activity = DjangoFilterConnectionField(ModuleNode)
|
||||||
|
|
||||||
def resolve_me(self, info, **kwargs):
|
def resolve_me(self, info, **kwargs):
|
||||||
return info.context.user
|
return info.context.user
|
||||||
|
|
@ -53,6 +58,9 @@ class UsersQuery(object):
|
||||||
else:
|
else:
|
||||||
return User.objects.all()
|
return User.objects.all()
|
||||||
|
|
||||||
|
def resolve_my_activity(self, info, **kwargs):
|
||||||
|
return Module.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class AllUsersQuery(object):
|
class AllUsersQuery(object):
|
||||||
me = graphene.Field(UserNode)
|
me = graphene.Field(UserNode)
|
||||||
|
|
@ -63,5 +71,3 @@ class AllUsersQuery(object):
|
||||||
return User.objects.none()
|
return User.objects.none()
|
||||||
else:
|
else:
|
||||||
return User.objects.all()
|
return User.objects.all()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue