mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
refactor: Partie FRONT / School
This commit is contained in:
@ -41,23 +41,23 @@ export const ClasseFormProvider = ({ children, initialClasse }) => {
|
||||
|
||||
const newFormData = {
|
||||
nom_ambiance: initialClasse.nom_ambiance || '',
|
||||
tranche_age: initialClasse.tranche_age || '',
|
||||
nombre_eleves: initialClasse.nombre_eleves || '',
|
||||
langue_enseignement: initialClasse.langue_enseignement || 'Français',
|
||||
annee_scolaire: initialClasse.annee_scolaire || '',
|
||||
enseignants: initialClasse.enseignants || [],
|
||||
enseignants_ids: initialClasse.enseignants_ids || [],
|
||||
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,
|
||||
plage_horaire: initialClasse.plage_horaire || ['08:30', '17:30'],
|
||||
jours_ouverture: initialClasse.jours_ouverture || [1, 2, 4, 5],
|
||||
niveaux: initialClasse.niveaux || [],
|
||||
plannings: plannings.length ? plannings.map(planning => ({
|
||||
niveau: planning.planning.niveau,
|
||||
emploiDuTemps: planning.planning.emploiDuTemps
|
||||
})) : (initialClasse.niveaux || []).map(niveau => ({
|
||||
niveau: niveau,
|
||||
emploiDuTemps: generateEmploiDuTemps(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);
|
||||
|
||||
@ -51,16 +51,16 @@ export const ClassesProvider = ({ children }) => {
|
||||
7: 'dimanche'
|
||||
};
|
||||
|
||||
const getNiveauxLabels = (niveaux) => {
|
||||
return niveaux.map(niveauId => {
|
||||
const getNiveauxLabels = (levels) => {
|
||||
return levels.map(niveauId => {
|
||||
const niveau = allNiveaux.find(n => n.id === niveauId);
|
||||
return niveau ? niveau.name : niveauId;
|
||||
});
|
||||
};
|
||||
|
||||
const getNiveauxTabs = (niveaux) => {
|
||||
// Trier les niveaux par id
|
||||
const sortedNiveaux = niveaux.sort((a, b) => a - b);
|
||||
const getNiveauxTabs = (levels) => {
|
||||
// Trier les levels par id
|
||||
const sortedNiveaux = levels.sort((a, b) => a - b);
|
||||
|
||||
// Mapper les labels correspondants
|
||||
return sortedNiveaux.map(niveauId => {
|
||||
@ -87,7 +87,7 @@ export const ClassesProvider = ({ children }) => {
|
||||
|
||||
const getAmbianceText = (classe) => {
|
||||
const ambiance = classe.nom_ambiance ? classe.nom_ambiance : '';
|
||||
const trancheAge = classe.tranche_age ? `${classe.tranche_age} ans` : '';
|
||||
const trancheAge = classe.age_range ? `${classe.age_range} ans` : '';
|
||||
|
||||
if (ambiance && trancheAge) {
|
||||
return `${ambiance} (${trancheAge})`;
|
||||
@ -111,20 +111,17 @@ export const ClassesProvider = ({ children }) => {
|
||||
};
|
||||
|
||||
const updatePlannings = (formData, existingPlannings) => {
|
||||
return formData.niveaux.map(niveau => {
|
||||
return formData.levels.map(niveau => {
|
||||
let existingPlanning = existingPlannings.find(planning => planning.niveau === niveau);
|
||||
|
||||
const emploiDuTemps = formData.jours_ouverture.reduce((acc, dayId) => {
|
||||
const emploiDuTemps = formData.opening_days.reduce((acc, dayId) => {
|
||||
const dayName = selectedDays[dayId];
|
||||
console.log('dayId:', dayId, 'dayName:', dayName); // Ajout de log pour vérifier les correspondances
|
||||
if (dayName) {
|
||||
acc[dayName] = existingPlanning?.emploiDuTemps?.[dayName] || [];
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
console.log('Emploi du Temps initialisé :', emploiDuTemps);
|
||||
|
||||
let updatedPlanning;
|
||||
if (formData.type === 1) {
|
||||
updatedPlanning = {
|
||||
@ -170,8 +167,6 @@ export const ClassesProvider = ({ children }) => {
|
||||
};
|
||||
}
|
||||
|
||||
console.log('Updated Planning:', updatedPlanning);
|
||||
|
||||
// Fusionner les plannings existants avec les nouvelles données
|
||||
return existingPlanning
|
||||
? { ...existingPlanning, ...updatedPlanning }
|
||||
@ -179,10 +174,10 @@ export const ClassesProvider = ({ children }) => {
|
||||
});
|
||||
};
|
||||
|
||||
const groupSpecialitiesBySubject = (enseignants) => {
|
||||
const groupSpecialitiesBySubject = (teachers) => {
|
||||
const groupedSpecialities = {};
|
||||
|
||||
enseignants.forEach(teacher => {
|
||||
teachers.forEach(teacher => {
|
||||
teacher.specialites.forEach(specialite => {
|
||||
if (!groupedSpecialities[specialite.id]) {
|
||||
groupedSpecialities[specialite.id] = {
|
||||
|
||||
@ -6,8 +6,8 @@ export const useSpecialityForm = () => useContext(SpecialityFormContext);
|
||||
|
||||
export const SpecialityFormProvider = ({ children, initialSpeciality }) => {
|
||||
const [formData, setFormData] = useState(() => ({
|
||||
nom: initialSpeciality.nom || '',
|
||||
codeCouleur: initialSpeciality.codeCouleur || '#FFFFFF',
|
||||
name: initialSpeciality.name || '',
|
||||
color_code: initialSpeciality.color_code || '#FFFFFF',
|
||||
}));
|
||||
|
||||
return (
|
||||
|
||||
@ -6,14 +6,18 @@ export const useTeacherForm = () => useContext(TeacherFormContext);
|
||||
|
||||
export const TeacherFormProvider = ({ children, initialTeacher }) => {
|
||||
const [formData, setFormData] = useState(() => ({
|
||||
nom: initialTeacher.nom || '',
|
||||
prenom: initialTeacher.prenom || '',
|
||||
mail: initialTeacher.mail || '',
|
||||
specialites_ids: initialTeacher.specialites_ids || [],
|
||||
profilAssocie_id: initialTeacher.profilAssocie_id || '',
|
||||
droit: initialTeacher.droit || 0
|
||||
last_name: initialTeacher.last_name || '',
|
||||
first_name: initialTeacher.first_name || '',
|
||||
email: initialTeacher.email || '',
|
||||
specialities: initialTeacher.specialities || [],
|
||||
associated_profile: initialTeacher.associated_profile || '',
|
||||
droit: {
|
||||
label: initialTeacher.droit?.label || '',
|
||||
id: initialTeacher.droit?.id || 0
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
return (
|
||||
<TeacherFormContext.Provider value={{ formData, setFormData }}>
|
||||
{children}
|
||||
|
||||
Reference in New Issue
Block a user