feat: Gestion des documents parent

This commit is contained in:
N3WT DE COMPET
2025-04-17 19:06:28 +02:00
parent 7564865d8f
commit 59aee80c2e
15 changed files with 402 additions and 206 deletions

View File

@ -29,7 +29,9 @@ import {
import {
fetchRegistrationSchoolFileMasters,
createRegistrationTemplates,
fetchRegistrationParentFileMasters,
createRegistrationSchoolFileTemplate,
createRegistrationParentFileTemplate,
fetchRegistrationFileGroups,
cloneTemplate
} from "@/app/actions/registerFileGroupAction";
@ -73,6 +75,7 @@ export default function Page({ params: { locale } }) {
const [itemsPerPage, setItemsPerPage] = useState(10); // Définir le nombre d'éléments par page
const [schoolFileMasters, setSchoolFileMasters] = useState([]);
const [parentFileMasters, setParentFileMasters] = useState([]);
const [isOpen, setIsOpen] = useState(false);
const [isOpenAffectationClasse, setIsOpenAffectationClasse] = useState(false);
const [student, setStudent] = useState('');
@ -220,6 +223,13 @@ useEffect(() => {
.catch(err => {
logger.debug(err.message);
}),
fetchRegistrationParentFileMasters()
.then(data => {
setParentFileMasters(data);
})
.catch(err => {
logger.debug(err.message);
}),
fetchRegistrationDiscounts(selectedEstablishmentId)
.then(data => {
setRegistrationDiscounts(data);
@ -462,6 +472,7 @@ useEffect(()=>{
.then(data => {
// Cloner les schoolFileTemplates pour chaque templateMaster du fileGroup
const masters = schoolFileMasters.filter(file => file.groups.includes(selectedFileGroup));
const parent_masters = parentFileMasters.filter(file => file.groups.includes(selectedFileGroup));
const clonePromises = masters.map((templateMaster, index) => {
return cloneTemplate(templateMaster.id, updatedData.guardianEmail, templateMaster.is_required)
.then(clonedDocument => {
@ -474,7 +485,7 @@ useEffect(()=>{
registration_form: data.student.id
};
return createRegistrationTemplates(cloneData, csrfToken)
return createRegistrationSchoolFileTemplate(cloneData, csrfToken)
.then(response => {
logger.debug('Template enregistré avec succès:', response);
})
@ -487,6 +498,22 @@ useEffect(()=>{
});
});
// Créer les parentFileTemplates pour chaque parentMaster
const parentClonePromises = parent_masters.map((parentMaster, index) => {
const parentTemplateData = {
master: parentMaster.id,
registration_form: data.student.id
};
return createRegistrationParentFileTemplate(parentTemplateData, csrfToken)
.then(response => {
logger.debug('Parent template enregistré avec succès:', response);
})
.catch(error => {
logger.error('Erreur lors de l\'enregistrement du parent template:', error);
});
});
// Attendre que tous les clones soient créés
Promise.all(clonePromises)
.then(() => {