attendances.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <template>
  2. <div>
  3. <LayoutCommonSection v-if="organizationProfile.isSchool">
  4. <h4>{{ $t('alert_configuration') }}</h4>
  5. <UiFormEdition :model="Parameters" :id="organizationProfile.parametersId">
  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. />
  15. <h5 class="pa-2">{{ $t('alert') }}</h5>
  16. <UiInputCheckbox
  17. v-model="parameters.sendAttendanceEmail"
  18. field="sendAttendanceEmail"
  19. label="sendAttendanceEmail"
  20. />
  21. <UiInputCheckbox
  22. v-model="parameters.sendAttendanceSms"
  23. field="sendAttendanceSms"
  24. />
  25. <UiInputCheckbox
  26. v-model="parameters.notifyAdministrationAbsence"
  27. field="notifyAdministrationAbsence"
  28. />
  29. <UiInputNumber
  30. v-if="parameters.notifyAdministrationAbsence"
  31. v-model="parameters.numberConsecutiveAbsences"
  32. field="numberConsecutiveAbsences"
  33. :rules="getAsserts('numberConsecutiveAbsences')"
  34. />
  35. </v-col>
  36. </v-row>
  37. </div>
  38. </template>
  39. </UiFormEdition>
  40. </LayoutCommonSection>
  41. <LayoutCommonSection>
  42. <LayoutParametersEntityTable
  43. :model="AttendanceBookingReason"
  44. :title="$t('attendanceBookingReasons')"
  45. :columns-definitions="[{ property: 'reason' }]"
  46. />
  47. </LayoutCommonSection>
  48. </div>
  49. </template>
  50. <script setup lang="ts">
  51. import Parameters from '~/models/Organization/Parameters'
  52. import { useOrganizationProfileStore } from '~/stores/organizationProfile'
  53. import AttendanceBookingReason from '~/models/Booking/AttendanceBookingReason'
  54. import {getAssertUtils} from "~/services/asserts/getAssertUtils";
  55. definePageMeta({
  56. name: 'parameters_attendances_page',
  57. })
  58. const organizationProfile = useOrganizationProfileStore()
  59. if (organizationProfile.parametersId === null) {
  60. throw new Error('Missing organization parameters id')
  61. }
  62. const getAsserts = (key) => getAssertUtils(Parameters.getAsserts(), key)
  63. </script>