From 2ad89ce6ef0bd3f67c992286b6b3d02c9431c2fa Mon Sep 17 00:00:00 2001 From: Pawel Kowalski Date: Thu, 13 Sep 2018 11:44:31 +0200 Subject: [PATCH] Example Visibility server side filtering --- .../gql/sandbox/filterServerSideQuery.gql | 19 +++++++++++++++++++ server/book/schema/mutations.py | 3 ++- server/filteredbook/schema.py | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 client/src/graphql/gql/sandbox/filterServerSideQuery.gql diff --git a/client/src/graphql/gql/sandbox/filterServerSideQuery.gql b/client/src/graphql/gql/sandbox/filterServerSideQuery.gql new file mode 100644 index 00000000..41c274d4 --- /dev/null +++ b/client/src/graphql/gql/sandbox/filterServerSideQuery.gql @@ -0,0 +1,19 @@ +query ContentBlockQuery { + chapters { + edges { + node { + id + slug + contentBlocks(userGroups: ["EE18B"]) { + edges { + node { + id + title + slug + } + } + } + } + } + } +} diff --git a/server/book/schema/mutations.py b/server/book/schema/mutations.py index f8335b26..9ce4d16c 100644 --- a/server/book/schema/mutations.py +++ b/server/book/schema/mutations.py @@ -150,7 +150,8 @@ class AddContentBlock(relay.ClientIDMutation): try: parent = args.get('parent', None) after = args.get('after', None) - new_content_block = cls.create_content_block(content_block_data=args.get('content_block'), parent=parent, + new_content_block = cls.create_content_block(content_block_data=args.get('content_block'), + parent=parent, after=after) return cls(new_content_block=new_content_block) diff --git a/server/filteredbook/schema.py b/server/filteredbook/schema.py index ae3417a9..62b8b832 100644 --- a/server/filteredbook/schema.py +++ b/server/filteredbook/schema.py @@ -29,7 +29,7 @@ class FilteredChapterNode(DjangoObjectType): reduced = [] for user_group in user_groups: content_blocks = ContentBlock.get_by_parent(self).exclude( - Q(visibility__user_group__name=user_group) + Q(visible_to__user_group__name=user_group) ) reduced = chain(reduced, content_blocks)