Filter user created blocks based on classes
This commit is contained in:
parent
90dac6b7e5
commit
7a2f8c91e4
|
|
@ -40,7 +40,14 @@
|
|||
|
||||
methods: {
|
||||
visibleFor(contentBlock, schoolClassId) {
|
||||
return !contentBlock.hiddenFor.map(entry => entry.id).includes(schoolClassId);
|
||||
if (contentBlock.userCreated) {
|
||||
if (schoolClassId === '') {
|
||||
return true;
|
||||
}
|
||||
return contentBlock.visibleFor.map(entry => entry.id).includes(schoolClassId);
|
||||
} else {
|
||||
return !contentBlock.hiddenFor.map(entry => entry.id).includes(schoolClassId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="filter-bar" v-if="isTeacher">
|
||||
<radiobutton label="Alles" :checked="!currentFilter" v-on:input="updateFilter(false)"></radiobutton>
|
||||
<radiobutton label="Alles" :checked="!currentFilter" v-on:input="updateFilter('')"></radiobutton>
|
||||
<radiobutton
|
||||
v-for="schoolClass in schoolClasses"
|
||||
:key="schoolClass.id"
|
||||
|
|
|
|||
|
|
@ -61,8 +61,12 @@
|
|||
},
|
||||
hidePopover() {
|
||||
this.$emit('hide-me');
|
||||
},
|
||||
isSchoolClassHidden(schoolClass) {
|
||||
return this.contentBlock.userCreated
|
||||
? this.contentBlock.visibleFor.findIndex(el => el.id === schoolClass.id) === -1
|
||||
: !!this.contentBlock.hiddenFor.find(el => el.id === schoolClass.id);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
|
@ -74,7 +78,7 @@
|
|||
return this.schoolClasses.map(schoolClass => {
|
||||
return {
|
||||
...schoolClass,
|
||||
hidden: !!this.contentBlock.hiddenFor.find(el => el.id === schoolClass.id)
|
||||
hidden: this.isSchoolClassHidden(schoolClass)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export default new Vuex.Store({
|
|||
contentBlockPosition: {},
|
||||
scrollPosition: 0,
|
||||
moduleSlug: 'geld',
|
||||
filterForSchoolClass: false,
|
||||
filterForSchoolClass: '',
|
||||
currentContentBlock: '',
|
||||
parentRoom: null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -35,12 +35,10 @@ class MutateContentBlock(relay.ClientIDMutation):
|
|||
module = content_block.get_parent().get_parent().specific
|
||||
|
||||
if visibility_list is not None:
|
||||
for v in visibility_list:
|
||||
school_class = get_object(SchoolClass, v.school_class_id)
|
||||
if v.hidden:
|
||||
content_block.hidden_for.add(school_class)
|
||||
else:
|
||||
content_block.hidden_for.remove(school_class)
|
||||
if content_block.user_created:
|
||||
cls.set_visible_for(content_block, visibility_list)
|
||||
else:
|
||||
cls.set_hidden_for(content_block, visibility_list)
|
||||
|
||||
if title is not None:
|
||||
content_block.title = title
|
||||
|
|
@ -61,6 +59,24 @@ class MutateContentBlock(relay.ClientIDMutation):
|
|||
|
||||
return cls(content_block=None, errors=errors)
|
||||
|
||||
@classmethod
|
||||
def set_hidden_for(cls, content_block, visibility_list):
|
||||
for v in visibility_list:
|
||||
school_class = get_object(SchoolClass, v.school_class_id)
|
||||
if v.hidden:
|
||||
content_block.hidden_for.add(school_class)
|
||||
else:
|
||||
content_block.hidden_for.remove(school_class)
|
||||
|
||||
@classmethod
|
||||
def set_visible_for(cls, content_block, visibility_list):
|
||||
for v in visibility_list:
|
||||
school_class = get_object(SchoolClass, v.school_class_id)
|
||||
if v.hidden:
|
||||
content_block.visible_for.remove(school_class)
|
||||
else:
|
||||
content_block.visible_for.add(school_class)
|
||||
|
||||
|
||||
class AddContentBlock(relay.ClientIDMutation):
|
||||
class Input:
|
||||
|
|
|
|||
Loading…
Reference in New Issue