From e10b577ac1ba3ecf6d28ad58490c1def1095cf19 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Mon, 9 Sep 2019 14:04:47 +0200 Subject: [PATCH] Add solution visibility check to survey --- client/src/graphql/gql/surveyQuery.gql | 3 +++ client/src/pages/survey.vue | 14 ++++++++++++-- server/books/models/module.py | 1 - server/books/schema/queries.py | 5 +++-- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/client/src/graphql/gql/surveyQuery.gql b/client/src/graphql/gql/surveyQuery.gql index 19f60bd7..1025e82a 100644 --- a/client/src/graphql/gql/surveyQuery.gql +++ b/client/src/graphql/gql/surveyQuery.gql @@ -3,6 +3,9 @@ query SurveyQuery($id: ID!) { id title data + module { + id + } answer { data } diff --git a/client/src/pages/survey.vue b/client/src/pages/survey.vue index 7750314c..d8dd32f6 100644 --- a/client/src/pages/survey.vue +++ b/client/src/pages/survey.vue @@ -3,7 +3,7 @@

{{title}}

- +
Übung bearbeiten
@@ -15,6 +15,7 @@ import {css} from '@/survey.config' import SURVEY_QUERY from '@/graphql/gql/surveyQuery.gql'; + import MODULE_QUERY from '@/graphql/gql/moduleByIdQuery.gql'; import UPDATE_ANSWER from '@/graphql/gql/mutations/updateAnswer.gql'; import Solution from '@/components/content-blocks/Solution'; @@ -33,7 +34,8 @@ data() { return { survey: this.initSurvey(), - title: '' + title: '', + module: {} } }, @@ -134,6 +136,14 @@ this.survey = this.initSurvey(json, answer); this.title = json.title; + const module = data.survey.module; + + this.$apollo.addSmartQuery('module', { + query: MODULE_QUERY, + variables: { + id: module.id + } + }); } }, } diff --git a/server/books/models/module.py b/server/books/models/module.py index a33d762f..4d750aa9 100644 --- a/server/books/models/module.py +++ b/server/books/models/module.py @@ -58,4 +58,3 @@ class Module(StrictHierarchyPage): def get_child_ids(self): return self.get_children().values_list('id', flat=True) - diff --git a/server/books/schema/queries.py b/server/books/schema/queries.py index 31b2e5f8..c184e509 100644 --- a/server/books/schema/queries.py +++ b/server/books/schema/queries.py @@ -120,7 +120,8 @@ class ModuleNode(DjangoObjectType): return self.get_parent().specific def resolve_solutions_enabled(self, info, **kwargs): - return self.solutions_enabled_by.filter(pk=info.context.user.pk).exists() + teacher = info.context.user.get_teacher() + return self.solutions_enabled_by.filter(pk=teacher.pk).exists() if teacher is not None else False class TopicNode(DjangoObjectType): @@ -187,7 +188,7 @@ class FilteredChapterNode(DjangoObjectType): class BookQuery(object): book = relay.Node.Field(BookNode) topic = graphene.Field(TopicNode, slug=graphene.String()) - module = graphene.Field(ModuleNode, slug=graphene.String()) + module = graphene.Field(ModuleNode, slug=graphene.String(), id=graphene.ID()) chapter = relay.Node.Field(FilteredChapterNode) content_block = relay.Node.Field(ContentBlockNode)