fix: Ajout d'un champ is_required pour les documents parents facultatifs

This commit is contained in:
N3WT DE COMPET
2025-05-09 09:38:47 +02:00
parent 6d805940fe
commit 5866427544
9 changed files with 61 additions and 21 deletions

View File

@ -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 (
<div className="flex justify-center items-center">
<ToggleSwitch
name="is_required"
checked={formData.is_required} // Utilise la valeur booléenne de is_required
onChange={(e) => {
const { checked } = e.target; // Récupère l'état du toggle
setFormData((prevData) => ({
...prevData,
is_required: checked, // Met à jour directement le champ is_required
}));
}}
/>
</div>
);
case 'Actions':
return (
<div className="flex justify-center space-x-2">
@ -218,6 +233,18 @@ export default function ParentFilesSection({
.join(', ')}
</span>
);
case 'Obligatoire':
return (
<span
className={`px-3 py-1 rounded-full text-sm font-semibold ${
document.is_required
? 'bg-green-100 text-green-600'
: 'bg-gray-100 text-gray-600'
}`}
>
{document.is_required ? 'Oui' : 'Non'}
</span>
);
case 'Actions':
return (
<div className="flex justify-center space-x-2">
@ -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'),