mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
feat: Sauvegarde des compétences d'un élève [#16]
This commit is contained in:
@ -8,11 +8,15 @@ import WorkPlan from '@/components/Grades/WorkPlan';
|
||||
import Homeworks from '@/components/Grades/Homeworks';
|
||||
import SpecificEvaluations from '@/components/Grades/SpecificEvaluations';
|
||||
import Orientation from '@/components/Grades/Orientation';
|
||||
import GradesStatsCircle from '@/components/Grades/GradesStatsCircle';
|
||||
import Button from '@/components/Button';
|
||||
import logger from '@/utils/logger';
|
||||
import { FE_ADMIN_GRADES_STUDENT_COMPETENCIES_URL } from '@/utils/Url';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import { fetchStudents } from '@/app/actions/subscriptionAction';
|
||||
|
||||
import {
|
||||
fetchStudents,
|
||||
fetchStudentCompetencies,
|
||||
} from '@/app/actions/subscriptionAction';
|
||||
import { useEstablishment } from '@/context/EstablishmentContext';
|
||||
import { useClasses } from '@/context/ClassesContext';
|
||||
|
||||
@ -25,6 +29,8 @@ export default function Page() {
|
||||
});
|
||||
|
||||
const [students, setStudents] = useState([]);
|
||||
const [studentCompetencies, setStudentCompetencies] = useState(null);
|
||||
const [grades, setGrades] = useState({});
|
||||
|
||||
const academicResults = [
|
||||
{
|
||||
@ -106,6 +112,34 @@ export default function Page() {
|
||||
}
|
||||
}, [selectedEstablishmentId]);
|
||||
|
||||
// Charger les compétences et générer les grades à chaque changement d'élève sélectionné
|
||||
useEffect(() => {
|
||||
if (formData.selectedStudent) {
|
||||
fetchStudentCompetencies(formData.selectedStudent)
|
||||
.then((data) => {
|
||||
setStudentCompetencies(data);
|
||||
// Générer les grades à partir du retour API
|
||||
if (data && data.data) {
|
||||
const initialGrades = {};
|
||||
data.data.forEach((domaine) => {
|
||||
domaine.categories.forEach((cat) => {
|
||||
cat.competences.forEach((comp) => {
|
||||
initialGrades[comp.competence_id] = comp.score ?? 0;
|
||||
});
|
||||
});
|
||||
});
|
||||
setGrades(initialGrades);
|
||||
}
|
||||
})
|
||||
.catch((error) =>
|
||||
logger.error('Error fetching studentCompetencies:', error)
|
||||
);
|
||||
} else {
|
||||
setGrades({});
|
||||
setStudentCompetencies(null);
|
||||
}
|
||||
}, [formData.selectedStudent]);
|
||||
|
||||
return (
|
||||
<div className="p-8 space-y-8">
|
||||
{/* Sélection de l'élève */}
|
||||
@ -145,13 +179,14 @@ export default function Page() {
|
||||
|
||||
{formData.selectedStudent && (
|
||||
<>
|
||||
<AcademicResults results={academicResults} />
|
||||
{/* <AcademicResults results={academicResults} /> */}
|
||||
<Attendance absences={absences} />
|
||||
<Remarks remarks={remarks} />
|
||||
<GradesStatsCircle grades={grades} />
|
||||
{/* <Remarks remarks={remarks} />
|
||||
<WorkPlan workPlan={workPlan} />
|
||||
<Homeworks homeworks={homeworks} />
|
||||
<SpecificEvaluations specificEvaluations={specificEvaluations} />
|
||||
<Orientation orientation={orientation} />
|
||||
<Orientation orientation={orientation} /> */}
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user