);
-}
\ No newline at end of file
+}
diff --git a/Front-End/src/components/CheckBox.js b/Front-End/src/components/CheckBox.js
index dfe8bec..a821482 100644
--- a/Front-End/src/components/CheckBox.js
+++ b/Front-End/src/components/CheckBox.js
@@ -8,6 +8,7 @@ const CheckBox = ({
itemLabelFunc = () => null,
horizontal,
}) => {
+ console.log(formData);
const isChecked = formData[fieldName].includes(parseInt(item.id));
return (
{
- // Vérifier si tous les parentFileTemplates ont leur champ "file" différent de null
- const allUploaded = parentFileTemplates.every(
- (template) => template.file !== null
- );
+ // Vérifier si tous les documents avec is_required = true ont leur champ "file" différent de null
+ const allRequiredUploaded = parentFileTemplates
+ .filter((template) => template.is_required) // Ne garder que les documents requis
+ .every((template) => template.file !== null); // Vérifier que chaque fichier requis est uploadé
// Mettre à jour isPage6Valid en fonction de cette condition
- setIsPage6Valid(allUploaded);
+ setIsPage6Valid(allRequiredUploaded);
+ console.log(allRequiredUploaded);
}, [parentFileTemplates]);
const handleTemplateSigned = (index) => {
@@ -659,8 +660,7 @@ export default function InscriptionFormShared({
(currentPage === 2 && !isPage2Valid) ||
(currentPage === 3 && !isPage3Valid) ||
(currentPage === 4 && !isPage4Valid) ||
- (currentPage === 5 && !isPage5Valid) ||
- (currentPage === 6 && !isPage6Valid)
+ (currentPage === 5 && !isPage5Valid)
? 'bg-gray-300 text-gray-700 cursor-not-allowed'
: 'bg-emerald-500 text-white hover:bg-emerald-600'
}`}
@@ -669,8 +669,7 @@ export default function InscriptionFormShared({
(currentPage === 2 && !isPage2Valid) ||
(currentPage === 3 && !isPage3Valid) ||
(currentPage === 4 && !isPage4Valid) ||
- (currentPage === 5 && !isPage5Valid) ||
- (currentPage === 6 && !isPage6Valid)
+ (currentPage === 5 && !isPage5Valid)
}
primary
name="Next"
@@ -682,7 +681,12 @@ export default function InscriptionFormShared({
e.preventDefault();
handleSubmit(e);
}}
- className="px-4 py-2 bg-emerald-500 text-white rounded-md shadow-sm hover:bg-emerald-600 focus:outline-none"
+ className={`px-4 py-2 rounded-md shadow-sm focus:outline-none ${
+ currentPage === 6 && !isPage6Valid
+ ? 'bg-gray-300 text-gray-700 cursor-not-allowed'
+ : 'bg-emerald-500 text-white hover:bg-emerald-600'
+ }`}
+ disabled={currentPage === 6 && !isPage6Valid}
primary
/>
)}
diff --git a/Front-End/src/components/Structure/Files/ParentFilesSection.js b/Front-End/src/components/Structure/Files/ParentFilesSection.js
index ba60bb3..764eee4 100644
--- a/Front-End/src/components/Structure/Files/ParentFilesSection.js
+++ b/Front-End/src/components/Structure/Files/ParentFilesSection.js
@@ -8,6 +8,7 @@ import logger from '@/utils/logger';
import { createRegistrationParentFileTemplate } from '@/app/actions/registerFileGroupAction';
import { useCsrfToken } from '@/context/CsrfContext';
import SectionHeader from '@/components/SectionHeader';
+import ToggleSwitch from '@/components/ToggleSwitch';
export default function ParentFilesSection({
parentFiles,
@@ -32,7 +33,7 @@ export default function ParentFilesSection({
const handleAddEmptyRequiredDocument = () => {
setEditingDocumentId('new');
- setFormData({ name: '', description: '', groups: [] });
+ setFormData({ name: '', description: '', groups: [], is_required: false }); // Add is_required
setSelectedGroups([]); // Réinitialiser les groupes sélectionnés
};
@@ -58,7 +59,6 @@ export default function ParentFilesSection({
"Attention !\nVeuillez sélectionner au moins un dossier d'inscription pour valider l'opération"
);
setPopupVisible(true);
- setPopupVisible(true);
return;
}
@@ -73,13 +73,12 @@ export default function ParentFilesSection({
setFormData(null);
setSelectedGroups([]);
- guardianDetails.forEach((guardian, index) => {
+ guardianDetails.forEach((guardian) => {
// Création des templates
const data = {
master: createdDocument?.id,
registration_form: guardian.registration_form,
};
- console.log(guardian);
createRegistrationParentFileTemplate(data, csrfToken)
.then((response) => {
logger.debug('Template enregistré avec succès:', response);
@@ -178,6 +177,22 @@ export default function ParentFilesSection({
errorMsg={null}
/>
);
+ case 'Obligatoire':
+ return (
+
+ {
+ const { checked } = e.target; // Récupère l'état du toggle
+ setFormData((prevData) => ({
+ ...prevData,
+ is_required: checked, // Met à jour directement le champ is_required
+ }));
+ }}
+ />
+
+ );
case 'Actions':
return (
@@ -218,6 +233,18 @@ export default function ParentFilesSection({
.join(', ')}
);
+ case 'Obligatoire':
+ return (
+
+ {document.is_required ? 'Oui' : 'Non'}
+
+ );
case 'Actions':
return (
@@ -283,6 +310,10 @@ export default function ParentFilesSection({
transform: (row) =>
renderRequiredDocumentCell(row, "Dossiers d'inscription"),
},
+ {
+ name: 'Obligatoire',
+ transform: (row) => renderRequiredDocumentCell(row, 'Obligatoire'),
+ },
{
name: 'Actions',
transform: (row) => renderRequiredDocumentCell(row, 'Actions'),