fix: Ajout du mode Visu

This commit is contained in:
N3WT DE COMPET
2025-05-04 14:32:06 +02:00
parent 4ecf25a6ab
commit e1c607308c
29 changed files with 531 additions and 414 deletions

View File

@ -15,7 +15,7 @@ import { useEstablishment } from '@/context/EstablishmentContext';
import { FE_ADMIN_STRUCTURE_SCHOOLCLASS_MANAGEMENT_URL } from '@/utils/Url';
import { usePlanning } from '@/context/PlanningContext';
import { useClasses } from '@/context/ClassesContext';
import { useRouter } from 'next/navigation';
const ItemTypes = {
TEACHER: 'teacher',
@ -119,7 +119,6 @@ const ClassesSection = ({
handleCreate,
handleEdit,
handleDelete,
}) => {
const [formData, setFormData] = useState({});
const [editingClass, setEditingClass] = useState(null);
@ -134,8 +133,8 @@ const ClassesSection = ({
const [selectedClass, setSelectedClass] = useState(null);
const { selectedEstablishmentId } = useEstablishment();
const { addSchedule, reloadPlanning, reloadEvents } = usePlanning();
const{ getNiveauxLabels, allNiveaux } = useClasses();
const { getNiveauxLabels, allNiveaux } = useClasses();
const router = useRouter();
// Fonction pour générer les années scolaires
const getSchoolYearChoices = () => {
@ -222,10 +221,9 @@ const ClassesSection = ({
name: planningName,
color: '#FF5733', // Couleur par défaut
school_class: createdClass.id,
}
addSchedule(newPlanning)
};
addSchedule(newPlanning);
});
})
.catch((error) => {
logger.error('Error:', error.message);

View File

@ -9,12 +9,12 @@ export default function ScheduleEventModal({
setEventData,
specialities,
teachers,
classes
classes,
}) {
const { addEvent, handleUpdateEvent, handleDeleteEvent, schedules } = usePlanning();
const { addEvent, handleUpdateEvent, handleDeleteEvent, schedules } =
usePlanning();
React.useEffect(() => {
if (!eventData?.planning && schedules.length > 0) {
const defaultSchedule = schedules[0];
if (eventData?.planning !== defaultSchedule.id) {
@ -26,9 +26,10 @@ export default function ScheduleEventModal({
}
}, [schedules, eventData?.planning]);
const handleSpecialityChange = (specialityId) => {
const selectedSpeciality = specialities.find((s) => s.id === parseInt(specialityId, 10));
const selectedSpeciality = specialities.find(
(s) => s.id === parseInt(specialityId, 10)
);
if (selectedSpeciality) {
setEventData((prev) => ({
...prev,
@ -40,7 +41,9 @@ export default function ScheduleEventModal({
};
const handleTeacherChange = (teacherId) => {
const selectedTeacher = teachers.find((t) => t.id === parseInt(teacherId, 10));
const selectedTeacher = teachers.find(
(t) => t.id === parseInt(teacherId, 10)
);
if (selectedTeacher) {
setEventData((prev) => ({
...prev,
@ -51,7 +54,9 @@ export default function ScheduleEventModal({
};
const handlePlanningChange = (planningId) => {
const selectedSchedule = schedules.find((s) => s.id === parseInt(planningId, 10));
const selectedSchedule = schedules.find(
(s) => s.id === parseInt(planningId, 10)
);
if (selectedSchedule) {
setEventData((prev) => ({
...prev,

View File

@ -8,9 +8,11 @@ import Calendar from '@/components/Calendar/Calendar';
import ScheduleEventModal from '@/components/Structure/Planning/ScheduleEventModal';
import ScheduleNavigation from '@/components/Calendar/ScheduleNavigation';
export default function ScheduleManagement({classes,specialities,teachers}) {
export default function ScheduleManagement({
classes,
specialities,
teachers,
}) {
const [isModalOpen, setIsModalOpen] = useState(false);
const [eventData, setEventData] = useState({
title: '',
@ -50,25 +52,24 @@ export default function ScheduleManagement({classes,specialities,teachers}) {
};
return (
<div className="flex h-full overflow-hidden">
<ScheduleNavigation classes={classes} />
<Calendar
onDateClick={initializeNewEvent}
onEventClick={(event) => {
setEventData(event);
setIsModalOpen(true);
}}
/>
<ScheduleEventModal
isOpen={isModalOpen}
onClose={() => setIsModalOpen(false)}
eventData={eventData}
setEventData={setEventData}
specialities={specialities}
teachers={teachers}
classes={classes}
/>
</div>
<div className="flex h-full overflow-hidden">
<ScheduleNavigation classes={classes} />
<Calendar
onDateClick={initializeNewEvent}
onEventClick={(event) => {
setEventData(event);
setIsModalOpen(true);
}}
/>
<ScheduleEventModal
isOpen={isModalOpen}
onClose={() => setIsModalOpen(false)}
eventData={eventData}
setEventData={setEventData}
specialities={specialities}
teachers={teachers}
classes={classes}
/>
</div>
);
}