Clean up some more code

This commit is contained in:
Ramon Wenger 2018-10-24 15:15:48 +02:00
parent 2ecec5b344
commit a90501d7e8
4 changed files with 10 additions and 9 deletions

View File

@ -44,7 +44,7 @@
return this.$getRidOfEdges(this.me.schoolClasses); return this.$getRidOfEdges(this.me.schoolClasses);
}, },
isTeacher() { isTeacher() {
return this.me.role === 'teacher'; return this.me.permissions.includes('users.can_manage_school_class_content');
} }
}, },

View File

@ -12,7 +12,6 @@
class="skillbox-input room-form__input" class="skillbox-input room-form__input"
id="room-class" id="room-class"
v-model="localRoom.schoolClass" v-model="localRoom.schoolClass"
@change="classSelectionChanged"
> >
<option disabled value="">-</option> <option disabled value="">-</option>
<option <option
@ -56,14 +55,16 @@
data() { data() {
return { return {
localRoom: Object.assign({}, this.room), localRoom: Object.assign({}, this.room),
me: {}, me: {}
noClassSelected: true
} }
}, },
computed: { computed: {
schoolClasses() { schoolClasses() {
return this.$getRidOfEdges(this.me.schoolClasses); return this.$getRidOfEdges(this.me.schoolClasses);
},
noClassSelected() {
return this.localRoom.schoolClass.id === undefined;
} }
}, },
@ -71,9 +72,6 @@
updateColor(newColor) { updateColor(newColor) {
this.localRoom.appearance = newColor; this.localRoom.appearance = newColor;
this.$store.dispatch('setSpecialContainerClass', newColor); this.$store.dispatch('setSpecialContainerClass', newColor);
},
classSelectionChanged() {
this.noClassSelected = this.localRoom.schoolClass.id === undefined;
} }
}, },

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="rooms-page"> <div class="rooms-page">
<room-widget v-for="room in filteredRooms" v-bind="room" :key="room.name"></room-widget> <room-widget v-for="room in filteredRooms" v-bind="room" :key="room.name"></room-widget>
<add-room v-if="me.role === 'teacher'"></add-room> <add-room v-if="canAddRoom"></add-room>
</div> </div>
</template> </template>
@ -24,6 +24,9 @@
}, },
currentFilter() { currentFilter() {
return this.$store.state.filterForSchoolClass; return this.$store.state.filterForSchoolClass;
},
canAddRoom(){
this.me.permissions.includes('users.can_manage_school_class_content')
} }
}, },

View File

@ -37,7 +37,7 @@ class AddRoom(MutateRoom):
@classmethod @classmethod
def mutate_and_get_payload(cls, root, info, **kwargs): def mutate_and_get_payload(cls, root, info, **kwargs):
if info.context.user.user_roles.first().role.key != 'teacher': if not info.context.user.has_perm('users.can_manage_school_class_content'):
return cls(room=None, errors=['not allowed']) return cls(room=None, errors=['not allowed'])
room_data = kwargs.get('room') room_data = kwargs.get('room')