refactor: Document Ecole/Parent

This commit is contained in:
N3WT DE COMPET
2025-04-17 16:20:48 +02:00
parent a65bd47905
commit 7564865d8f
17 changed files with 280 additions and 357 deletions

View File

@ -25,7 +25,7 @@ import {
import { fetchProfileRoles, fetchProfiles } from '@/app/actions/authAction';
import SidebarTabs from '@/components/SidebarTabs';
import FilesGroupsManagement from '@/components/Structure/Files/FilesGroupsManagement';
import { fetchRegistrationTemplateMaster } from "@/app/actions/registerFileGroupAction";
import { fetchRegistrationSchoolFileMasters } from "@/app/actions/registerFileGroupAction";
import logger from '@/utils/logger';
import { useEstablishment } from '@/context/EstablishmentContext';
@ -74,8 +74,8 @@ export default function Page() {
// Fetch data for tuition fees
handleTuitionFees();
// Fetch data for registration file templates
fetchRegistrationTemplateMaster()
// Fetch data for registration file schoolFileTemplates
fetchRegistrationSchoolFileMasters()
.then((data)=> {
setFichiers(data)
})

View File

@ -28,7 +28,7 @@ import {
editRegisterForm } from "@/app/actions/subscriptionAction"
import {
fetchRegistrationTemplateMaster,
fetchRegistrationSchoolFileMasters,
createRegistrationTemplates,
fetchRegistrationFileGroups,
cloneTemplate
@ -72,7 +72,7 @@ export default function Page({ params: { locale } }) {
const [totalArchives, setTotalArchives] = useState(0);
const [itemsPerPage, setItemsPerPage] = useState(10); // Définir le nombre d'éléments par page
const [templateMasters, setTemplateMasters] = useState([]);
const [schoolFileMasters, setSchoolFileMasters] = useState([]);
const [isOpen, setIsOpen] = useState(false);
const [isOpenAffectationClasse, setIsOpenAffectationClasse] = useState(false);
const [student, setStudent] = useState('');
@ -213,9 +213,9 @@ useEffect(() => {
fetchRegisterForms(selectedEstablishmentId, ARCHIVED)
.then(registerFormArchivedDataHandler)
.catch(requestErrorHandler),
fetchRegistrationTemplateMaster()
fetchRegistrationSchoolFileMasters()
.then(data => {
setTemplateMasters(data);
setSchoolFileMasters(data);
})
.catch(err => {
logger.debug(err.message);
@ -284,8 +284,8 @@ useEffect(() => {
fetchRegisterForms(selectedEstablishmentId, ARCHIVED)
.then(registerFormArchivedDataHandler)
.catch(requestErrorHandler)
fetchRegistrationTemplateMaster()
.then((data)=> {setTemplateMasters(data)})
fetchRegistrationSchoolFileMasters()
.then((data)=> {setSchoolFileMasters(data)})
.catch((err)=>{ err = err.message; logger.debug(err);});
setIsLoading(false);
@ -460,12 +460,12 @@ useEffect(()=>{
createRegisterForm(data, csrfToken)
.then(data => {
// Cloner les templates pour chaque templateMaster du fileGroup
const masters = templateMasters.filter(file => file.groups.includes(selectedFileGroup));
// Cloner les schoolFileTemplates pour chaque templateMaster du fileGroup
const masters = schoolFileMasters.filter(file => file.groups.includes(selectedFileGroup));
const clonePromises = masters.map((templateMaster, index) => {
return cloneTemplate(templateMaster.id, updatedData.guardianEmail, templateMaster.is_required)
.then(clonedDocument => {
// Sauvegarde des templates clonés dans la base de données
// Sauvegarde des schoolFileTemplates clonés dans la base de données
const cloneData = {
name: `${templateMaster.name}_${updatedData.guardianFirstName}_${updatedData.guardianLastName}`,
slug: clonedDocument.slug,

View File

@ -1,7 +1,7 @@
import { BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL,
BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL,
BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL,
BE_SUBSCRIPTION_REGISTRATION_PARENT_FILES_URL,
BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_TEMPLATES_URL,
BE_SUBSCRIPTION_REGISTRATIONSCHOOL_FILE_MASTERS_URL,
BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_MASTERS_URL,
FE_API_DOCUSEAL_CLONE_URL,
FE_API_DOCUSEAL_DOWNLOAD_URL,
FE_API_DOCUSEAL_GENERATE_TOKEN
@ -80,7 +80,7 @@ export const editRegistrationFileGroup = async (groupId, groupData, csrfToken) =
};
export const fetchRegistrationFileFromGroup = async (groupId) => {
const response = await fetch(`${BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL}/${groupId}/templates`, {
const response = await fetch(`${BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL}/${groupId}/schoolFileTemplates`, {
credentials: 'include',
headers: {
'Accept': 'application/json',
@ -92,10 +92,10 @@ export const fetchRegistrationFileFromGroup = async (groupId) => {
return response.json();
}
export const fetchRegistrationParentFiles = (id = null) => {
let url = `${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILES_URL}`
export const fetchRegistrationParentFileMasters = (id = null) => {
let url = `${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_MASTERS_URL}`
if (id) {
url = `${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILES_URL}/${id}`;
url = `${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_MASTERS_URL}/${id}`;
}
const request = new Request(
`${url}`,
@ -109,9 +109,9 @@ export const fetchRegistrationParentFiles = (id = null) => {
return fetch(request).then(requestResponseHandler)
};
export const createRegistrationParentFiles = (data,csrfToken) => {
export const createRegistrationParentFileMaster = (data,csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILES_URL}`, {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_MASTERS_URL}`, {
method: 'POST',
body: JSON.stringify(data),
headers: {
@ -123,8 +123,8 @@ export const createRegistrationParentFiles = (data,csrfToken) => {
.then(requestResponseHandler)
}
export const editRegistrationParentFiles = (id, data, csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILES_URL}/${id}`, {
export const editRegistrationParentFileMaster = (id, data, csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_MASTERS_URL}/${id}`, {
method: 'PUT',
body: JSON.stringify(data),
headers: {
@ -136,8 +136,8 @@ export const editRegistrationParentFiles = (id, data, csrfToken) => {
.then(requestResponseHandler)
}
export const deleteRegistrationParentFiles = (id, csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILES_URL}/${id}`, {
export const deleteRegistrationParentFileMaster = (id, csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_MASTERS_URL}/${id}`, {
method: 'DELETE',
headers: {
'X-CSRFToken': csrfToken,
@ -146,10 +146,10 @@ export const deleteRegistrationParentFiles = (id, csrfToken) => {
})
}
export const fetchRegistrationTemplates = (id = null) => {
let url = `${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}`
export const fetchRegistrationSchoolFileTemplates = (id = null) => {
let url = `${BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_TEMPLATES_URL}`
if (id) {
url = `${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}/${id}`;
url = `${BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_TEMPLATES_URL}/${id}`;
}
const request = new Request(
`${url}`,
@ -164,7 +164,7 @@ export const fetchRegistrationTemplates = (id = null) => {
};
export const editRegistrationTemplates = (fileId, data, csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}/${fileId}`, {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_TEMPLATES_URL}/${fileId}`, {
method: 'PUT',
body: data,
headers: {
@ -177,7 +177,7 @@ export const editRegistrationTemplates = (fileId, data, csrfToken) => {
export const createRegistrationTemplates = (data,csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}`, {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_TEMPLATES_URL}`, {
method: 'POST',
body: JSON.stringify(data),
headers: {
@ -190,7 +190,7 @@ export const createRegistrationTemplates = (data,csrfToken) => {
}
export const deleteRegistrationTemplates = (fileId,csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL}/${fileId}`, {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_TEMPLATES_URL}/${fileId}`, {
method: 'DELETE',
headers: {
'X-CSRFToken': csrfToken,
@ -199,10 +199,10 @@ export const deleteRegistrationTemplates = (fileId,csrfToken) => {
})
}
export const fetchRegistrationTemplateMaster = (id = null) => {
let url = `${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}`;
export const fetchRegistrationSchoolFileMasters = (id = null) => {
let url = `${BE_SUBSCRIPTION_REGISTRATIONSCHOOL_FILE_MASTERS_URL}`;
if(id){
url = `${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}/${id}`;
url = `${BE_SUBSCRIPTION_REGISTRATIONSCHOOL_FILE_MASTERS_URL}/${id}`;
}
const request = new Request(
`${url}`,
@ -216,9 +216,9 @@ export const fetchRegistrationTemplateMaster = (id = null) => {
return fetch(request).then(requestResponseHandler)
};
export const createRegistrationTemplateMaster = (data,csrfToken) => {
export const createRegistrationSchoolFileMaster = (data,csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}`, {
return fetch(`${BE_SUBSCRIPTION_REGISTRATIONSCHOOL_FILE_MASTERS_URL}`, {
method: 'POST',
body: JSON.stringify(data),
headers: {
@ -230,8 +230,8 @@ export const createRegistrationTemplateMaster = (data,csrfToken) => {
.then(requestResponseHandler)
}
export const deleteRegistrationTemplateMaster = (fileId,csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}/${fileId}`, {
export const deleteRegistrationSchoolFileMaster = (fileId,csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATIONSCHOOL_FILE_MASTERS_URL}/${fileId}`, {
method: 'DELETE',
headers: {
'X-CSRFToken': csrfToken,
@ -240,8 +240,8 @@ export const deleteRegistrationTemplateMaster = (fileId,csrfToken) => {
})
}
export const editRegistrationTemplateMaster = (fileId, data, csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL}/${fileId}`, {
export const editRegistrationSchoolFileMaster = (fileId, data, csrfToken) => {
return fetch(`${BE_SUBSCRIPTION_REGISTRATIONSCHOOL_FILE_MASTERS_URL}/${fileId}`, {
method: 'PUT',
body: JSON.stringify(data),
headers: {

View File

@ -151,8 +151,8 @@ export async function getRegisterFormFileTemplate(fileId) {
return response.json();
}
export const fetchTemplatesFromRegistrationFiles = async (id) => {
const response = await fetch(`${BE_SUBSCRIPTION_REGISTERFORMS_URL}/${id}/templates`, {
export const fetchSchoolFileTemplatesFromRegistrationFiles = async (id) => {
const response = await fetch(`${BE_SUBSCRIPTION_REGISTERFORMS_URL}/${id}/school_file_templates`, {
credentials: 'include',
headers: {
'Accept': 'application/json',

View File

@ -3,7 +3,7 @@ import React, { useState, useEffect } from 'react';
import Loader from '@/components/Loader';
import Button from '@/components/Button';
import DjangoCSRFToken from '@/components/DjangoCSRFToken';
import { fetchRegisterForm, fetchTemplatesFromRegistrationFiles } from '@/app/actions/subscriptionAction';
import { fetchRegisterForm, fetchSchoolFileTemplatesFromRegistrationFiles } from '@/app/actions/subscriptionAction';
import { downloadTemplate,
createRegistrationTemplates,
editRegistrationTemplates,
@ -112,7 +112,7 @@ export default function InscriptionFormShared({
}, [studentId]);
useEffect(() => {
fetchTemplatesFromRegistrationFiles(studentId).then((data) => {
fetchSchoolFileTemplatesFromRegistrationFiles(studentId).then((data) => {
setFileTemplates(data);
})
}, []);
@ -341,7 +341,7 @@ export default function InscriptionFormShared({
</div>
{/* Affichage du formulaire ou du document */}
{requiredFileTemplates[currentPage - 2].file === "" ? (
{requiredFileTemplates[currentPage - 2].file === null ? (
<DocusealForm
id="docusealForm"
src={"https://docuseal.com/s/" + requiredFileTemplates[currentPage - 2].slug}
@ -350,7 +350,7 @@ export default function InscriptionFormShared({
downloadTemplate(requiredFileTemplates[currentPage - 2].slug)
.then((data) => fetch(data))
.then((response) => response.blob())
.then((blob) => {
.then((blob) => {
const file = new File([blob], `${requiredFileTemplates[currentPage - 2].name}.pdf`, { type: blob.type });
const updateData = new FormData();
updateData.append('file', file);

View File

@ -102,7 +102,7 @@ export default function FileUploadDocuSeal({ handleCreateTemplateMaster, handleE
logger.debug('creation du clone avec required : ', is_required)
cloneTemplate(templateMaster?.id, guardian.email, is_required)
.then(clonedDocument => {
// Sauvegarde des templates clonés dans la base de données
// Sauvegarde des schoolFileTemplates clonés dans la base de données
const data = {
name: `${uploadedFileName}_${guardian.first_name}_${guardian.last_name}`,
slug: clonedDocument.slug,

View File

@ -5,27 +5,32 @@ import Table from '@/components/Table';
import FileUploadDocuSeal from '@/components/Structure/Files/FileUploadDocuSeal';
import { BASE_URL } from '@/utils/Url';
import {
// GET
fetchRegistrationFileGroups,
fetchRegistrationSchoolFileMasters,
fetchRegistrationSchoolFileTemplates,
fetchRegistrationParentFileMasters,
// POST
createRegistrationFileGroup,
deleteRegistrationFileGroup,
createRegistrationSchoolFileMaster,
createRegistrationParentFileMaster,
// PUT
editRegistrationFileGroup,
fetchRegistrationTemplateMaster,
createRegistrationTemplateMaster,
editRegistrationTemplateMaster,
deleteRegistrationTemplateMaster,
fetchRegistrationTemplates,
fetchRegistrationParentFiles,
createRegistrationParentFiles,
editRegistrationParentFiles,
deleteRegistrationParentFiles
editRegistrationSchoolFileMaster,
editRegistrationParentFileMaster,
// DELETE
deleteRegistrationFileGroup,
deleteRegistrationSchoolFileMaster,
deleteRegistrationParentFileMaster,
} from '@/app/actions/registerFileGroupAction';
import RegistrationFileGroupForm from '@/components/Structure/Files/RegistrationFileGroupForm';
import logger from '@/utils/logger';
import ParentFilesSection from '@/components/Structure/Files/ParentFilesSection';
export default function FilesGroupsManagement({ csrfToken, selectedEstablishmentId }) {
const [templateMasters, setTemplateMasters] = useState([]);
const [templates, setTemplates] = useState([]);
const [schoolFileMasters, setSchoolFileMasters] = useState([]);
const [schoolFileTemplates, setSchoolFileTemplates] = useState([]);
const [parentFiles, setParentFileMasters] = useState([]);
const [groups, setGroups] = useState([]);
const [selectedGroup, setSelectedGroup] = useState(null);
const [isModalOpen, setIsModalOpen] = useState(false);
@ -37,8 +42,6 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
const [editingDocumentId, setEditingDocumentId] = useState(null);
const [formData, setFormData] = useState({});
const [parentFiles, setParentFiles] = useState([]);
const handleReloadTemplates = () => {
setReloadTemplates(true);
}
@ -54,17 +57,17 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
useEffect(() => {
if (selectedEstablishmentId) {
Promise.all([
fetchRegistrationTemplateMaster(),
fetchRegistrationSchoolFileMasters(),
fetchRegistrationFileGroups(selectedEstablishmentId),
fetchRegistrationTemplates(),
fetchRegistrationParentFiles()
]).then(([filesTemplateMasters, groupsData, filesTemplates, filesParentFiles]) => {
fetchRegistrationSchoolFileTemplates(),
fetchRegistrationParentFileMasters()
]).then(([dataSchoolFileMasters, groupsData, dataSchoolFileTemplates, dataParentFileMasters]) => {
setGroups(groupsData);
setTemplates(filesTemplates);
setParentFiles(filesParentFiles);
setSchoolFileTemplates(dataSchoolFileTemplates);
setParentFileMasters(dataParentFileMasters);
// Transformer chaque fichier pour inclure les informations complètes du groupe
const transformedFiles = filesTemplateMasters.map(file => transformFileData(file, groupsData));
setTemplateMasters(transformedFiles);
const transformedFiles = dataSchoolFileMasters.map(file => transformFileData(file, groupsData));
setSchoolFileMasters(transformedFiles);
}).catch(err => {
console.log(err.message);
}).finally(() => {
@ -75,7 +78,7 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
const deleteTemplateMaster = (templateMaster) => {
// Supprimer les clones associés via l'API DocuSeal
const removeClonesPromises = templates
const removeClonesPromises = schoolFileTemplates
.filter(template => template.master === templateMaster.id)
.map(template => removeTemplate(template.id));
@ -90,10 +93,10 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
logger.debug('Master et clones supprimés avec succès de DocuSeal.');
// Supprimer le template master de la base de données
deleteRegistrationTemplateMaster(templateMaster.id, csrfToken)
deleteRegistrationSchoolFileMaster(templateMaster.id, csrfToken)
.then(response => {
if (response.ok) {
setTemplateMasters(templateMasters.filter(fichier => fichier.id !== templateMaster.id));
setSchoolFileMasters(schoolFileMasters.filter(fichier => fichier.id !== templateMaster.id));
alert('Fichier supprimé avec succès.');
} else {
alert('Erreur lors de la suppression du fichier dans la base de données.');
@ -151,11 +154,11 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
};
logger.debug(data);
createRegistrationTemplateMaster(data, csrfToken)
createRegistrationSchoolFileMaster(data, csrfToken)
.then(data => {
// Transformer le nouveau fichier avec les informations du groupe
const transformedFile = transformFileData(data, groups);
setTemplateMasters(prevFiles => [...prevFiles, transformedFile]);
setSchoolFileMasters(prevFiles => [...prevFiles, transformedFile]);
setIsModalOpen(false);
})
.catch(error => {
@ -172,11 +175,11 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
};
logger.debug(data);
editRegistrationTemplateMaster(id, data, csrfToken)
editRegistrationSchoolFileMaster(id, data, csrfToken)
.then(data => {
// Transformer le fichier mis à jour avec les informations du groupe
const transformedFile = transformFileData(data, groups);
setTemplateMasters(prevFichiers =>
setSchoolFileMasters(prevFichiers =>
prevFichiers.map(f => f.id === id ? transformedFile : f)
);
setIsModalOpen(false);
@ -224,10 +227,10 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
};
const handleGroupDelete = (groupId) => {
// Vérifier si des templateMasters utilisent ce groupe
const filesInGroup = templateMasters.filter(file => file.group && file.group.id === groupId);
// Vérifier si des schoolFileMasters utilisent ce groupe
const filesInGroup = schoolFileMasters.filter(file => file.group && file.group.id === groupId);
if (filesInGroup.length > 0) {
alert('Impossible de supprimer ce groupe car il contient des templateMasters. Veuillez d\'abord retirer tous les templateMasters de ce groupe.');
alert('Impossible de supprimer ce groupe car il contient des schoolFileMasters. Veuillez d\'abord retirer tous les schoolFileMasters de ce groupe.');
return;
}
@ -329,10 +332,10 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
};
const handleCreate = (newParentFile) => {
return createRegistrationParentFiles(newParentFile, csrfToken)
return createRegistrationParentFileMaster(newParentFile, csrfToken)
.then((createdFile) => {
// Ajouter le nouveau fichier parent à la liste existante
setParentFiles((prevFiles) => [...prevFiles, createdFile]);
setParentFileMasters((prevFiles) => [...prevFiles, createdFile]);
logger.debug('Document parent créé avec succès:', createdFile);
})
.catch((error) => {
@ -342,11 +345,11 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
};
const handleEdit = (id, updatedFile) => {
return editRegistrationParentFiles(id, updatedFile, csrfToken)
return editRegistrationParentFileMaster(id, updatedFile, csrfToken)
.then((response) => {
const modifiedFile = response.data; // Extraire les données mises à jour
// Mettre à jour la liste des fichiers parents
setParentFiles((prevFiles) =>
setParentFileMasters((prevFiles) =>
prevFiles.map((file) => (file.id === id ? modifiedFile : file))
);
logger.debug('Document parent mis à jour avec succès:', modifiedFile);
@ -360,10 +363,10 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
};
const handleDelete = (id) => {
return deleteRegistrationParentFiles(id, csrfToken)
return deleteRegistrationParentFileMaster(id, csrfToken)
.then(() => {
// Mettre à jour la liste des fichiers parents en supprimant l'élément correspondant
setParentFiles((prevFiles) => prevFiles.filter((file) => file.id !== id));
setParentFileMasters((prevFiles) => prevFiles.filter((file) => file.id !== id));
logger.debug('Document parent supprimé avec succès:', id);
})
.catch((error) => {
@ -371,7 +374,7 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
});
};
const filteredFiles = templateMasters.filter(file => {
const filteredFiles = schoolFileMasters.filter(file => {
if (!selectedGroup) return true;
return file.groups && file.groups.some(group => group.id === parseInt(selectedGroup));
});
@ -444,7 +447,7 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
<Modal
isOpen={isGroupModalOpen}
setIsOpen={setIsGroupModalOpen}
title={groupToEdit ? 'Modifier le groupe' : 'Ajouter un groupe de templateMasters'}
title={groupToEdit ? 'Modifier le groupe' : 'Ajouter un groupe de schoolFileMasters'}
ContentComponent={() => (
<RegistrationFileGroupForm
onSubmit={handleGroupSubmit}
@ -513,7 +516,7 @@ export default function FilesGroupsManagement({ csrfToken, selectedEstablishment
{/* Section Pièces à fournir */}
<ParentFilesSection
parentFiles={parentFiles}
setParentFiles={setParentFiles}
setParentFileMasters={setParentFileMasters}
groups={groups}
handleCreate={handleCreate}
handleEdit={handleEdit}

View File

@ -26,10 +26,10 @@ export const BE_AUTH_INFO_SESSION = `${BASE_URL}/Auth/infoSession`
export const BE_SUBSCRIPTION_STUDENTS_URL = `${BASE_URL}/Subscriptions/students` // Récupère la liste des élèves inscrits ou en cours d'inscriptions
export const BE_SUBSCRIPTION_CHILDRENS_URL = `${BASE_URL}/Subscriptions/children` // Récupère la liste des élèves d'un profil
export const BE_SUBSCRIPTION_REGISTERFORMS_URL = `${BASE_URL}/Subscriptions/registerForms`
export const BE_SUBSCRIPTION_REGISTRATION_TEMPLATE_MASTER_URL = `${BASE_URL}/Subscriptions/registrationTemplateMasters`
export const BE_SUBSCRIPTION_REGISTRATION_TEMPLATES_URL = `${BASE_URL}/Subscriptions/registrationTemplates`
export const BE_SUBSCRIPTION_REGISTRATIONSCHOOL_FILE_MASTERS_URL = `${BASE_URL}/Subscriptions/registrationSchoolFileMasters`
export const BE_SUBSCRIPTION_REGISTRATION_SCHOOL_FILE_TEMPLATES_URL = `${BASE_URL}/Subscriptions/registrationSchoolFileTemplates`
export const BE_SUBSCRIPTION_REGISTRATIONFILE_GROUPS_URL = `${BASE_URL}/Subscriptions/registrationFileGroups`
export const BE_SUBSCRIPTION_REGISTRATION_PARENT_FILES_URL = `${BASE_URL}/Subscriptions/registrationParentFiles`
export const BE_SUBSCRIPTION_REGISTRATION_PARENT_FILE_MASTERS_URL = `${BASE_URL}/Subscriptions/registrationParentFileMasters`
export const BE_SUBSCRIPTION_LAST_GUARDIAN_ID_URL = `${BASE_URL}/Subscriptions/lastGuardianId`