Add User query, get users in FilterBar, add Visibility node
This commit is contained in:
parent
2c2ad3f8f6
commit
4cb5c6ad63
|
|
@ -2,18 +2,37 @@
|
|||
<div class="filter-bar">
|
||||
|
||||
<checkbox label="Alles" :checked="true"></checkbox>
|
||||
<checkbox label="Klasse 3b - 2018/2019"></checkbox>
|
||||
<checkbox label="Klasse 1a - 2018/2019"></checkbox>
|
||||
<checkbox label="Klasse 2c"></checkbox>
|
||||
<checkbox v-for="group in userGroups" :key="group.id" :label="group.name"></checkbox>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import USER_GROUPS_QUERY from '@/graphql/gql/userGroupsQuery.gql';
|
||||
|
||||
import Checkbox from '@/components/Checkbox.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
Checkbox
|
||||
},
|
||||
|
||||
apollo: {
|
||||
userGroupsQuery: {
|
||||
query: USER_GROUPS_QUERY,
|
||||
manual: true,
|
||||
result({data, loading, networkStatus}) {
|
||||
if (!loading) {
|
||||
const cleanedData = this.$getRidOfEdges(data)
|
||||
this.userGroups = cleanedData.userGroups || {};
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
userGroups: []
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
query UserGroupsQuery {
|
||||
userGroups {
|
||||
edges {
|
||||
node {
|
||||
id
|
||||
name
|
||||
year
|
||||
isDeleted
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -53,7 +53,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
// TODO: can we do better by defining a type for module?
|
||||
data() {
|
||||
return {
|
||||
module: {
|
||||
|
|
|
|||
|
|
@ -6,14 +6,14 @@ from graphene_django.debug import DjangoDebug
|
|||
# Keep this import exactly here, it's necessary for StreamField conversion
|
||||
from api import graphene_wagtail
|
||||
|
||||
|
||||
from book.schema.mutations import BookMutations
|
||||
from filteredbook.schema import BookQuery
|
||||
from objectives.schema import ObjectivesQuery
|
||||
from rooms.schema import RoomsQuery
|
||||
from user.schema import UsersQuery
|
||||
|
||||
|
||||
class Query(RoomsQuery, ObjectivesQuery, BookQuery, graphene.ObjectType):
|
||||
class Query(UsersQuery, RoomsQuery, ObjectivesQuery, BookQuery, graphene.ObjectType):
|
||||
node = relay.Node.Field()
|
||||
|
||||
if settings.DEBUG:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 2.0.6 on 2018-09-11 15:01
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('filteredbook', '0002_visibility_user_group'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='visibility',
|
||||
name='content_block',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='visible_to', to='book.ContentBlock'),
|
||||
),
|
||||
]
|
||||
|
|
@ -10,7 +10,7 @@ class Visibility(models.Model):
|
|||
verbose_name_plural = 'Visibilities'
|
||||
|
||||
user_group = models.ForeignKey(UserGroup, blank=False, null=False, on_delete=models.CASCADE)
|
||||
content_block = models.ForeignKey(ContentBlock, blank=False, null=False, on_delete=models.CASCADE)
|
||||
content_block = models.ForeignKey(ContentBlock, blank=False, null=False, on_delete=models.CASCADE, related_name='visible_to')
|
||||
|
||||
def __str__(self):
|
||||
return 'Visibility {}-{}'.format(self.user_group, self.content_block)
|
||||
|
|
|
|||
|
|
@ -39,6 +39,13 @@ class FilteredChapterNode(DjangoObjectType):
|
|||
return ContentBlock.get_by_parent(self)
|
||||
|
||||
|
||||
class VisibilityNode(DjangoObjectType):
|
||||
class Meta:
|
||||
model = Chapter
|
||||
filter_fields = ['user_group', 'content_block']
|
||||
interfaces = (relay.Node,)
|
||||
|
||||
|
||||
class BookQuery(object):
|
||||
book = relay.Node.Field(BookNode)
|
||||
topic = relay.Node.Field(TopicNode)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import graphene
|
||||
from graphene import relay
|
||||
from graphene_django import DjangoObjectType
|
||||
from graphene_django.filter import DjangoFilterConnectionField
|
||||
|
||||
from user.models import UserGroup, User
|
||||
|
||||
|
|
@ -27,3 +28,9 @@ class UserGroupNode(DjangoObjectType):
|
|||
|
||||
def resolve_pk(self, *args, **kwargs):
|
||||
return self.id
|
||||
|
||||
|
||||
class UsersQuery(object):
|
||||
user_group = relay.Node.Field(UserGroupNode)
|
||||
|
||||
user_groups = DjangoFilterConnectionField(UserGroupNode)
|
||||
|
|
|
|||
Loading…
Reference in New Issue