Add class filter to results

This commit is contained in:
Ramon Wenger 2018-12-06 16:29:27 +01:00
parent 460d413196
commit 2fa373bc30
2 changed files with 42 additions and 10 deletions

View File

@ -2,15 +2,16 @@
<div class="assignment-with-submissions">
<h1 class="assignment-with-submissions__title">{{assignment.title}}</h1>
<p v-if="!assignment.submissions.length">Zu diesem Auftrag sind noch keine Ergebnisse vorhanden</p>
<router-link
<router-link
:to="submissionLink(submission)"
v-for="(submission, index) in assignment.submissions"
v-for="(submission, index) in submissions"
class="assignment-with-submissions__link"
:key="index">
<student-submission class="assignment-with-submissions__submission"
:submission="submission"
>
</student-submission>
</router-link>
<student-submission class="assignment-with-submissions__submission"
:submission="submission"
>
</student-submission>
</router-link>
</div>
</template>
@ -23,11 +24,30 @@
components: {
StudentSubmission
},
methods: {
submissionLink(submission) {
return `/submission/${submission.id}`
},
belongsToSchool(submission) {
if (this.currentFilter === '') {
return true;
}
return submission.student.schoolClasses.edges.some(edge => edge.node.id === this.currentFilter)
}
}
},
computed: {
submissions() {
return this.assignment.submissions.filter(submission => {
return this.belongsToSchool(submission);
});
},
currentFilter() {
return this.$store.state.filterForSchoolClass;
},
},
}
</script>
@ -40,8 +60,12 @@
font-size: toRem(35px);
}
&__submission:first-of-type {
border-top: 1px solid $color-grey;
&__link {
display: block;
&:first-of-type {
border-top: 1px solid $color-grey;
}
}
}
</style>

View File

@ -1,3 +1,4 @@
#import "./fragments/schoolClassParts.gql"
query AssignmentWithSubmissions($id: ID!) {
assignment(id: $id) {
title
@ -8,6 +9,13 @@ query AssignmentWithSubmissions($id: ID!) {
student {
firstName
lastName
schoolClasses {
edges {
node {
...SchoolClassParts
}
}
}
}
}
}