feat: Validation du dossier d'inscription en affectant l'élève à une

classe de son niveau / création d'une fenêtre de visualisation d'une
classe (en cours)
This commit is contained in:
N3WT DE COMPET
2025-05-03 21:37:41 +02:00
parent 256f995698
commit 0f49236965
13 changed files with 426 additions and 177 deletions

View File

@ -10,9 +10,10 @@ import LevelLabel from '@/components/CustomLabels/LevelLabel';
import { DndProvider, useDrop } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import logger from '@/utils/logger';
import ClasseDetails from '@/components/ClasseDetails';
import SectionHeader from '@/components/SectionHeader';
import { useEstablishment } from '@/context/EstablishmentContext';
import { useRouter } from 'next/navigation';
import { FE_ADMIN_STRUCTURE_SCHOOLCLASS_MANAGEMENT_URL } from '@/utils/Url';
const ItemTypes = {
TEACHER: 'teacher',
@ -28,8 +29,6 @@ const TeachersDropZone = ({
classe.teachers_details || []
);
const { selectedEstablishmentId } = useEstablishment();
useEffect(() => {}, [teachers]);
useEffect(() => {
@ -131,6 +130,10 @@ const ClassesSection = ({
const [detailsModalVisible, setDetailsModalVisible] = useState(false);
const [selectedClass, setSelectedClass] = useState(null);
const router = useRouter();
const { selectedEstablishmentId } = useEstablishment();
const niveauxPremierCycle = [
{ id: 1, name: 'TPS', age: 2 },
{ id: 2, name: 'PS', age: 3 },
@ -520,7 +523,10 @@ const ClassesSection = ({
</button>
<button
type="button"
onClick={() => openEditModalDetails(classe)}
onClick={() => {
const url = `${FE_ADMIN_STRUCTURE_SCHOOLCLASS_MANAGEMENT_URL}?schoolClassId=${classe.id}`;
router.push(`${url}`);
}}
className="text-gray-500 hover:text-gray-700"
>
<ZoomIn className="w-5 h-5" />
@ -559,15 +565,6 @@ const ClassesSection = ({
columns={columns}
renderCell={renderClassCell}
/>
<Popup
visible={detailsModalVisible}
message={
selectedClass ? <ClasseDetails classe={selectedClass} /> : null
}
onConfirm={() => setDetailsModalVisible(false)}
onCancel={() => setDetailsModalVisible(false)}
uniqueConfirmButton={true}
/>
<Popup
visible={popupVisible}
message={popupMessage}

View File

@ -1,60 +0,0 @@
import React from 'react';
import Table from '@/components/Table';
const TeachersSelectionConfiguration = ({
formData,
teachers,
handleTeacherSelection,
selectedTeachers,
}) => {
return (
<div className="mt-4" style={{ maxHeight: '300px', overflowY: 'auto' }}>
<label className="mt-6 block text-2xl font-medium text-gray-700 mb-2">
Enseignants
</label>
<label className={`block text-sm font-medium mb-4`}>
Sélection :{' '}
<span
className={`${formData.teachers.length !== 0 ? 'text-emerald-400' : 'text-red-300'}`}
>
{formData.teachers.length}
</span>
</label>
<Table
columns={[
{
name: 'Nom',
transform: (row) => row.last_name,
},
{
name: 'Prénom',
transform: (row) => row.first_name,
},
// {
// name: 'Spécialités',
// transform: (row) => (
// <div className="flex flex-wrap items-center">
// {row.specialites.map(specialite => (
// <span key={specialite.id} className="flex items-center mr-2 mb-1">
// <div
// className="w-4 h-4 rounded-full mr-2"
// style={{ backgroundColor: specialite.codeCouleur }}
// title={specialite.nom}
// ></div>
// <span>{specialite.nom}</span>
// </span>
// ))}
// </div>
// ),
// },
]}
data={teachers}
onRowClick={handleTeacherSelection}
selectedRows={selectedTeachers}
isSelectable={true}
/>
</div>
);
};
export default TeachersSelectionConfiguration;