attendances.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <div>
  3. <LayoutCommonSection>
  4. <h4>{{ $t('configuration') }}</h4>
  5. <UiFormEdition :id="organizationProfile.parametersId" :model="Parameters">
  6. <template #default="{ entity: parameters }">
  7. <div v-if="parameters">
  8. <v-row>
  9. <v-col cols="12">
  10. <h5 class="pa-2">{{ $t('showing') }}</h5>
  11. <UiInputCheckbox
  12. v-model="parameters.handlePresence"
  13. field="handlePresence"
  14. label="handlePresence"
  15. />
  16. <div v-if="organizationProfile.isSchool">
  17. <h5 class="pa-2">{{ $t('alert') }}</h5>
  18. <UiInputCheckbox
  19. v-model="parameters.sendAttendanceEmail"
  20. field="sendAttendanceEmail"
  21. label="sendAttendanceEmail"
  22. />
  23. <UiInputCheckbox
  24. v-model="parameters.sendAttendanceSms"
  25. field="sendAttendanceSms"
  26. label="sendAttendanceSms"
  27. />
  28. <UiInputCheckbox
  29. v-model="parameters.notifyAdministrationAbsence"
  30. field="notifyAdministrationAbsence"
  31. label="notifyAdministrationAbsence"
  32. />
  33. <UiInputNumber
  34. v-if="parameters.notifyAdministrationAbsence"
  35. v-model="parameters.numberConsecutiveAbsences"
  36. field="numberConsecutiveAbsences"
  37. label="numberConsecutiveAbsences"
  38. :rules="getAsserts('numberConsecutiveAbsences')"
  39. />
  40. </div>
  41. </v-col>
  42. </v-row>
  43. </div>
  44. </template>
  45. </UiFormEdition>
  46. </LayoutCommonSection>
  47. <LayoutCommonSection>
  48. <LayoutParametersEntityTable
  49. :model="AttendanceBookingReason"
  50. :title="$t('attendanceBookingReasons')"
  51. :columns-definitions="[{ property: 'reason' }]"
  52. />
  53. </LayoutCommonSection>
  54. </div>
  55. </template>
  56. <script setup lang="ts">
  57. import Parameters from '~/models/Organization/Parameters'
  58. import { useOrganizationProfileStore } from '~/stores/organizationProfile'
  59. import AttendanceBookingReason from '~/models/Booking/AttendanceBookingReason'
  60. import { getAssertUtils } from '~/services/asserts/getAssertUtils'
  61. definePageMeta({
  62. name: 'parameters_attendances_page',
  63. })
  64. const organizationProfile = useOrganizationProfileStore()
  65. if (organizationProfile.parametersId === null) {
  66. throw new Error('Missing organization parameters id')
  67. }
  68. const getAsserts = (key: string) =>
  69. getAssertUtils(
  70. Parameters.getAsserts() as Record<string, Record<string, unknown>>,
  71. key,
  72. )
  73. </script>