Skip to content

Commit eea72c0

Browse files
authored
fix(fusager): ds uncomplete ds8j appear complete 1124 (#997)
## Ticket(s) lié(s) 1124 ## Description Correction de la possibilité de transmettre une DS8J alors que l'attestation sur l'honneur du personnel n'était pas cochée, cela générait de toute façon une erreur. Mais on ne voyait pas sur l'écran de synthèse le fait qu'il y avait du personnel incomplet. Au delà de ce correctif, passage en lecture seul des champs sur la partie synthèse qui étaient modifiables
1 parent 926aa84 commit eea72c0

5 files changed

Lines changed: 48 additions & 30 deletions

File tree

packages/frontend-usagers/src/components/DS/informations-personnel.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@
105105
<DSPersonnel
106106
:personnes="encadrants"
107107
:modifiable="props.modifiableEnCours"
108+
:synthese="props.synthese"
108109
:show-adresse="false"
109110
:show-attestation="true"
110111
:show-competence="true"
@@ -144,6 +145,7 @@
144145
<DSPersonnel
145146
:personnes="accompagnants"
146147
:modifiable="props.modifiableEnCours"
148+
:synthese="props.synthese"
147149
:show-adresse="false"
148150
:show-attestation="true"
149151
:show-competence="true"
@@ -250,6 +252,7 @@ const props = defineProps({
250252
showButtons: { type: Boolean, default: true },
251253
isDownloading: { type: Boolean, required: false, default: false },
252254
message: { type: String, required: false, default: null },
255+
synthese: { type: Boolean, default: false },
253256
});
254257
const emit = defineEmits(["previous", "next", "update"]);
255258

packages/frontend-usagers/src/components/DS/personnel.vue

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
<template>
22
<div>
33
<DsfrFieldset>
4-
<div v-if="props.modifiable">
4+
<div v-if="isModifiable">
55
<span class="fr-hint-text fr-mb-2w"
66
>Vous pouvez saisir les informations de chaque personne
77
individuellement ou coller les données depuis un tableur. Les données
88
importées peuvent être ensuite modifiées manuellement, notamment pour
99
joindre des documents.</span
1010
>
1111
</div>
12-
<div v-if="props.modifiableEnCours" class="fr-fieldset__element">
12+
<div
13+
v-if="props.modifiableEnCours && !props.synthese"
14+
class="fr-fieldset__element"
15+
>
1316
<span class="fr-label">1. Ajouter le personnel manuellement</span>
1417
<span class="fr-hint-text"
1518
>Cliquer sur le bouton et renseigner les champs un par un. Faire ceci
1619
autant de fois que nécessaire</span
1720
>
1821
</div>
19-
<div v-if="props.modifiable" class="fr-fieldset__element">
22+
<div v-if="isModifiable" class="fr-fieldset__element">
2023
<DsfrButton
2124
ref="modalOrigin"
2225
:label="props.labelBoutonAjouter"
@@ -25,7 +28,7 @@
2528
@click.prevent="addPersonne"
2629
/>
2730
</div>
28-
<div v-if="props.modifiable" class="fr-fieldset__element">
31+
<div v-if="isModifiable" class="fr-fieldset__element">
2932
<span class="fr-label"> 2. Coller des données depuis un tableur </span>
3033
<span class="fr-hint-text">
3134
Coller les cellules copiées directement depuis votre tableur (Excel,
@@ -95,7 +98,7 @@
9598
@update:model-value="handlePaste"
9699
/>
97100
</div>
98-
<div v-if="props.modifiable" class="fr-fieldset__element">
101+
<div v-if="isModifiable" class="fr-fieldset__element">
99102
<span class="fr-label">3. Liste du personnel ajouté</span>
100103
</div>
101104
</DsfrFieldset>
@@ -117,7 +120,7 @@
117120
name="attestation"
118121
label="Je certifie sur l'honneur avoir vérifié que les personnes ci-dessus n’ont pas fait l’objet d’une condamnation inscrite au bulletin n°3 du casier judiciaire"
119122
:small="true"
120-
:disabled="!props.modifiable"
123+
:disabled="!isModifiable"
121124
@update:model-value="true"
122125
/>
123126
</div>
@@ -145,6 +148,7 @@
145148
<Personne
146149
:modifiable="props.modifiable"
147150
:personne="personnel"
151+
:synthese="props.synthese"
148152
:show-adresse="props.showAdresse"
149153
:show-attestation="props.showAttestation"
150154
:show-competence="props.showCompetence"
@@ -247,8 +251,11 @@ const props = defineProps({
247251
showEmail: { type: Boolean, default: false, required: false },
248252
titre: { type: String, default: null, required: false },
249253
labelBoutonAjouter: { type: String, required: true },
254+
synthese: { type: Boolean, default: false, required: false },
250255
});
251256
257+
const isModifiable = computed(() => props.modifiable && !props.synthese);
258+
252259
const personnesWithId = computed(() =>
253260
[...(props.personnes ?? [])].map((p, index) => ({ ...p, id: index })),
254261
);
@@ -345,21 +352,25 @@ const headers = [
345352
},
346353
{
347354
column: "erreurs",
348-
text: "Suppression",
349-
format: (_item, index) =>
350-
props.modifiable && {
351-
component: "DsfrButton",
352-
class: "fr-icon-delete-fill",
353-
tertiary: true,
354-
noOutline: true,
355-
onClick: (event) => {
356-
event.stopPropagation();
357-
deleteItem(index);
358-
},
359-
headerAttrs: {
360-
class: "suivi",
361-
},
362-
},
355+
...(!props.synthese
356+
? {
357+
text: "Suppression",
358+
format: (_item, index) =>
359+
props.modifiable && {
360+
component: "DsfrButton",
361+
class: "fr-icon-delete-fill",
362+
tertiary: true,
363+
noOutline: true,
364+
onClick: (event) => {
365+
event.stopPropagation();
366+
deleteItem(index);
367+
},
368+
headerAttrs: {
369+
class: "suivi",
370+
},
371+
},
372+
}
373+
: { text: " " }),
363374
},
364375
];
365376

packages/frontend-usagers/src/components/DS/synthese.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
props.declarationCourante.informationsPersonnel ?? {}
5959
"
6060
:modifiable="false"
61+
:synthese="true"
6162
:validate-on-mount="true"
6263
:show-buttons="false"
6364
></DSInformationsPersonnel>

packages/frontend-usagers/src/components/personne.vue

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
label="Nom"
99
:label-visible="true"
1010
:model-value="nom"
11-
:readonly="!props.modifiable"
11+
:readonly="!props.modifiable || props.synthese"
1212
:is-valid="nomMeta.valid"
1313
:error-message="nomErrorMessage"
1414
placeholder=""
@@ -24,7 +24,7 @@
2424
label="Prénom"
2525
:label-visible="true"
2626
:model-value="prenom"
27-
:readonly="!props.modifiable"
27+
:readonly="!props.modifiable || props.synthese"
2828
:is-valid="prenomMeta.valid"
2929
:error-message="prenomErrorMessage"
3030
placeholder=""
@@ -42,7 +42,7 @@
4242
label="Date de naissance"
4343
:label-visible="true"
4444
:model-value="dateNaissance"
45-
:readonly="!props.modifiable"
45+
:readonly="!props.modifiable || props.synthese"
4646
:is-valid="dateNaissanceMeta.valid"
4747
:error-message="dateNaissanceErrorMessage"
4848
hint=""
@@ -58,7 +58,7 @@
5858
label="Compétences"
5959
:label-visible="true"
6060
:model-value="competence"
61-
:readonly="!props.modifiable"
61+
:readonly="!props.modifiable || props.synthese"
6262
:is-textarea="true"
6363
:is-valid="competenceMeta.valid"
6464
:error-message="competenceErrorMessage"
@@ -75,7 +75,7 @@
7575
label="Fonction"
7676
:label-visible="true"
7777
:model-value="fonction"
78-
:readonly="!props.modifiable"
78+
:readonly="!props.modifiable || props.synthese"
7979
:is-valid="fonctionMeta.valid"
8080
:error-message="fonctionErrorMessage"
8181
placeholder=""
@@ -90,7 +90,7 @@
9090
label="Fonction"
9191
:options="informationsPersonnelListe.fonctionOptions"
9292
:values="listeFonction ?? []"
93-
:modifiable="props.modifiable"
93+
:modifiable="props.modifiable && !props.synthese"
9494
:is-valid="listeFonctionMeta.valid"
9595
:error-message="listeFonctionErrorMessage"
9696
@update="addListeFonction"
@@ -102,7 +102,7 @@
102102
<div class="fr-input-group fr-col-12">
103103
<AddressSearchAddress
104104
:initial-adress="props.personne.adresse?.label"
105-
:modifiable="props.modifiable"
105+
:modifiable="props.modifiable && !props.synthese"
106106
:value="adresse"
107107
:label="props.personne.adresse ? 'Nouvelle adresse' : 'Adresse'"
108108
:error-message="adresseErrorMessage"
@@ -119,7 +119,7 @@
119119
label="Téléphone"
120120
:label-visible="true"
121121
:model-value="telephone"
122-
:readonly="!props.modifiable"
122+
:readonly="!props.modifiable || props.synthese"
123123
:is-valid="telephoneMeta.valid"
124124
:error-message="telephoneErrorMessage"
125125
placeholder=""
@@ -137,7 +137,7 @@
137137
label="Adresse courriel"
138138
:label-visible="true"
139139
:model-value="email"
140-
:readonly="!props.modifiable"
140+
:readonly="!props.modifiable || props.synthese"
141141
:is-valid="emailMeta.valid"
142142
:error-message="emailErrorMessage"
143143
placeholder=""
@@ -179,6 +179,7 @@ const props = defineProps({
179179
showTelephone: { type: Boolean, default: false, required: false },
180180
showButton: { type: Boolean, default: true, required: false },
181181
validateOnMount: { type: Boolean, default: false },
182+
synthese: { type: Boolean, default: false },
182183
});
183184
184185
const emit = defineEmits(["valid", "update:personne"]);

packages/frontend-usagers/src/utils/informationsPersonnel.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ const schema = (statut) => {
4848
showEmail: false,
4949
showListeFonction: true,
5050
showTelephone: true,
51+
showAttestation: true,
5152
}),
5253
),
5354
)
@@ -67,6 +68,7 @@ const schema = (statut) => {
6768
showEmail: false,
6869
showListeFonction: true,
6970
showTelephone: true,
71+
showAttestation: true,
7072
}),
7173
),
7274
)

0 commit comments

Comments
 (0)