Selaa lähdekoodia

add EducationNotations parameters page

Olivier Massot 2 vuotta sitten
vanhempi
commit
10fd57ac6a

+ 79 - 0
components/Layout/Parameters/EducationNotation.vue

@@ -0,0 +1,79 @@
+<template>
+  <LayoutContainer>
+    <UiLoadingPanel v-if="pending" />
+    <UiForm
+        v-else
+        :model="Parameters"
+        :entity="parameters"
+    >
+      <v-row>
+        <v-col cols="6">
+          <UiInputCheckbox
+              v-model="parameters.periodValidation"
+              field="periodValidation"
+              label="define_validation_periods_for_teachers"
+          />
+          <UiInputCheckbox
+              v-model="parameters.editCriteriaNotationByAdminOnly"
+              field="editCriteriaNotationByAdminOnly"
+              label="evaluation_criterium_edition_is_admin_only"
+          />
+
+          <UiInputAutocompleteWithEnum
+            v-model="parameters.advancedEducationNotationType"
+            enum-name="advanced_education_notation"
+            field="advancedEducationNotationType"
+          />
+        </v-col>
+
+        <v-col cols="6">
+          <UiInputCheckbox
+              v-model="parameters.requiredValidation"
+              field="requiredValidation"
+              label="mandatory_validation_for_evaluations"
+          />
+
+          <UiInputAutocompleteWithEnum
+              v-model="parameters.educationPeriodicity"
+              enum-name="education_periodicity"
+              field="educationPeriodicity"
+          />
+
+          <UiInputNumber
+            v-model="parameters.average"
+            field="average"
+            label="max_note_for_pedagogical_followup"
+            :default="20"
+            :min="1"
+            :max="100"
+            class="mt-2"
+          />
+        </v-col>
+      </v-row>
+    </UiForm>
+  </LayoutContainer>
+</template>
+
+<script setup lang="ts">
+import Parameters from "~/models/Organization/Parameters";
+import {useEntityFetch} from "~/composables/data/useEntityFetch";
+import {useOrganizationProfileStore} from "~/stores/organizationProfile";
+import {AsyncData} from "#app";
+import {useEnumFetch} from "~/composables/data/useEnumFetch";
+
+const i18n = useI18n()
+const { fetch } = useEntityFetch()
+
+const organizationProfile = useOrganizationProfileStore()
+
+if (organizationProfile.parametersId === null) {
+  throw new Error('Missing organization parameters id')
+}
+
+const { data: parameters, pending } = fetch(Parameters, organizationProfile.parametersId) as AsyncData<Parameters, Parameters | true>
+
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 20 - 1
components/Ui/Input/Number.vue

@@ -6,8 +6,8 @@ An input for numeric values
   <v-text-field
       ref="input"
       :modelValue.number="modelValue"
+      :label="(label || field) ? $t(label ?? field) : undefined"
       hide-details
-      single-line
       :density="density"
       type="number"
       @update:modelValue="modelValue = keepInRange(cast($event)); emitUpdate()"
@@ -25,6 +25,25 @@ const props = defineProps({
     type: Number,
     required: true
   },
+  /**
+   * Nom de la propriété d'une entité lorsque l'input concerne cette propriété
+   * - Utilisé par la validation
+   * - Laisser null si le champ ne s'applique pas à une entité
+   */
+  field: {
+    type: String,
+    required: false,
+    default: null
+  },
+  /**
+   * Label du champ
+   * Si non défini, c'est le nom de propriété qui est utilisé
+   */
+  label: {
+    type: String,
+    required: false,
+    default: null
+  },
   default: {
     type: Number,
     required: false,

+ 0 - 3
lang/fr.json

@@ -197,7 +197,6 @@
   "bulletin_parameters": "Bulletins",
   "sms": "Sms",
   "web_parameters": "Site internet",
-  "averageMax": "Note maximale pour les notes du suivi pédagogique (entre 1 et 100)",
   "educational_follow_up": "Suivi pédagogique",
   "advancedEducationNotationType": "Type de grilles d'évaluation",
   "educationPeriodicity": "Périodicité des évaluations",
@@ -638,8 +637,6 @@
   "define_validation_periods_for_teachers": "Définir des périodes de saisie pour les professeurs",
   "mandatory_validation_for_evaluations": "Valider obligatoirement les évaluations",
   "evaluation_criterium_edition_is_admin_only": "Autoriser uniquement l'administration à modifier les critères d'évaluation",
-  "evaluations_periodicity": "Périodicité des évaluations",
-  "evaluation_grid_type": "Type de grilles d'évaluation",
   "max_note_for_pedagogical_followup": "Note maximale pour les notes du suivi pédagogique (entre 1 et 100) ",
   "Bad Request": "Requête invalide"
 

+ 1 - 0
pages/parameters/index.vue

@@ -36,6 +36,7 @@ Page Paramètres
           </v-window-item>
 
           <v-window-item value="educationNotations">
+            <LayoutParametersEducationNotation />
           </v-window-item>
 
           <v-window-item value="bulletin">