education_notation.vue 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <NuxtLayout name="parameters">
  3. <LayoutContainer>
  4. <UiLoadingPanel v-if="pending" />
  5. <UiForm
  6. v-else
  7. :model="Parameters"
  8. :entity="parameters"
  9. >
  10. <v-row>
  11. <v-col cols="6">
  12. <UiInputCheckbox
  13. v-model="parameters.periodValidation"
  14. field="periodValidation"
  15. label="define_validation_periods_for_teachers"
  16. />
  17. <UiInputCheckbox
  18. v-model="parameters.editCriteriaNotationByAdminOnly"
  19. field="editCriteriaNotationByAdminOnly"
  20. label="evaluation_criterium_edition_is_admin_only"
  21. />
  22. <UiInputAutocompleteWithEnum
  23. v-if="organizationProfile.hasModule('AdvancedEducationNotation')"
  24. v-model="parameters.advancedEducationNotationType"
  25. enum-name="advanced_education_notation"
  26. field="advancedEducationNotationType"
  27. />
  28. </v-col>
  29. <v-col cols="6">
  30. <UiInputCheckbox
  31. v-model="parameters.requiredValidation"
  32. field="requiredValidation"
  33. label="mandatory_validation_for_evaluations"
  34. />
  35. <UiInputAutocompleteWithEnum
  36. v-model="parameters.educationPeriodicity"
  37. enum-name="education_periodicity"
  38. field="educationPeriodicity"
  39. />
  40. <UiInputNumber
  41. v-model="parameters.average"
  42. field="average"
  43. label="max_note_for_pedagogical_followup"
  44. :default="20"
  45. :min="1"
  46. :max="100"
  47. class="mt-2"
  48. />
  49. </v-col>
  50. </v-row>
  51. </UiForm>
  52. </LayoutContainer>
  53. </NuxtLayout>
  54. </template>
  55. <script setup lang="ts">
  56. import Parameters from "~/models/Organization/Parameters";
  57. import {useEntityFetch} from "~/composables/data/useEntityFetch";
  58. import {useOrganizationProfileStore} from "~/stores/organizationProfile";
  59. import {AsyncData} from "#app";
  60. /**
  61. * Disable the default layout, the page will use the layout defined with <NuxtLayout />
  62. * @see https://nuxt.com/docs/guide/directory-structure/layouts#overriding-a-layout-on-a-per-page-basis
  63. */
  64. definePageMeta({
  65. layout: false,
  66. });
  67. const i18n = useI18n()
  68. const { fetch } = useEntityFetch()
  69. const organizationProfile = useOrganizationProfileStore()
  70. if (organizationProfile.parametersId === null) {
  71. throw new Error('Missing organization parameters id')
  72. }
  73. const { data: parameters, pending } = fetch(Parameters, organizationProfile.parametersId) as AsyncData<Parameters, Parameters | true>
  74. </script>
  75. <style scoped lang="scss">
  76. </style>