Skip to content
Snippets Groups Projects
Commit 548e9d71 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Use TeacherField instead of custom autocomplete

parent 7f4c51c2
No related branches found
No related tags found
1 merge request!47Resolve "[TCC planning] Frontend is incredibly slow with large amounts of entries"
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
import PositiveSmallIntegerField from "aleksis.core/components/generic/forms/PositiveSmallIntegerField.vue"; import PositiveSmallIntegerField from "aleksis.core/components/generic/forms/PositiveSmallIntegerField.vue";
import ValidityRangeField from "../validity_range/ValidityRangeField.vue"; import ValidityRangeField from "../validity_range/ValidityRangeField.vue";
import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue"; import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue";
import TeacherField from "aleksis.apps.cursus/components/TeacherField.vue"
</script> </script>
<template> <template>
...@@ -112,14 +113,9 @@ import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue"; ...@@ -112,14 +113,9 @@ import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue";
/> />
</v-col> </v-col>
<v-col cols="6"> <v-col cols="6">
<v-autocomplete <teacher-field
counter
dense dense
filled filled
multiple
:items="getTeacherList(item.subject.teachers)"
item-text="fullName"
item-value="id"
class="mx-1" class="mx-1"
:disabled="loading" :disabled="loading"
:label="$t('lesrooster.timebound_course_config.teachers')" :label="$t('lesrooster.timebound_course_config.teachers')"
...@@ -128,32 +124,15 @@ import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue"; ...@@ -128,32 +124,15 @@ import SubjectChip from "aleksis.apps.cursus/components/SubjectChip.vue";
? getCurrentCourseConfig(course).teachers ? getCurrentCourseConfig(course).teachers
: course.teachers : course.teachers
" "
:show-subjects="true"
:priority-subject="item.subject"
@input=" @input="
(event) => (event) =>
setCourseConfigData(course, item.subject, header, { setCourseConfigData(course, item.subject, header, {
teachers: event, teachers: event,
}) })
" "
> />
<template #item="data">
<template v-if="typeof data.item !== 'object'">
<v-list-item-content>{{ data.item }}</v-list-item-content>
</template>
<template v-else>
<v-list-item-action>
<v-checkbox v-model="data.attrs.inputValue" />
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>{{
data.item.fullName
}}</v-list-item-title>
<v-list-item-subtitle v-if="data.item.shortName">{{
data.item.shortName
}}</v-list-item-subtitle>
</v-list-item-content>
</template>
</template>
</v-autocomplete>
</v-col> </v-col>
</v-row> </v-row>
</div> </div>
...@@ -184,7 +163,7 @@ import { ...@@ -184,7 +163,7 @@ import {
import { currentValidityRange as gqlCurrentValidityRange } from "../validity_range/validityRange.graphql"; import { currentValidityRange as gqlCurrentValidityRange } from "../validity_range/validityRange.graphql";
import { gqlGroupsForPlanning, gqlTeachers } from "../helper.graphql"; import { gqlGroupsForPlanning } from "../helper.graphql";
import mutateMixin from "aleksis.core/mixins/mutateMixin.js"; import mutateMixin from "aleksis.core/mixins/mutateMixin.js";
import formRulesMixin from "aleksis.core/mixins/formRulesMixin"; import formRulesMixin from "aleksis.core/mixins/formRulesMixin";
...@@ -323,24 +302,6 @@ export default { ...@@ -323,24 +302,6 @@ export default {
return cachedSubjects; return cachedSubjects;
}, },
getTeacherList(subjectTeachers) {
return [
{
header: this.$t(
"lesrooster.timebound_course_config.subject_teachers",
),
},
...this.persons.filter((person) =>
subjectTeachers.find((teacher) => teacher.id === person.id),
),
{ divider: true },
{ header: this.$t("lesrooster.timebound_course_config.all_teachers") },
...this.persons.filter(
(person) =>
!subjectTeachers.find((teacher) => teacher.id === person.id),
),
];
},
addCourse(subject, groups) { addCourse(subject, groups) {
this.$set( this.$set(
this.items.find((i) => i.subject.id === subject), this.items.find((i) => i.subject.id === subject),
...@@ -538,8 +499,7 @@ export default { ...@@ -538,8 +499,7 @@ export default {
skip() { skip() {
return ( return (
!this.groupIDSet.size || !this.groupIDSet.size ||
!this.internalValidityRange || !this.internalValidityRange
!this.persons.length
); );
}, },
variables() { variables() {
...@@ -554,9 +514,6 @@ export default { ...@@ -554,9 +514,6 @@ export default {
this.items = this.generateTableItems(data.items); this.items = this.generateTableItems(data.items);
}, },
}, },
persons: {
query: gqlTeachers,
},
}, },
}; };
</script> </script>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment