소스 검색

Merge branch 'feature/V8-5942-rpercuter-les-modifications-depu' into develop

Olivier Massot 1 년 전
부모
커밋
1966ebe005
4개의 변경된 파일115개의 추가작업 그리고 59개의 파일을 삭제
  1. 43 5
      models/Organization/Parameters.ts
  2. 46 29
      pages/parameters/attendances.vue
  3. 18 18
      pages/parameters/intranet.vue
  4. 8 7
      services/layout/menuBuilder/parametersMenuBuilder.ts

+ 43 - 5
models/Organization/Parameters.ts

@@ -27,9 +27,6 @@ export default class Parameters extends ApiModel {
   @Str(null)
   declare endCourseDate: string | null
 
-  @Bool(false, { notNullable: true })
-  declare trackingValidation: boolean
-
   @Num(20)
   declare average: number
 
@@ -125,9 +122,50 @@ export default class Parameters extends ApiModel {
   @Bool(false, { notNullable: true })
   declare sendAttendanceSms: boolean
 
-  @Attr([])
-  declare subdomains: []
+  @Bool(true, { notNullable: true })
+  declare generateAttendanceReport: boolean
+
+  @Bool(true, { notNullable: true })
+  declare consultPedagogicResult: boolean
+
+  @Bool(true, { notNullable: true })
+  declare consultTeacherListing: boolean
+
+  @Bool(true, { notNullable: false })
+  declare periodValidation: boolean
+
+  @Bool(true, { notNullable: false })
+  declare requiredValidation: boolean
 
   @Bool(false, { notNullable: true })
   declare notifyAdministrationAbsence: boolean
+
+  @Num(2, { notNullable: true })
+  declare numberConsecutiveAbsences: number
+
+  @Bool(false, { notNullable: false })
+  declare createCourse: boolean
+
+  @Bool(false, { notNullable: false })
+  declare updateCourse: boolean
+
+  @Bool(false, { notNullable: false })
+  declare deleteCourse: boolean
+
+  @Bool(false, { notNullable: false })
+  declare crudPedagogic: boolean
+
+  @Bool(false, { notNullable: false })
+  declare administrationCc: boolean
+
+  @Bool(true, { notNullable: false })
+  declare allowMembersToChangeGivenNameAndName: boolean
+
+  @Bool(true, { notNullable: false })
+  declare showEducationIsACollectivePractice: boolean
+
+  @Attr([])
+  declare subdomains: []
+
+
 }

+ 46 - 29
pages/parameters/attendances.vue

@@ -1,34 +1,42 @@
 <template>
   <LayoutContainer>
-    <UiLoadingPanel v-if="pending" />
-    <UiForm
-      v-else-if="parameters !== null"
-      :model="Parameters"
-      :entity="parameters"
-      action-position="bottom"
-    >
-      <v-row>
-        <v-col cols="12">
-          <UiInputCheckbox
-            v-model="parameters.sendAttendanceEmail"
-            field="sendAttendanceEmail"
-            label="sendAttendanceEmail"
-          />
-
-          <UiInputCheckbox
-            v-model="parameters.sendAttendanceSms"
-            field="sendAttendanceSms"
-          />
-
-          <UiInputCheckbox
-            v-model="parameters.notifyAdministrationAbsence"
-            field="notifyAdministrationAbsence"
-          />
-        </v-col>
-      </v-row>
-    </UiForm>
-
-    <v-divider class="my-10" />
+    <div v-if="organizationProfile.isSchool">
+      <UiLoadingPanel v-if="pending" />
+      <UiForm
+        v-else-if="parameters !== null"
+        :model="Parameters"
+        :entity="parameters"
+        action-position="bottom"
+      >
+        <v-row>
+          <v-col cols="12">
+            <UiInputCheckbox
+              v-model="parameters.sendAttendanceEmail"
+              field="sendAttendanceEmail"
+              label="sendAttendanceEmail"
+            />
+
+            <UiInputCheckbox
+              v-model="parameters.sendAttendanceSms"
+              field="sendAttendanceSms"
+            />
+
+            <UiInputCheckbox
+              v-model="parameters.notifyAdministrationAbsence"
+              field="notifyAdministrationAbsence"
+            />
+
+            <UiInputNumber
+              v-model="parameters.numberConsecutiveAbsences"
+              field="notifyAdministrationAbsence"
+              :rules="rules()"
+            />
+          </v-col>
+        </v-row>
+      </UiForm>
+
+      <v-divider class="my-10" />
+    </div>
 
     <UiLoadingPanel v-if="attendanceBookingReasonsPending" />
     <div v-else>
@@ -93,6 +101,8 @@ import AttendanceBookingReasonRepository from '~/stores/repositories/AttendanceB
 
 const { fetch } = useEntityFetch()
 
+const i18n = useI18n()
+
 const organizationProfile = useOrganizationProfileStore()
 
 if (organizationProfile.parametersId === null) {
@@ -112,6 +122,13 @@ const { pending: attendanceBookingReasonsPending } = fetchCollection(
 
 const attendanceBookingReasonsRepo = useRepo(AttendanceBookingReasonRepository)
 
+const rules = () => [
+  (numberConsecutiveAbsences: string | null) =>
+    (numberConsecutiveAbsences !== null &&
+      parseInt(numberConsecutiveAbsences) > 0) ||
+    i18n.t('please_enter_a_value'),
+]
+
 /**
  * On récupère les timings via le store
  * (sans ça, les mises à jour SSE ne seront pas prises en compte)

+ 18 - 18
pages/parameters/intranet.vue

@@ -10,39 +10,39 @@
       <v-row>
         <v-col cols="12">
           <UiInputCheckbox
-            v-model="parameters.generateAttendanceReport"
-            field="generateAttendanceReport"
-            label="allow_teachers_to_generate_attendance_reports"
+            v-model="parameters.createCourse"
+            field="createCourse"
+            label="allow_teachers_to_create_courses"
           />
 
           <UiInputCheckbox
-            v-model="parameters.administrationCc"
-            field="administrationCc"
-            label="send_teachers_mail_reports_copy_to_administration"
+            v-model="parameters.consultTeacherListing"
+            field="consultTeacherListing"
+            label="allow_teachers_to_consult_colleagues_informations"
           />
 
           <UiInputCheckbox
-            v-model="parameters.allowMembersToChangeGivenNameAndName"
-            field="allowMembersToChangeGivenNameAndName"
-            label="allow_members_to_change_their_names_and_firstnames"
+            v-model="parameters.consultPedagogicResult"
+            field="showAdherentList"
+            label="allow_students_to_consult_their_pedagogical_followup"
           />
 
           <UiInputCheckbox
-            v-model="parameters.createCourse"
-            field="createCourse"
-            label="allow_teachers_to_create_courses"
+            v-model="parameters.generateAttendanceReport"
+            field="generateAttendanceReport"
+            label="allow_teachers_to_generate_attendance_reports"
           />
 
           <UiInputCheckbox
-            v-model="parameters.consultTeacherListing"
-            field="consultTeacherListing"
-            label="allow_teachers_to_consult_colleagues_informations"
+            v-model="parameters.administrationCc"
+            field="administrationCc"
+            label="send_teachers_mail_reports_copy_to_administration"
           />
 
           <UiInputCheckbox
-            v-model="parameters.showAdherentList"
-            field="showAdherentList"
-            label="allow_students_to_consult_their_pedagogical_followup"
+            v-model="parameters.allowMembersToChangeGivenNameAndName"
+            field="allowMembersToChangeGivenNameAndName"
+            label="allow_members_to_change_their_names_and_firstnames"
           />
         </v-col>
       </v-row>

+ 8 - 7
services/layout/menuBuilder/parametersMenuBuilder.ts

@@ -68,13 +68,6 @@ export default class ParametersMenuBuilder extends AbstractMenuBuilder {
           `/parameters/education_timings`,
         ),
       )
-      children.push(
-        this.createItem(
-          'attendance',
-          { name: 'fas fa-user-times' },
-          `/parameters/attendances`,
-        ),
-      )
       children.push(
         this.createItem(
           'residenceAreas',
@@ -84,6 +77,14 @@ export default class ParametersMenuBuilder extends AbstractMenuBuilder {
       )
     }
 
+    children.push(
+      this.createItem(
+        'attendance',
+        { name: 'fas fa-user-times' },
+        `/parameters/attendances`,
+      ),
+    )
+
     if (this.organizationProfile.hasModule('Sms')) {
       children.push(
         this.createItem(