From ce0953b73140537f4ca6374b5005c31e19e85525 Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Tue, 14 Jan 2025 18:26:39 +0100
Subject: [PATCH] Use generic PersonField from core

---
 .../coursebook/absences/AbsenceCreationForm.vue  | 16 +++++++++-------
 .../coursebook/absences/absenceCreation.graphql  |  5 +++--
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
index 1d392d83b..3dc663636 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/AbsenceCreationForm.vue
@@ -4,10 +4,9 @@
       <v-row>
         <div aria-required="true" class="full-width">
           <!-- FIXME Vue 3: clear-on-select -->
-          <v-autocomplete
+          <person-field
+            :gql-query="gqlQuery"
             :label="$t('forms.labels.persons')"
-            :items="allPersons"
-            item-text="fullName"
             return-object
             multiple
             chips
@@ -18,7 +17,6 @@
               ])
             "
             :value="persons"
-            :loading="$apollo.queries.allPersons.loading"
             @input="$emit('persons', $event)"
           />
         </div>
@@ -77,7 +75,8 @@
 <script>
 import AbsenceReasonGroupSelect from "aleksis.apps.kolego/components/AbsenceReasonGroupSelect.vue";
 import DateTimeField from "aleksis.core/components/generic/forms/DateTimeField.vue";
-import { persons } from "./absenceCreation.graphql";
+import PersonField from "aleksis.core/components/generic/forms/PersonField.vue";
+import { gqlPersons } from "./absenceCreation.graphql";
 import formRulesMixin from "aleksis.core/mixins/formRulesMixin.js";
 import { DateTime } from "luxon";
 
@@ -86,6 +85,7 @@ export default {
   components: {
     AbsenceReasonGroupSelect,
     DateTimeField,
+    PersonField,
   },
   mixins: [formRulesMixin],
   emits: [
@@ -96,8 +96,10 @@ export default {
     "comment",
     "absence-reason",
   ],
-  apollo: {
-    allPersons: persons,
+  data() {
+    return {
+      gqlQuery: gqlPersons,
+    };
   },
   props: {
     persons: {
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql b/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql
index f7f6de02e..9ca58dd7b 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/absenceCreation.graphql
@@ -1,8 +1,9 @@
 # Uses core persons query
-query persons {
-  allPersons: absenceCreationPersons {
+query gqlPersons {
+  items: absenceCreationPersons {
     id
     fullName
+    shortName
   }
 }
 
-- 
GitLab