fix: Gestion des listes d'inscription "vides" [#1]

This commit is contained in:
N3WT DE COMPET
2024-11-24 10:24:09 +01:00
parent 81d1dfa9a7
commit edc97242f2

View File

@ -23,7 +23,8 @@ import { BK_GESTIONINSCRIPTION_FICHESINSCRIPTION_URL,
FR_ADMIN_STUDENT_EDIT_SUBSCRIBE, FR_ADMIN_STUDENT_EDIT_SUBSCRIBE,
BK_GESTIONINSCRIPTION_ARCHIVE_URL, BK_GESTIONINSCRIPTION_ARCHIVE_URL,
BK_GESTIONINSCRIPTION_CLASSES_URL, BK_GESTIONINSCRIPTION_CLASSES_URL,
BK_GESTIONINSCRIPTION_FICHEINSCRIPTION_URL } from '@/utils/Url'; BK_GESTIONINSCRIPTION_FICHEINSCRIPTION_URL,
BK_GESTIONINSCRIPTION_ELEVES_URL } from '@/utils/Url';
import DjangoCSRFToken from '@/components/DjangoCSRFToken' import DjangoCSRFToken from '@/components/DjangoCSRFToken'
import useCsrfToken from '@/hooks/useCsrfToken'; import useCsrfToken from '@/hooks/useCsrfToken';
@ -34,7 +35,7 @@ export default function Page({ params: { locale } }) {
const t = useTranslations('students'); const t = useTranslations('students');
const [ficheInscriptions, setFicheInscriptions] = useState([]); const [ficheInscriptions, setFicheInscriptions] = useState([]);
const [fichesInscriptionsDataEnCours, setFichesInscriptionsDataEnCours] = useState([]); const [fichesInscriptionsDataEnCours, setFichesInscriptionsDataEnCours] = useState([]);
const [fichesInscriptionsDataInscrits, setichesInscriptionsDataInscrits] = useState([]); const [fichesInscriptionsDataInscrits, setFichesInscriptionsDataInscrits] = useState([]);
const [fichesInscriptionsDataArchivees, setFichesInscriptionsDataArchivees] = useState([]); const [fichesInscriptionsDataArchivees, setFichesInscriptionsDataArchivees] = useState([]);
// const [filter, setFilter] = useState('*'); // const [filter, setFilter] = useState('*');
const [searchTerm, setSearchTerm] = useState(''); const [searchTerm, setSearchTerm] = useState('');
@ -55,6 +56,7 @@ export default function Page({ params: { locale } }) {
const [isOpenAffectationClasse, setIsOpenAffectationClasse] = useState(false); const [isOpenAffectationClasse, setIsOpenAffectationClasse] = useState(false);
const [eleve, setEleve] = useState(''); const [eleve, setEleve] = useState('');
const [classes, setClasses] = useState([]); const [classes, setClasses] = useState([]);
const [eleves, setEleves] = useState([]);
const csrfToken = useCsrfToken(); const csrfToken = useCsrfToken();
@ -78,7 +80,9 @@ export default function Page({ params: { locale } }) {
setIsLoading(false); setIsLoading(false);
if (data) { if (data) {
const { fichesInscriptions, count } = data; const { fichesInscriptions, count } = data;
if (ficheInscriptions) {
setFichesInscriptionsDataEnCours(fichesInscriptions); setFichesInscriptionsDataEnCours(fichesInscriptions);
}
const calculatedTotalPages = Math.ceil(count / pageSize); const calculatedTotalPages = Math.ceil(count / pageSize);
setTotalPending(count); setTotalPending(count);
setTotalPages(calculatedTotalPages); setTotalPages(calculatedTotalPages);
@ -102,7 +106,9 @@ export default function Page({ params: { locale } }) {
if (data) { if (data) {
const { fichesInscriptions, count } = data; const { fichesInscriptions, count } = data;
setTotalSubscribed(count); setTotalSubscribed(count);
setichesInscriptionsDataInscrits(fichesInscriptions); if (fichesInscriptions) {
setFichesInscriptionsDataInscrits(fichesInscriptions);
}
} }
console.log('Success SUBSCRIBED:', data); console.log('Success SUBSCRIBED:', data);
}) })
@ -123,8 +129,10 @@ export default function Page({ params: { locale } }) {
if (data) { if (data) {
const { fichesInscriptions, count } = data; const { fichesInscriptions, count } = data;
setTotalArchives(count); setTotalArchives(count);
if (fichesInscriptions) {
setFichesInscriptionsDataArchivees(fichesInscriptions); setFichesInscriptionsDataArchivees(fichesInscriptions);
} }
}
console.log('Success ARCHIVED:', data); console.log('Success ARCHIVED:', data);
}) })
.catch(error => { .catch(error => {
@ -138,15 +146,38 @@ export default function Page({ params: { locale } }) {
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
setClasses(data); setClasses(data);
console.log("classes : ", data) console.log("Success CLASSES : ", data)
}) })
.catch(error => { .catch(error => {
console.error('Error fetching classes:', error); console.error('Error fetching classes:', error);
}); });
}; };
const fetchStudents = () => {
const request = new Request(
`${BK_GESTIONINSCRIPTION_ELEVES_URL}`,
{
method:'GET',
headers: {
'Content-Type':'application/json'
},
}
);
fetch(request).then(response => response.json())
.then(data => {
console.log('Success STUDENTS:', data);
setEleves(data);
})
.catch(error => {
console.error('Error fetching data:', error);
error = error.message;
console.log(error);
});
};
useEffect(() => { useEffect(() => {
fetchClasses(); fetchClasses();
fetchStudents();
}, []); }, []);
useEffect(() => { useEffect(() => {
@ -433,12 +464,6 @@ const columnsSubscribed = [
onClick={() => setActiveTab('archived')} onClick={() => setActiveTab('archived')}
/> />
<Button text={t("addStudent")} primary onClick={openModal} icon={<UserPlus size={20} />} /> <Button text={t("addStudent")} primary onClick={openModal} icon={<UserPlus size={20} />} />
<Modal
isOpen={isOpen}
setIsOpen={setIsOpen}
title={"Création d'un nouveau dossier d'inscription"}
ContentComponent={InscriptionForm}
/>
</div> </div>
</div> </div>
@ -484,6 +509,17 @@ const columnsSubscribed = [
}} }}
onCancel={() => setPopup({ ...popup, visible: false })} onCancel={() => setPopup({ ...popup, visible: false })}
/> />
{isOpen && (
<Modal
isOpen={isOpen}
setIsOpen={setIsOpen}
title={"Création d'un nouveau dossier d'inscription"}
ContentComponent={() => (
<InscriptionForm eleves={eleves} onSubmit={handleModalSubmit} />
)}
/>
)}
{isOpenAffectationClasse && ( {isOpenAffectationClasse && (
<Modal <Modal
isOpen={isOpenAffectationClasse} isOpen={isOpenAffectationClasse}