Update MyActivity query to include more activities

This commit is contained in:
Ramon Wenger 2019-12-18 13:11:32 +01:00
parent 6f0cb0dd88
commit 1549cde151
6 changed files with 51 additions and 13 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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',

View File

@ -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,)

View File

@ -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

View File

@ -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()