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