Skip to content
Snippets Groups Projects
Verified Commit 1c8cd8b4 authored by Julian's avatar Julian Committed by Jonathan Weth
Browse files

Include fields colour and default for absence reasons

parent b93d8e59
No related branches found
No related tags found
1 merge request!20Resolve "Create AbsenceReason Select field"
<script setup>
import ColorField from "aleksis.core/components/generic/forms/ColorField.vue";
import InlineCRUDList from "aleksis.core/components/generic/InlineCRUDList.vue";
</script>
......@@ -14,11 +15,66 @@ import InlineCRUDList from "aleksis.core/components/generic/InlineCRUDList.vue";
:gql-delete-mutation="gqlDeleteMutation"
:default-item="defaultItem"
>
<!-- eslint-disable-next-line vue/valid-v-slot -->
<template #name.field="{ attrs, on }">
<div aria-required="true">
<v-text-field
v-bind="attrs"
v-on="on"
:rules="$rules().required.build()"
/>
</div>
</template>
<!-- eslint-disable-next-line vue/valid-v-slot -->
<template #shortName.field="{ attrs, on }">
<div aria-required="true">
<v-text-field
v-bind="attrs"
v-on="on"
:rules="$rules().required.build()"
/>
</div>
</template>
<template #colour="{ item }">
<v-chip :color="item.colour" outlined v-if="item.colour">
{{ item.colour }}
</v-chip>
<span v-else></span>
</template>
<!-- eslint-disable-next-line vue/valid-v-slot -->
<template #colour.field="{ attrs, on }">
<color-field v-bind="attrs" v-on="on" />
</template>
<template #default="{ item }">
<v-switch
:input-value="item.default"
disabled
inset
:false-value="false"
:true-value="true"
/>
</template>
<!-- eslint-disable-next-line vue/valid-v-slot -->
<template #default.field="{ attrs, on }">
<v-switch
v-bind="attrs"
v-on="on"
inset
:false-value="false"
:true-value="true"
:hint="$t('kolego.absence_reason.default_helptext')"
persistent-hint
/>
</template>
</inline-c-r-u-d-list>
</v-container>
</template>
<script>
import formRulesMixin from "aleksis.core/mixins/formRulesMixin.js";
import {
absenceReasons,
createAbsenceReasons,
......@@ -28,6 +84,7 @@ import {
export default {
name: "AbsenceReasons",
mixins: [formRulesMixin],
data() {
return {
headers: [
......@@ -39,6 +96,14 @@ export default {
text: this.$t("kolego.absence_reason.name"),
value: "name",
},
{
text: this.$t("kolego.absence_reason.colour"),
value: "colour",
},
{
text: this.$t("kolego.absence_reason.default"),
value: "default",
},
],
i18nKey: "kolego.absence_reason",
gqlQuery: absenceReasons,
......@@ -48,6 +113,8 @@ export default {
defaultItem: {
shortName: "",
name: "",
colour: "",
default: false,
},
required: [(value) => !!value || this.$t("forms.errors.required")],
};
......
......@@ -3,6 +3,8 @@ query absenceReasons($orderBy: [String], $filters: JSONString) {
id
shortName
name
colour
default
canEdit
canDelete
}
......@@ -14,6 +16,8 @@ mutation createAbsenceReasons($input: [BatchCreateAbsenceReasonInput]!) {
id
shortName
name
colour
default
canEdit
canDelete
}
......@@ -32,6 +36,8 @@ mutation updateAbsenceReasons($input: [BatchPatchAbsenceReasonInput]!) {
id
shortName
name
colour
default
canEdit
canDelete
}
......
......@@ -13,7 +13,10 @@
"title_plural": "Absence Reasons",
"create": "Create absence reason",
"short_name": "Short name",
"name": "Name"
"name": "Name",
"colour": "Colour",
"default": "Default Absence Reason",
"default_helptext": "Will disable previous default when enabled"
}
}
}
......@@ -23,7 +23,7 @@ from ..models import Absence, AbsenceReason
class AbsenceReasonType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
class Meta:
model = AbsenceReason
fields = ("id", "short_name", "name")
fields = ("id", "short_name", "name", "colour", "default")
filter_fields = {
"short_name": ["icontains", "exact"],
"name": ["icontains", "exact"],
......@@ -104,7 +104,7 @@ class AbsenceBatchPatchMutation(PermissionBatchPatchMixin, DjangoBatchPatchMutat
class AbsenceReasonBatchCreateMutation(DjangoBatchCreateMutation):
class Meta:
model = AbsenceReason
fields = ("short_name", "name")
fields = ("short_name", "name", "colour", "default")
optional_fields = ("name",)
permissions = ("kolego.create_absencereason_rule",)
......@@ -118,5 +118,5 @@ class AbsenceReasonBatchDeleteMutation(DjangoBatchDeleteMutation):
class AbsenceReasonBatchPatchMutation(PermissionBatchPatchMixin, DjangoBatchPatchMutation):
class Meta:
model = AbsenceReason
fields = ("id", "short_name", "name")
fields = ("id", "short_name", "name", "colour", "default")
permissions = ("kolego.edit_absencereason_rule",)
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