Skip to content
Snippets Groups Projects
Commit 3ca1e9d3 authored by permcu's avatar permcu
Browse files

Enable deletion of substitution in substitution frontend

parent 31c88e61
No related branches found
No related tags found
1 merge request!310Resolve "Implement Vue substitution frontend"
Pipeline #147059 failed
......@@ -67,3 +67,9 @@ mutation patchAmendLesson($input: PatchLessonEventInput!, $id: ID!) {
}
}
}
mutation deleteAmendLesson($id: ID!) {
deleteAmendLesson(id: $id) {
ok
}
}
......@@ -98,9 +98,14 @@
</v-list-item>
<v-card-actions v-if="checkPermission('chronos.edit_substitution_rule')">
<edit-button
i18n-key="chronos.event.amend.button"
i18n-key="chronos.event.amend.edit_button"
@click="amendEvent.open = true"
/>
<delete-button
v-if="selectedEvent.meta.amended"
i18n-key="chronos.event.amend.delete_button"
@click="amendEvent.delete = true"
/>
<dialog-object-form
v-model="amendEvent.open"
:fields="amendEvent.fields"
......@@ -114,7 +119,7 @@
:get-patch-data="transformPatchData"
:edit-item="initPatchData"
@cancel="amendEvent.open = false"
@save="onAmendSave()"
@save="updateOnSave()"
>
<template #subject.field="{ attrs, on, item }">
<v-autocomplete
......@@ -159,6 +164,13 @@
<v-textarea v-bind="attrs" v-on="on" />
</template>
</dialog-object-form>
<delete-dialog
deleteSuccessMessageI18nKey="chronos.event.amend.delete_success"
:gql-mutation="amendEvent.gqlDeleteMutation"
v-model="amendEvent.delete"
:item="selectedEvent.meta"
@success="updateOnSave()"
/>
</v-card-actions>
</template>
</base-calendar-feed-details>
......@@ -172,6 +184,8 @@ import CalendarStatusChip from "aleksis.core/components/calendar/CalendarStatusC
import CancelledCalendarStatusChip from "aleksis.core/components/calendar/CancelledCalendarStatusChip.vue";
import EditButton from "aleksis.core/components/generic/buttons/EditButton.vue";
import DialogObjectForm from "aleksis.core/components/generic/dialogs/DialogObjectForm.vue";
import DeleteButton from "aleksis.core/components/generic/buttons/DeleteButton.vue";
import DeleteDialog from "aleksis.core/components/generic/dialogs/DeleteDialog.vue";
import LessonRelatedObjectChip from "../../LessonRelatedObjectChip.vue";
......@@ -183,6 +197,7 @@ import {
gqlRooms,
createAmendLesson,
patchAmendLesson,
deleteAmendLesson,
} from "../../amendLesson.graphql";
export default {
......@@ -195,6 +210,8 @@ export default {
CancelledCalendarStatusChip,
EditButton,
DialogObjectForm,
DeleteButton,
DeleteDialog,
},
mixins: [permissionsMixin, calendarFeedDetailsMixin, lessonEvent],
data() {
......@@ -229,6 +246,8 @@ export default {
},
gqlCreateMutation: createAmendLesson,
gqlPatchMutation: patchAmendLesson,
delete: false,
gqlDeleteMutation: deleteAmendLesson,
},
};
},
......@@ -250,7 +269,7 @@ export default {
cancelled: cancelled ? true : false,
};
},
onAmendSave() {
updateOnSave() {
this.$emit('refreshCalendar');
this.model = false;
},
......
......@@ -28,7 +28,9 @@
"no_room": "No room",
"current_changes": "Current changes",
"amend": {
"button": "Change",
"edit_button": "Change",
"delete_button": "Reset",
"delete_success": "The substitution was deleted successfully.",
"title": "Change lesson",
"subject": "Subject",
"teachers": "Teachers",
......
......@@ -5,6 +5,7 @@ from graphene_django import DjangoObjectType
from graphene_django_cud.mutations import DjangoCreateMutation, DjangoPatchMutation
from aleksis.core.models import CalendarEvent, Group, Person, Room
from aleksis.core.schema.base import DeleteMutation
from ..models import LessonEvent
from ..util.chronos_helpers import get_classes, get_rooms, get_teachers
......@@ -113,6 +114,11 @@ class AmendLessonPatchMutation(DatetimeTimezoneMixin, DjangoPatchMutation):
only_fields = ("subject", "teachers", "groups", "rooms", "cancelled", "comment")
class AmendLessonDeleteMutation(DeleteMutation):
klass = LessonEvent
permission_required = "chronos.edit_substitution_rule"
class TimetableType(graphene.Enum):
TEACHER = "teacher"
GROUP = "group"
......@@ -184,3 +190,4 @@ class Query(graphene.ObjectType):
class Mutation(graphene.ObjectType):
create_amend_lesson = AmendLessonCreateMutation.Field()
patch_amend_lesson = AmendLessonPatchMutation.Field()
delete_amend_lesson = AmendLessonDeleteMutation.Field()
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