From 42b4c99be86f050ccd76302caf725af5df413d17 Mon Sep 17 00:00:00 2001 From: N3WT DE COMPET Date: Fri, 7 Feb 2025 16:43:29 +0100 Subject: [PATCH] fix: Champs requis sur les teachers and classes --- .../Structure/Configuration/ClassesSection.js | 30 ++++++++-------- .../Configuration/TeachersSection.js | 35 +++++++++++-------- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/Front-End/src/components/Structure/Configuration/ClassesSection.js b/Front-End/src/components/Structure/Configuration/ClassesSection.js index f5ac6b2..c9d7aaf 100644 --- a/Front-End/src/components/Structure/Configuration/ClassesSection.js +++ b/Front-End/src/components/Structure/Configuration/ClassesSection.js @@ -161,7 +161,7 @@ const ClassesSection = ({ classes, setClasses, teachers, handleCreate, handleEdi }; const handleSaveNewClass = () => { - if (newClass.atmosphere_name) { + if (newClass.atmosphere_name && newClass.age_range && newClass.levels.length > 0 && newClass.number_of_students && newClass.school_year) { handleCreate(newClass) .then((createdClass) => { setClasses((prevClasses) => [createdClass, ...classes]); @@ -178,21 +178,21 @@ const ClassesSection = ({ classes, setClasses, teachers, handleCreate, handleEdi }; const handleUpdateClass = (id, updatedData) => { - if (!updatedData.atmosphere_name) { - setLocalErrors({ atmosphere_name: 'Le nom d\'ambiance est requis.' }); - return; + if (updatedData.atmosphere_name && updatedData.age_range && updatedData.levels.length > 0 && updatedData.number_of_students && updatedData.school_year) { + handleEdit(id, updatedData) + .then((updatedClass) => { + setClasses((prevClasses) => prevClasses.map((classe) => (classe.id === id ? updatedClass : classe))); + setEditingClass(null); + setFormData({}); + setLocalErrors({}); + }) + .catch((error) => { + console.error(error); + }); + } else { + setPopupMessage("Tous les champs doivent ĂȘtre remplis et valides"); + setPopupVisible(true); } - - handleEdit(id, updatedData) - .then((updatedClass) => { - setClasses((prevClasses) => prevClasses.map((classe) => (classe.id === id ? updatedClass : classe))); - setEditingClass(null); - setFormData({}); - setLocalErrors({}); - }) - .catch((error) => { - console.error(error); - }); }; const handleTeachersChange = (selectedTeachers) => { diff --git a/Front-End/src/components/Structure/Configuration/TeachersSection.js b/Front-End/src/components/Structure/Configuration/TeachersSection.js index 0799e50..27746bc 100644 --- a/Front-End/src/components/Structure/Configuration/TeachersSection.js +++ b/Front-End/src/components/Structure/Configuration/TeachersSection.js @@ -150,25 +150,30 @@ const TeachersSection = ({ teachers, setTeachers, specialities, handleCreate, ha }; const handleUpdateTeacher = (id, updatedData) => { - console.log(updatedData) - const data = { - email: updatedData.email, - username: updatedData.email, - droit: updatedData.droit, - }; - updateProfile(updatedData.associated_profile, data, csrfToken) - .then(response => { - console.log('Success:', response); - handleEdit(id, updatedData) - .then((updatedTeacher) => { - setTeachers(prevTeachers => prevTeachers.map(teacher => teacher.id === id ? { ...teacher, ...updatedTeacher } : teacher)); - setEditingTeacher(null); - setFormData({}); + if (updatedData.last_name && updatedData.first_name && updatedData.email) { + const data = { + email: updatedData.email, + username: updatedData.email, + droit: updatedData.droit, + }; + updateProfile(updatedData.associated_profile, data, csrfToken) + .then(response => { + console.log('Success:', response); + handleEdit(id, updatedData) + .then((updatedTeacher) => { + setTeachers(prevTeachers => prevTeachers.map(teacher => teacher.id === id ? { ...teacher, ...updatedTeacher } : teacher)); + setEditingTeacher(null); + setFormData({}); + }) }) - }) .catch(error => { console.error(error); }); + } + else { + setPopupMessage("Tous les champs doivent ĂȘtre remplis et valides"); + setPopupVisible(true); + } }; const handleChange = (e) => {