attendances.vue 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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) => getAssertUtils(Parameters.getAsserts(), key)
  69. </script>