Refactored VisibilityPopover for new SchoolClass
This commit is contained in:
parent
41d6e87f81
commit
f3bcea7528
|
|
@ -1,10 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="visibility-menu" v-if="show">
|
<div class="visibility-menu" v-if="show">
|
||||||
<h3 class="visibility-menu__title">Sichtbarkeit</h3>
|
<h3 class="visibility-menu__title">Sichtbarkeit</h3>
|
||||||
<div v-for="group in userGroupsWithVisibilityInfo" :key="group.id" class="visibility-menu__item">
|
<div v-for="schoolClass in schoolClassVisibility" :key="schoolClass.id" class="visibility-menu__item">
|
||||||
<checkbox :checked="!group.hidden"
|
<checkbox :checked="!schoolClass.hidden"
|
||||||
:item="group"
|
:item="schoolClass"
|
||||||
:label="group.name"
|
:label="schoolClass.name"
|
||||||
v-on:input="updateVisibility"
|
v-on:input="updateVisibility"
|
||||||
></checkbox>
|
></checkbox>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -48,9 +48,9 @@
|
||||||
input: {
|
input: {
|
||||||
id: this.contentBlock.id,
|
id: this.contentBlock.id,
|
||||||
contentBlock: {
|
contentBlock: {
|
||||||
visibility: this.userGroupsWithVisibilityInfo.map(g => {
|
visibility: this.schoolClassVisibility.map(g => {
|
||||||
return {
|
return {
|
||||||
userGroupId: g.id,
|
schoolClassId: g.id,
|
||||||
hidden: g.hidden || false
|
hidden: g.hidden || false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -62,11 +62,15 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
userGroupsWithVisibilityInfo() {
|
schoolClasses() {
|
||||||
return this.userGroups.map(userGroup => {
|
return this.$getRidOfEdges(this.me.schoolclassSet);
|
||||||
|
},
|
||||||
|
|
||||||
|
schoolClassVisibility() {
|
||||||
|
return this.schoolClasses.map(schoolClass => {
|
||||||
return {
|
return {
|
||||||
...userGroup,
|
...schoolClass,
|
||||||
hidden: !!this.contentBlock.hiddenFor.find(el => el.id === userGroup.id)
|
hidden: !!this.contentBlock.hiddenFor.find(el => el.id === schoolClass.id)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class ContentElementInput(InputObjectType):
|
||||||
|
|
||||||
|
|
||||||
class UserGroupContentBlockVisibility(InputObjectType):
|
class UserGroupContentBlockVisibility(InputObjectType):
|
||||||
user_group_id = graphene.ID(required=True)
|
school_class_id = graphene.ID(required=True)
|
||||||
hidden = graphene.Boolean(required=True)
|
hidden = graphene.Boolean(required=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -38,4 +38,4 @@ class ContentBlockInput(InputObjectType):
|
||||||
title = graphene.String()
|
title = graphene.String()
|
||||||
type = graphene.String()
|
type = graphene.String()
|
||||||
contents = graphene.List(ContentElementInput)
|
contents = graphene.List(ContentElementInput)
|
||||||
visibility = graphene.List(UserGroupContentBlockVisibility)
|
visibility = graphene.List(UserGroupContentBlockVisibility)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ from api.utils import get_object, get_errors
|
||||||
from books.models import ContentBlock, Chapter, SchoolClass
|
from books.models import ContentBlock, Chapter, SchoolClass
|
||||||
from books.schema.inputs import ContentBlockInput
|
from books.schema.inputs import ContentBlockInput
|
||||||
from books.schema.queries import ContentBlockNode
|
from books.schema.queries import ContentBlockNode
|
||||||
|
|
||||||
from .utils import handle_content_block
|
from .utils import handle_content_block
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -32,14 +31,13 @@ class MutateContentBlock(relay.ClientIDMutation):
|
||||||
|
|
||||||
content_block = get_object(ContentBlock, id_param)
|
content_block = get_object(ContentBlock, id_param)
|
||||||
|
|
||||||
# FIXME: usergroup
|
|
||||||
if visibility_list is not None:
|
if visibility_list is not None:
|
||||||
for v in visibility_list:
|
for v in visibility_list:
|
||||||
user_group = get_object(SchoolClass, v.user_group_id)
|
school_class = get_object(SchoolClass, v.school_class_id)
|
||||||
if v.hidden:
|
if v.hidden:
|
||||||
content_block.hidden_for.add(user_group)
|
content_block.hidden_for.add(school_class)
|
||||||
else:
|
else:
|
||||||
content_block.hidden_for.remove(user_group)
|
content_block.hidden_for.remove(school_class)
|
||||||
|
|
||||||
if title is not None:
|
if title is not None:
|
||||||
content_block.title = title
|
content_block.title = title
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue