Skip to content
Snippets Groups Projects
Verified Commit 0371a745 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Improve and restructure mini timetables, include mini timetable for teachers

parent 843b1820
No related branches found
No related tags found
No related merge requests found
......@@ -22,8 +22,8 @@ import SubjectField from "aleksis.apps.cursus/components/SubjectField.vue";
import LessonCard from "./LessonCard.vue";
import { RRule } from "rrule";
import TeacherTimeTable from "./timetables/TeacherTimeTable.vue";
import RoomTimeTable from "./timetables/RoomTimeTable.vue";
import TeacherTimeTable from "../timetables/TeacherTimeTable.vue";
import RoomTimeTable from "../timetables/RoomTimeTable.vue";
import LessonRatioChip from "./LessonRatioChip.vue";
import TimeGridField from "../validity_range/TimeGridField.vue";
import BlockingCard from "./BlockingCard.vue";
......@@ -1138,13 +1138,13 @@ export default defineComponent({
>
<teacher-time-table
v-if="internalTimeGrid && selectedObjectType === 'teacher'"
:teacher-id="selectedObject"
:id="selectedObject"
:time-grid="timeGrid"
class="fill-height"
/>
<room-time-table
v-if="internalTimeGrid && selectedObjectType === 'room'"
:room-id="selectedObject"
:id="selectedObject"
:time-grid="timeGrid"
class="fill-height"
/>
......
<script>
import { defineComponent } from "vue";
import { slots } from "../../breaks_and_slots/slot.graphql";
import LessonCard from "../LessonCard.vue";
import { slots } from "../breaks_and_slots/slot.graphql";
import LessonCard from "../timetable_management/LessonCard.vue";
import MessageBox from "aleksis.core/components/generic/MessageBox.vue";
export default defineComponent({
......@@ -63,6 +63,9 @@ export default defineComponent({
lessons() {
return [];
},
loading() {
return false;
},
},
methods: {
styleForLesson(lesson) {
......@@ -79,7 +82,14 @@ export default defineComponent({
</script>
<template>
<div class="timetable">
<div v-if="loading" class="d-flex justify-center pa-10">
<v-progress-circular
indeterminate
color="primary"
:size="50"
></v-progress-circular>
</div>
<div v-else class="timetable">
<!-- Empty div to fill top-left corner -->
<div></div>
<v-card
......
......@@ -7,7 +7,7 @@ export default defineComponent({
name: "RoomTimeTable",
extends: MiniTimeTable,
props: {
roomId: {
id: {
type: String,
required: true,
},
......@@ -16,6 +16,9 @@ export default defineComponent({
lessons() {
return this.lessonsRoom;
},
loading() {
return this.$apollo.queries.lessonsRoom.loading;
},
},
apollo: {
lessonsRoom: {
......@@ -23,7 +26,7 @@ export default defineComponent({
variables() {
return {
timeGrid: this.timeGrid.id,
room: this.roomId,
room: this.id,
};
},
skip() {
......
......@@ -7,7 +7,7 @@ export default defineComponent({
name: "TeacherTimeTable",
extends: MiniTimeTable,
props: {
teacherId: {
id: {
type: String,
required: true,
},
......@@ -16,6 +16,9 @@ export default defineComponent({
lessons() {
return this.lessonsTeacher;
},
loading() {
return this.$apollo.queries.lessonsTeacher.loading;
},
},
apollo: {
lessonsTeacher: {
......@@ -23,7 +26,7 @@ export default defineComponent({
variables() {
return {
timeGrid: this.timeGrid.id,
teacher: this.teacherId,
teacher: this.id,
};
},
skip() {
......
......@@ -110,3 +110,58 @@ query lessonsRoom($room: ID!, $timeGrid: ID!) {
canDelete
}
}
query lessonsGroup($group: ID!, $timeGrid: ID!) {
lessonsGroup: lessonObjectsForGroup(group: $group, timeGrid: $timeGrid) {
id
slotStart {
id
period
weekday
}
slotEnd {
id
period
weekday
}
subject {
id
name
colourFg
colourBg
}
teachers {
id
fullName
shortName
}
rooms {
id
name
shortName
}
course {
id
name
subject {
id
name
colourFg
colourBg
}
teachers {
id
fullName
shortName
}
groups {
id
name
shortName
}
}
recurrence
canEdit
canDelete
}
}
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