Merge branch 'develop'

This commit is contained in:
Ramon Wenger 2019-07-29 13:54:32 +02:00
commit f204122540
6 changed files with 57 additions and 21 deletions

View File

@ -1,6 +1,6 @@
<template>
<div class="assignment-with-submissions">
<h1 class="assignment-with-submissions__title">{{assignment.title}}</h1>
<!--<h1 class="assignment-with-submissions__title">{{assignment.assignment}}</h1>-->
<h4 class="assignment-with-submissions__heading">Aufgabe</h4>
<p class="assignment-with-submissions__text">{{assignment.assignment}}</p>

View File

@ -10,7 +10,7 @@
<content-block :contentBlock="contentBlock"
:parent="chapter.id"
:key="contentBlock.id" v-for="contentBlock in chapter.contentBlocks">
:key="contentBlock.id" v-for="contentBlock in filteredContentBlocks">
</content-block>
</div>
</template>
@ -20,6 +20,8 @@
import AddContentBlockButton from '@/components/AddContentBlockButton';
import {mapGetters} from 'vuex';
import {isHidden} from '@/helpers/content-block';
import {meQuery} from '@/graphql/queries';
export default {
props: ['chapter', 'index'],
@ -30,8 +32,30 @@
},
computed: {
...mapGetters(['editModule'])
...mapGetters(['editModule']),
filteredContentBlocks() {
if (!(this.chapter && this.chapter.contentBlocks)) {
return []
}
if (this.editModule) {
return this.chapter.contentBlocks;
}
return this.chapter.contentBlocks.filter(contentBlock => !isHidden(contentBlock, this.schoolClass));
},
schoolClass() {
return this.me.selectedClass;
},
},
data() {
return {
me: {}
}
},
apollo: {
me: meQuery
}
}
</script>

View File

@ -1,14 +1,14 @@
<template>
<div class="content-block__container" :class="{'content-block__container--hidden': hidden}">
<div class="content-block" :class="specialClass">
<div class="content-block__actions" v-if="canEditContentBlock">
<div class="content-block__actions" v-if="canEditContentBlock && editModule">
<user-widget v-bind="me" class="content-block__user-widget"></user-widget>
<more-options-widget>
<li class="popover-links__link"><a @click="deleteContentBlock()">Löschen</a></li>
<li class="popover-links__link"><a @click="editContentBlock()">Bearbeiten</a></li>
</more-options-widget>
</div>
<div class="content-block__visibility">
<div class="content-block__visibility" v-if="editModule">
<visibility-action
v-if="!contentBlock.indent"
:block="contentBlock"></visibility-action>
@ -69,6 +69,8 @@
import {mapGetters} from 'vuex';
import {isHidden} from '@/helpers/content-block';
const instruments = {
base_communication: 'Sprache & Kommunikation',
base_society: 'Gesellschaft'
@ -174,14 +176,7 @@
return this.me.selectedClass;
},
hidden() {
if (this.contentBlock.userCreated) {
if (this.schoolClass.id === '') {
return false;
}
return !this.contentBlock.visibleFor.map(entry => entry.id).includes(this.schoolClass.id);
} else {
return this.contentBlock.hiddenFor.map(entry => entry.id).includes(this.schoolClass.id);
}
return isHidden(this.contentBlock, this.schoolClass);
}
},
@ -260,7 +255,7 @@
left: 0;
bottom: 0;
right: 0;
background: rgba(255,255,255,0.5);
background: rgba(255, 255, 255, 0.5);
z-index: 10;
}
}
@ -285,7 +280,7 @@
&__actions {
position: absolute;
top: 10px;
right: -45px;
right: -85px;
display: flex;
flex-direction: column;
align-items: center;

View File

@ -1,5 +1,5 @@
<template>
<nav class="module-navigation sub-navigation">
<nav class="module-navigation sub-navigation" v-if="canManageContent">
<div class="sub-navigation-item">
<router-link class="sub-navigation-item__title" :to="moduleContentLink">Modul</router-link>
</div>
@ -13,7 +13,7 @@
>{{assignmentTitle(assignment)}}
</router-link>
</sub-navigation-item>
<div class="module-navigation__module-content" v-if="false">
<div class="module-navigation__module-content" v-if="false"> <!-- Do not display this for now, might be used later again though -->
<router-link
tag="h3"
:to="moduleContentLink"
@ -32,7 +32,7 @@
</div>
</div>
<div class="module-navigation__toggle-menu" v-if="canManageContent">
<div class="module-navigation__toggle-menu">
<toggle-editing></toggle-editing>
</div>
@ -107,7 +107,7 @@
return `/module/${this.module.slug}/submissions/${assignment.id}`;
},
assignmentTitle(assignment) {
return assignment.title.length > 25 ? assignment.title.substring(0, 22) + '...' : assignment.title;
return assignment.assignment.length > 25 ? assignment.assignment.substring(0, 22) + '...' : assignment.assignment;
}
}
}

View File

@ -1,3 +1,17 @@
export function setUserBlockType(isAssignment) {
return isAssignment ? 'TASK' : 'NORMAL';
}
export const isHidden = (contentBlock, schoolClass) => {
if (!contentBlock.id || !contentBlock.visibleFor || !contentBlock.hiddenFor) {
return false;
}
if (contentBlock.userCreated) {
if (schoolClass.id === '') {
return false;
}
return !contentBlock.visibleFor.map(entry => entry.id).includes(schoolClass.id);
} else {
return contentBlock.hiddenFor.map(entry => entry.id).includes(schoolClass.id);
}
};

View File

@ -33,7 +33,10 @@ class MutateContentBlock(relay.ClientIDMutation):
content_block = get_object(ContentBlock, id_param)
block_type = content_block_data.get('type', content_block.type.upper())
block_type = content_block_data.get('type')
if block_type is not None: # only change the type if the user has set a type
content_block.type = set_user_defined_block_type(block_type)
module = content_block.get_parent().get_parent().specific
if visibility_list is not None:
@ -48,7 +51,7 @@ class MutateContentBlock(relay.ClientIDMutation):
if contents is not None:
content_block.contents = json.dumps([handle_content_block(c, info.context, module) for c in contents])
content_block.type = set_user_defined_block_type(block_type)
content_block.save()
return cls(content_block=content_block)