Distinguish between active and inactive users in class list

This commit is contained in:
Ramon Wenger 2020-03-04 16:55:02 +01:00
parent acdcc7ea13
commit a99a073460
3 changed files with 37 additions and 24 deletions

View File

@ -1,10 +1,18 @@
<template> <template>
<div class="schoolclass"> <div class="school-class">
<h2 class="schoolclass__name">{{name}}</h2> <h2 class="school-class__name">{{name}}</h2>
<div class="schoolclass__members schoolclass-members"> <div class="school-class__members school-class-members">
<ul class="schoolclass-members__list members-list"> <ul class="school-class-members__list members-list" data-cy="active-class-members-list">
<li v-for="user in users" :key="user.id" class="members-list__item"> <li v-for="member in activeMembers" :key="member.id" class="members-list__item" data-cy="school-class-member">
<p class="member-item"><span class="member-item__name">{{fullName(user)}}</span> <span class="member-item__role">{{role(user)}}</span></p> <p class="member-item"><span class="member-item__name">{{fullName(member)}}</span> <span
class="member-item__role">{{role(member)}}</span></p>
</li>
</ul>
<h3>Deaktivierte Benutzer</h3>
<ul data-cy="inactive-class-members-list">
<li v-for="member in inactiveMembers" :key="member.id" class="members-list__item" data-cy="school-class-member">
<p class="member-item"><span class="member-item__name">{{fullName(member)}}</span> <span
class="member-item__role">{{role(member)}}</span></p>
</li> </li>
</ul> </ul>
</div> </div>
@ -14,13 +22,21 @@
<script> <script>
export default { export default {
props: ['users', 'name'], props: ['members', 'name'],
methods: { methods: {
fullName (user) { fullName(member) {
return `${user.firstName} ${user.lastName}`; return `${member.firstName} ${member.lastName}`;
}, },
role ({permissions}) { role({isTeacher}) {
return permissions.indexOf('users.can_manage_school_class_content') > -1 ? 'Lehrperson' : ''; return isTeacher ? 'Lehrperson' : '';
}
},
computed: {
activeMembers() {
return this.members.filter(member => member.active)
},
inactiveMembers() {
return this.members.filter(member => !member.active)
} }
} }
} }
@ -40,7 +56,6 @@
} }
.member-item { .member-item {
line-height: $height; line-height: $height;
height: $height; height: $height;

View File

@ -1,18 +1,15 @@
query { query MySchoolClassQuery {
me { me {
id id
selectedClass { selectedClass {
id id
name name
users { members {
edges {
node {
id id
firstName firstName
lastName lastName
permissions isTeacher
} active
}
} }
} }
} }

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="my-class"> <div class="my-class">
<h1 class="my-class__header" data-cy="class-list-title">Klassenliste</h1> <h1 class="my-class__header" data-cy="class-list-title">Klassenliste</h1>
<classlist v-bind="selectedClass" class="my-class__class"></classlist> <classlist class="my-class__class" :name="selectedClass.name" :members="selectedClass.members"></classlist>
</div> </div>
</template> </template>
@ -27,7 +27,8 @@
data() { data() {
return { return {
selectedClass: { selectedClass: {
name: '' name: '',
members: []
} }
} }
} }