mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
chore: application prettier
This commit is contained in:
@ -13,55 +13,55 @@ export const ClasseFormProvider = ({ children, initialClasse }) => {
|
||||
const plannings = initialClasse.plannings_read || [];
|
||||
|
||||
const defaultEmploiDuTemps = {
|
||||
lundi: [],
|
||||
mardi: [],
|
||||
mercredi: [],
|
||||
jeudi: [],
|
||||
vendredi: [],
|
||||
samedi: [],
|
||||
dimanche: []
|
||||
lundi: [],
|
||||
mardi: [],
|
||||
mercredi: [],
|
||||
jeudi: [],
|
||||
vendredi: [],
|
||||
samedi: [],
|
||||
dimanche: [],
|
||||
};
|
||||
|
||||
const generateEmploiDuTemps = (planningType) => {
|
||||
if (planningType === 1) {
|
||||
return defaultEmploiDuTemps;
|
||||
} else if (planningType === 2) {
|
||||
return {
|
||||
S1: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
S2: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
};
|
||||
} else if (planningType === 3) {
|
||||
return {
|
||||
T1: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
T2: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
T3: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
};
|
||||
}
|
||||
if (planningType === 1) {
|
||||
return defaultEmploiDuTemps;
|
||||
} else if (planningType === 2) {
|
||||
return {
|
||||
S1: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
S2: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
};
|
||||
} else if (planningType === 3) {
|
||||
return {
|
||||
T1: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
T2: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
T3: { DateDebut: '', DateFin: '', ...defaultEmploiDuTemps },
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
const newFormData = {
|
||||
atmosphere_name: initialClasse.atmosphere_name || '',
|
||||
age_range: initialClasse.age_range || '',
|
||||
number_of_students: initialClasse.number_of_students || '',
|
||||
teaching_language: initialClasse.teaching_language || 'Français',
|
||||
school_year: initialClasse.school_year || '',
|
||||
teachers: initialClasse.teachers || [],
|
||||
teachers_details: initialClasse.teachers_details || [],
|
||||
type: initialClasse.type || 1,
|
||||
time_range: initialClasse.time_range || ['08:30', '17:30'],
|
||||
opening_days: initialClasse.opening_days || [1, 2, 4, 5],
|
||||
levels: initialClasse.levels || [],
|
||||
// plannings: plannings.length ? plannings.map(planning => ({
|
||||
// niveau: planning.planning.niveau,
|
||||
// emploiDuTemps: planning.planning.emploiDuTemps
|
||||
// })) : (initialClasse.levels || []).map(niveau => ({
|
||||
// niveau: niveau,
|
||||
// emploiDuTemps: generateEmploiDuTemps(initialClasse.type || 1)
|
||||
// }))
|
||||
atmosphere_name: initialClasse.atmosphere_name || '',
|
||||
age_range: initialClasse.age_range || '',
|
||||
number_of_students: initialClasse.number_of_students || '',
|
||||
teaching_language: initialClasse.teaching_language || 'Français',
|
||||
school_year: initialClasse.school_year || '',
|
||||
teachers: initialClasse.teachers || [],
|
||||
teachers_details: initialClasse.teachers_details || [],
|
||||
type: initialClasse.type || 1,
|
||||
time_range: initialClasse.time_range || ['08:30', '17:30'],
|
||||
opening_days: initialClasse.opening_days || [1, 2, 4, 5],
|
||||
levels: initialClasse.levels || [],
|
||||
// plannings: plannings.length ? plannings.map(planning => ({
|
||||
// niveau: planning.planning.niveau,
|
||||
// emploiDuTemps: planning.planning.emploiDuTemps
|
||||
// })) : (initialClasse.levels || []).map(niveau => ({
|
||||
// niveau: niveau,
|
||||
// emploiDuTemps: generateEmploiDuTemps(initialClasse.type || 1)
|
||||
// }))
|
||||
};
|
||||
|
||||
setFormData(newFormData);
|
||||
}, [initialClasse, getNiveauxLabels]);
|
||||
}, [initialClasse, getNiveauxLabels]);
|
||||
|
||||
return (
|
||||
<ClasseFormContext.Provider value={{ formData, setFormData }}>
|
||||
@ -69,4 +69,3 @@ export const ClasseFormProvider = ({ children, initialClasse }) => {
|
||||
</ClasseFormContext.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@ -9,9 +9,18 @@ export const ClassesProvider = ({ children }) => {
|
||||
const currentYear = new Date().getFullYear();
|
||||
|
||||
const schoolYears = [
|
||||
{ value: `${currentYear - 1}-${currentYear}`, label: `${currentYear - 1}-${currentYear}` },
|
||||
{ value: `${currentYear}-${currentYear + 1}`, label: `${currentYear}-${currentYear + 1}` },
|
||||
{ value: `${currentYear + 1}-${currentYear + 2}`, label: `${currentYear + 1}-${currentYear + 2}` },
|
||||
{
|
||||
value: `${currentYear - 1}-${currentYear}`,
|
||||
label: `${currentYear - 1}-${currentYear}`,
|
||||
},
|
||||
{
|
||||
value: `${currentYear}-${currentYear + 1}`,
|
||||
label: `${currentYear}-${currentYear + 1}`,
|
||||
},
|
||||
{
|
||||
value: `${currentYear + 1}-${currentYear + 2}`,
|
||||
label: `${currentYear + 1}-${currentYear + 2}`,
|
||||
},
|
||||
];
|
||||
|
||||
const niveauxPremierCycle = [
|
||||
@ -32,7 +41,11 @@ export const ClassesProvider = ({ children }) => {
|
||||
{ id: 9, name: 'CM2', age: 10 },
|
||||
];
|
||||
|
||||
const allNiveaux = [...niveauxPremierCycle, ...niveauxSecondCycle, ...niveauxTroisiemeCycle];
|
||||
const allNiveaux = [
|
||||
...niveauxPremierCycle,
|
||||
...niveauxSecondCycle,
|
||||
...niveauxTroisiemeCycle,
|
||||
];
|
||||
|
||||
const typeEmploiDuTemps = [
|
||||
{ id: 1, label: 'Annuel' },
|
||||
@ -47,12 +60,12 @@ export const ClassesProvider = ({ children }) => {
|
||||
4: 'jeudi',
|
||||
5: 'vendredi',
|
||||
6: 'samedi',
|
||||
7: 'dimanche'
|
||||
7: 'dimanche',
|
||||
};
|
||||
|
||||
const getNiveauxLabels = (levels) => {
|
||||
return levels.map(niveauId => {
|
||||
const niveau = allNiveaux.find(n => n.id === niveauId);
|
||||
return levels.map((niveauId) => {
|
||||
const niveau = allNiveaux.find((n) => n.id === niveauId);
|
||||
return niveau ? niveau.name : niveauId;
|
||||
});
|
||||
};
|
||||
@ -62,25 +75,30 @@ export const ClassesProvider = ({ children }) => {
|
||||
const sortedNiveaux = levels.sort((a, b) => a - b);
|
||||
|
||||
// Mapper les labels correspondants
|
||||
return sortedNiveaux.map(niveauId => {
|
||||
const niveau = allNiveaux.find(n => n.id === niveauId);
|
||||
return niveau ? { id: niveau.id, title: niveau.name, icon: School } : { id: 'unknown', title: 'Niveau inconnu', icon: null };
|
||||
return sortedNiveaux.map((niveauId) => {
|
||||
const niveau = allNiveaux.find((n) => n.id === niveauId);
|
||||
return niveau
|
||||
? { id: niveau.id, title: niveau.name, icon: School }
|
||||
: { id: 'unknown', title: 'Niveau inconnu', icon: null };
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
const generateAgeToNiveaux = (minAge, maxAge) => {
|
||||
if (minAge === null || isNaN(minAge)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return allNiveaux
|
||||
.filter(({ age }) => age === minAge || (age >= minAge && (maxAge !== null && !isNaN(maxAge) && age < maxAge)))
|
||||
.filter(
|
||||
({ age }) =>
|
||||
age === minAge ||
|
||||
(age >= minAge && maxAge !== null && !isNaN(maxAge) && age < maxAge)
|
||||
)
|
||||
.map(({ id }) => id);
|
||||
};
|
||||
|
||||
const getNiveauNameById = (id) => {
|
||||
const niveau = allNiveaux.find(item => item.id.toString() === id);
|
||||
const niveau = allNiveaux.find((item) => item.id.toString() === id);
|
||||
return niveau ? niveau.name : '';
|
||||
};
|
||||
|
||||
@ -110,84 +128,88 @@ export const ClassesProvider = ({ children }) => {
|
||||
};
|
||||
|
||||
const updatePlannings = (formData, existingPlannings) => {
|
||||
return formData.levels.map(niveau => {
|
||||
let existingPlanning = existingPlannings.find(planning => planning.niveau === niveau);
|
||||
return formData.levels.map((niveau) => {
|
||||
let existingPlanning = existingPlannings.find(
|
||||
(planning) => planning.niveau === niveau
|
||||
);
|
||||
|
||||
const emploiDuTemps = formData.opening_days.reduce((acc, dayId) => {
|
||||
const dayName = selectedDays[dayId];
|
||||
if (dayName) {
|
||||
acc[dayName] = existingPlanning?.emploiDuTemps?.[dayName] || [];
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
let updatedPlanning;
|
||||
if (formData.type === 1) {
|
||||
updatedPlanning = {
|
||||
niveau: niveau,
|
||||
emploiDuTemps
|
||||
};
|
||||
} else if (formData.type === 2) {
|
||||
updatedPlanning = {
|
||||
niveau: niveau,
|
||||
emploiDuTemps: {
|
||||
S1: {
|
||||
DateDebut: formData.date_debut_semestre_1,
|
||||
DateFin: formData.date_fin_semestre_1,
|
||||
...emploiDuTemps
|
||||
},
|
||||
S2: {
|
||||
DateDebut: formData.date_debut_semestre_2,
|
||||
DateFin: formData.date_fin_semestre_2,
|
||||
...emploiDuTemps
|
||||
}
|
||||
}
|
||||
};
|
||||
} else if (formData.type === 3) {
|
||||
updatedPlanning = {
|
||||
niveau: niveau,
|
||||
emploiDuTemps: {
|
||||
T1: {
|
||||
DateDebut: formData.date_debut_trimestre_1,
|
||||
DateFin: formData.date_fin_trimestre_1,
|
||||
...emploiDuTemps
|
||||
},
|
||||
T2: {
|
||||
DateDebut: formData.date_debut_trimestre_2,
|
||||
DateFin: formData.date_fin_trimestre_2,
|
||||
...emploiDuTemps
|
||||
},
|
||||
T3: {
|
||||
DateDebut: formData.date_debut_trimestre_3,
|
||||
DateFin: formData.date_fin_trimestre_3,
|
||||
...emploiDuTemps
|
||||
}
|
||||
}
|
||||
};
|
||||
const emploiDuTemps = formData.opening_days.reduce((acc, dayId) => {
|
||||
const dayName = selectedDays[dayId];
|
||||
if (dayName) {
|
||||
acc[dayName] = existingPlanning?.emploiDuTemps?.[dayName] || [];
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
// Fusionner les plannings existants avec les nouvelles données
|
||||
return existingPlanning
|
||||
? { ...existingPlanning, ...updatedPlanning }
|
||||
: updatedPlanning;
|
||||
let updatedPlanning;
|
||||
if (formData.type === 1) {
|
||||
updatedPlanning = {
|
||||
niveau: niveau,
|
||||
emploiDuTemps,
|
||||
};
|
||||
} else if (formData.type === 2) {
|
||||
updatedPlanning = {
|
||||
niveau: niveau,
|
||||
emploiDuTemps: {
|
||||
S1: {
|
||||
DateDebut: formData.date_debut_semestre_1,
|
||||
DateFin: formData.date_fin_semestre_1,
|
||||
...emploiDuTemps,
|
||||
},
|
||||
S2: {
|
||||
DateDebut: formData.date_debut_semestre_2,
|
||||
DateFin: formData.date_fin_semestre_2,
|
||||
...emploiDuTemps,
|
||||
},
|
||||
},
|
||||
};
|
||||
} else if (formData.type === 3) {
|
||||
updatedPlanning = {
|
||||
niveau: niveau,
|
||||
emploiDuTemps: {
|
||||
T1: {
|
||||
DateDebut: formData.date_debut_trimestre_1,
|
||||
DateFin: formData.date_fin_trimestre_1,
|
||||
...emploiDuTemps,
|
||||
},
|
||||
T2: {
|
||||
DateDebut: formData.date_debut_trimestre_2,
|
||||
DateFin: formData.date_fin_trimestre_2,
|
||||
...emploiDuTemps,
|
||||
},
|
||||
T3: {
|
||||
DateDebut: formData.date_debut_trimestre_3,
|
||||
DateFin: formData.date_fin_trimestre_3,
|
||||
...emploiDuTemps,
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
// Fusionner les plannings existants avec les nouvelles données
|
||||
return existingPlanning
|
||||
? { ...existingPlanning, ...updatedPlanning }
|
||||
: updatedPlanning;
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
const groupSpecialitiesBySubject = (teachers) => {
|
||||
const groupedSpecialities = {};
|
||||
|
||||
if (!teachers) return [];
|
||||
|
||||
teachers.forEach(teacher => {
|
||||
teachers.forEach((teacher) => {
|
||||
if (teacher && teacher.specialites) {
|
||||
teacher.specialites.forEach(specialite => {
|
||||
teacher.specialites.forEach((specialite) => {
|
||||
if (!groupedSpecialities[specialite.id]) {
|
||||
groupedSpecialities[specialite.id] = {
|
||||
...specialite,
|
||||
teachers: [`${teacher.nom} ${teacher.prenom}`],
|
||||
};
|
||||
} else {
|
||||
groupedSpecialities[specialite.id].teachers.push(`${teacher.nom} ${teacher.prenom}`);
|
||||
groupedSpecialities[specialite.id].teachers.push(
|
||||
`${teacher.nom} ${teacher.prenom}`
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -206,21 +228,24 @@ export const ClassesProvider = ({ children }) => {
|
||||
};
|
||||
|
||||
return (
|
||||
<ClassesContext.Provider value={{ schoolYears,
|
||||
getNiveauxLabels,
|
||||
getNiveauxTabs,
|
||||
generateAgeToNiveaux,
|
||||
niveauxPremierCycle,
|
||||
niveauxSecondCycle,
|
||||
niveauxTroisiemeCycle,
|
||||
typeEmploiDuTemps,
|
||||
updatePlannings,
|
||||
getAmbianceText,
|
||||
getAmbianceName,
|
||||
groupSpecialitiesBySubject,
|
||||
getNiveauNameById,
|
||||
determineInitialPeriod
|
||||
}}>
|
||||
<ClassesContext.Provider
|
||||
value={{
|
||||
schoolYears,
|
||||
getNiveauxLabels,
|
||||
getNiveauxTabs,
|
||||
generateAgeToNiveaux,
|
||||
niveauxPremierCycle,
|
||||
niveauxSecondCycle,
|
||||
niveauxTroisiemeCycle,
|
||||
typeEmploiDuTemps,
|
||||
updatePlannings,
|
||||
getAmbianceText,
|
||||
getAmbianceName,
|
||||
groupSpecialitiesBySubject,
|
||||
getNiveauNameById,
|
||||
determineInitialPeriod,
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
</ClassesContext.Provider>
|
||||
);
|
||||
|
||||
@ -8,44 +8,44 @@ import logger from '@/utils/logger';
|
||||
const CsrfContext = createContext();
|
||||
|
||||
export const CsrfProvider = ({ children }) => {
|
||||
const [csrfToken, setCsrfTokenState] = useState('');
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const [csrfToken, setCsrfTokenState] = useState('');
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
// Éviter les appels multiples si le token existe déjà
|
||||
if (csrfToken) return;
|
||||
useEffect(() => {
|
||||
// Éviter les appels multiples si le token existe déjà
|
||||
if (csrfToken) return;
|
||||
|
||||
fetch(`${BE_AUTH_CSRF_URL}`, {
|
||||
method: 'GET',
|
||||
credentials: 'include' // Inclut les cookies dans la requête
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data && data.csrfToken) {
|
||||
setCsrfTokenState(data.csrfToken);
|
||||
setCsrfToken(data.csrfToken); // Définir le token CSRF global
|
||||
logger.debug('CSRF Token reçu:', data.csrfToken);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
logger.error('Error fetching CSRF token:', error);
|
||||
})
|
||||
.finally(() => {
|
||||
setIsLoading(false);
|
||||
});
|
||||
}, []); // Dépendance vide pour n'exécuter qu'une seule fois
|
||||
fetch(`${BE_AUTH_CSRF_URL}`, {
|
||||
method: 'GET',
|
||||
credentials: 'include', // Inclut les cookies dans la requête
|
||||
})
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
if (data && data.csrfToken) {
|
||||
setCsrfTokenState(data.csrfToken);
|
||||
setCsrfToken(data.csrfToken); // Définir le token CSRF global
|
||||
logger.debug('CSRF Token reçu:', data.csrfToken);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
logger.error('Error fetching CSRF token:', error);
|
||||
})
|
||||
.finally(() => {
|
||||
setIsLoading(false);
|
||||
});
|
||||
}, []); // Dépendance vide pour n'exécuter qu'une seule fois
|
||||
|
||||
return (
|
||||
<CsrfContext.Provider value={csrfToken}>
|
||||
{!isLoading && children}
|
||||
</CsrfContext.Provider>
|
||||
);
|
||||
return (
|
||||
<CsrfContext.Provider value={csrfToken}>
|
||||
{!isLoading && children}
|
||||
</CsrfContext.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
export const useCsrfToken = () => {
|
||||
const context = useContext(CsrfContext);
|
||||
if (context === undefined) {
|
||||
throw new Error('useCsrfToken must be used within a CsrfProvider');
|
||||
}
|
||||
return context;
|
||||
};
|
||||
const context = useContext(CsrfContext);
|
||||
if (context === undefined) {
|
||||
throw new Error('useCsrfToken must be used within a CsrfProvider');
|
||||
}
|
||||
return context;
|
||||
};
|
||||
|
||||
@ -14,10 +14,10 @@ export const EstablishmentProvider = ({ children }) => {
|
||||
logger.debug('Establishments User= ', user);
|
||||
// Au changement de l'utilisateur on sette par défaut le premier établissement
|
||||
// et le premier rôle
|
||||
const userEstablishments = user.roles.map(role => ({
|
||||
const userEstablishments = user.roles.map((role) => ({
|
||||
id: role.establishment__id,
|
||||
name: role.establishment__name,
|
||||
role_type: role.role_type
|
||||
role_type: role.role_type,
|
||||
}));
|
||||
setEstablishments(userEstablishments);
|
||||
logger.debug('Establishments', user.roleIndexLoginDefault);
|
||||
@ -35,7 +35,17 @@ export const EstablishmentProvider = ({ children }) => {
|
||||
}, [user]);
|
||||
|
||||
return (
|
||||
<EstablishmentContext.Provider value={{ selectedEstablishmentId, setSelectedEstablishmentId, profileRole, setProfileRole, establishments, setUser, user }}>
|
||||
<EstablishmentContext.Provider
|
||||
value={{
|
||||
selectedEstablishmentId,
|
||||
setSelectedEstablishmentId,
|
||||
profileRole,
|
||||
setProfileRole,
|
||||
establishments,
|
||||
setUser,
|
||||
user,
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
</EstablishmentContext.Provider>
|
||||
);
|
||||
@ -43,4 +53,4 @@ export const EstablishmentProvider = ({ children }) => {
|
||||
|
||||
export const useEstablishment = () => {
|
||||
return useContext(EstablishmentContext);
|
||||
};
|
||||
};
|
||||
|
||||
@ -1,11 +1,17 @@
|
||||
import { createContext, useContext, useEffect, useState } from 'react';
|
||||
import { createPlanning, fetchEvents, fetchPlannings, updatePlanning, createEvent, deleteEvent, updateEvent } from '@/app/actions/planningAction';
|
||||
import {
|
||||
createPlanning,
|
||||
fetchEvents,
|
||||
fetchPlannings,
|
||||
updatePlanning,
|
||||
createEvent,
|
||||
deleteEvent,
|
||||
updateEvent,
|
||||
} from '@/app/actions/planningAction';
|
||||
import { useCsrfToken } from './CsrfContext';
|
||||
import logger from '@/utils/logger';
|
||||
import { useSession } from 'next-auth/react';
|
||||
import { useEstablishment }from '@/context/EstablishmentContext';
|
||||
|
||||
|
||||
import { useEstablishment } from '@/context/EstablishmentContext';
|
||||
|
||||
/**
|
||||
* Contexte de planification pour gérer l'état global du planning
|
||||
@ -30,21 +36,18 @@ export function PlanningProvider({ children }) {
|
||||
const [hiddenSchedules, setHiddenSchedules] = useState([]);
|
||||
const { selectedEstablishmentId } = useEstablishment();
|
||||
|
||||
const csrfToken = useCsrfToken();
|
||||
useEffect(()=>{
|
||||
const csrfToken = useCsrfToken();
|
||||
useEffect(() => {
|
||||
fetchPlannings().then((data) => {
|
||||
setSchedules(data)
|
||||
if(data.length > 0){
|
||||
setSchedules(data);
|
||||
if (data.length > 0) {
|
||||
setSelectedSchedule(data[0].id);
|
||||
}
|
||||
});
|
||||
fetchEvents().then((data)=>{
|
||||
fetchEvents().then((data) => {
|
||||
setEvents(data);
|
||||
});
|
||||
},[]);
|
||||
|
||||
|
||||
|
||||
}, []);
|
||||
|
||||
const addEvent = (newEvent) => {
|
||||
createEvent(newEvent).then((data) => {
|
||||
@ -53,33 +56,30 @@ export function PlanningProvider({ children }) {
|
||||
};
|
||||
|
||||
const handleUpdateEvent = (id, updatedEvent) => {
|
||||
updateEvent(id,updatedEvent,csrfToken).then((data) => {
|
||||
setEvents((prevEvents) =>
|
||||
prevEvents.map((event) => (event.id === id ? updatedEvent : event))
|
||||
);
|
||||
updateEvent(id, updatedEvent, csrfToken).then((data) => {
|
||||
setEvents((prevEvents) =>
|
||||
prevEvents.map((event) => (event.id === id ? updatedEvent : event))
|
||||
);
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
const handleDeleteEvent = (id) => {
|
||||
deleteEvent(id,csrfToken).then((data) => {
|
||||
deleteEvent(id, csrfToken).then((data) => {
|
||||
setEvents((prevEvents) => prevEvents.filter((event) => event.id !== id));
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
const addSchedule = (newSchedule) => {
|
||||
logger.debug('newSchedule',newSchedule);
|
||||
logger.debug('newSchedule', newSchedule);
|
||||
newSchedule.establishment = selectedEstablishmentId;
|
||||
createPlanning(newSchedule,csrfToken).then((data) => {
|
||||
createPlanning(newSchedule, csrfToken).then((data) => {
|
||||
setSchedules((prevSchedules) => [...prevSchedules, data]);
|
||||
});
|
||||
};
|
||||
|
||||
const updateSchedule = (id, updatedSchedule) => {
|
||||
|
||||
updatePlanning(id,updatedSchedule,csrfToken).then((data) => {
|
||||
setSchedules((prevSchedules) =>
|
||||
updatePlanning(id, updatedSchedule, csrfToken).then((data) => {
|
||||
setSchedules((prevSchedules) =>
|
||||
prevSchedules.map((schedule) =>
|
||||
schedule.id === id ? updatedSchedule : schedule
|
||||
)
|
||||
@ -88,13 +88,11 @@ export function PlanningProvider({ children }) {
|
||||
};
|
||||
|
||||
const deleteSchedule = (id) => {
|
||||
deletePlanning(id,csrfToken).then((data) => {
|
||||
deletePlanning(id, csrfToken).then((data) => {
|
||||
setSchedules((prevSchedules) =>
|
||||
prevSchedules.filter((schedule) => schedule.id !== id)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
const toggleScheduleVisibility = (planning) => {
|
||||
@ -125,7 +123,7 @@ export function PlanningProvider({ children }) {
|
||||
viewType,
|
||||
setViewType,
|
||||
hiddenSchedules,
|
||||
toggleScheduleVisibility
|
||||
toggleScheduleVisibility,
|
||||
};
|
||||
|
||||
return (
|
||||
@ -135,4 +133,4 @@ export function PlanningProvider({ children }) {
|
||||
);
|
||||
}
|
||||
|
||||
export const usePlanning = () => useContext(PlanningContext);
|
||||
export const usePlanning = () => useContext(PlanningContext);
|
||||
|
||||
@ -12,12 +12,11 @@ export const TeacherFormProvider = ({ children, initialTeacher }) => {
|
||||
specialities: initialTeacher.specialities || [],
|
||||
associated_profile: initialTeacher.associated_profile || '',
|
||||
droit: {
|
||||
label: initialTeacher.droit?.label || '',
|
||||
id: initialTeacher.droit?.id || 0
|
||||
}
|
||||
label: initialTeacher.droit?.label || '',
|
||||
id: initialTeacher.droit?.id || 0,
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
return (
|
||||
<TeacherFormContext.Provider value={{ formData, setFormData }}>
|
||||
{children}
|
||||
|
||||
Reference in New Issue
Block a user