mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
fix: Ordre des guardians lors de leur création / déselection correcte si
plusieurs guardians
This commit is contained in:
@ -43,6 +43,7 @@ import { fetchProfiles } from '@/app/actions/authAction';
|
||||
import { useClasses } from '@/context/ClassesContext';
|
||||
import { useCsrfToken } from '@/context/CsrfContext';
|
||||
import { FE_ADMIN_SUBSCRIPTIONS_URL, BASE_URL } from '@/utils/Url';
|
||||
import { useNotification } from '@/context/NotificationContext';
|
||||
|
||||
export default function CreateSubscriptionPage() {
|
||||
const [formData, setFormData] = useState({
|
||||
@ -67,6 +68,7 @@ export default function CreateSubscriptionPage() {
|
||||
});
|
||||
|
||||
const searchParams = useSearchParams();
|
||||
const { showNotification } = useNotification();
|
||||
// Si l'ID est valorisé, alors on est en mode édition
|
||||
const registerFormID = searchParams.get('id');
|
||||
const registerFormMoment = searchParams.get('school_year');
|
||||
@ -155,6 +157,19 @@ export default function CreateSubscriptionPage() {
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
// Student Form
|
||||
(field === 'studentLastName' &&
|
||||
(!formData.studentLastName ||
|
||||
formData.studentLastName.trim() === '')) ||
|
||||
(field === 'studentFirstName' &&
|
||||
(!formData.studentFirstName ||
|
||||
formData.studentFirstName.trim() === '')) ||
|
||||
(field === 'schoolYear' &&
|
||||
(!formData.schoolYear || formData.schoolYear.trim() === ''))
|
||||
) {
|
||||
return 'Champs requis';
|
||||
}
|
||||
return '';
|
||||
};
|
||||
|
||||
@ -247,7 +262,10 @@ export default function CreateSubscriptionPage() {
|
||||
guardianProfileRole:
|
||||
data?.student?.guardians[0]?.profile_role || '',
|
||||
}));
|
||||
|
||||
setIsNewResponsable(
|
||||
!Array.isArray(data?.student?.guardians) ||
|
||||
data.student.guardians.length <= 1
|
||||
);
|
||||
// Définir l'email initial
|
||||
setInitialGuardianEmail(
|
||||
data?.student?.guardians[0]?.associated_profile_email || ''
|
||||
@ -492,6 +510,12 @@ export default function CreateSubscriptionPage() {
|
||||
.catch((error) => {
|
||||
setIsLoading(false);
|
||||
logger.error('Erreur lors de la mise à jour du dossier:', error);
|
||||
showNotification(
|
||||
"Erreur lors de la mise à jour du dossier d'inscription",
|
||||
'error',
|
||||
'Erreur',
|
||||
'ERR_ADM_SUB_06'
|
||||
);
|
||||
});
|
||||
} else {
|
||||
// Création du dossier d'inscription
|
||||
@ -533,11 +557,23 @@ export default function CreateSubscriptionPage() {
|
||||
"Erreur lors de l'enregistrement du template:",
|
||||
error
|
||||
);
|
||||
showNotification(
|
||||
"Erreur lors de la création du dossier d'inscription",
|
||||
'error',
|
||||
'Erreur',
|
||||
'ERR_ADM_SUB_03'
|
||||
);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
setIsLoading(false);
|
||||
logger.error('Error during cloning or sending:', error);
|
||||
showNotification(
|
||||
"Erreur lors de la création du dossier d'inscription",
|
||||
'error',
|
||||
'Erreur',
|
||||
'ERR_ADM_SUB_05'
|
||||
);
|
||||
})
|
||||
);
|
||||
|
||||
@ -564,6 +600,12 @@ export default function CreateSubscriptionPage() {
|
||||
"Erreur lors de l'enregistrement du parent template:",
|
||||
error
|
||||
);
|
||||
showNotification(
|
||||
"Erreur lors de la création du dossier d'inscription",
|
||||
'error',
|
||||
'Erreur',
|
||||
'ERR_ADM_SUB_02'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@ -575,11 +617,23 @@ export default function CreateSubscriptionPage() {
|
||||
})
|
||||
.catch((error) => {
|
||||
setIsLoading(false);
|
||||
showNotification(
|
||||
"Erreur lors de la création du dossier d'inscription",
|
||||
'error',
|
||||
'Erreur',
|
||||
'ERR_ADM_SUB_04'
|
||||
);
|
||||
logger.error('Error during cloning or sending:', error);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
setIsLoading(false);
|
||||
showNotification(
|
||||
"Erreur lors de la création du dossier d'inscription",
|
||||
'error',
|
||||
'Erreur',
|
||||
'ERR_ADM_SUB_01'
|
||||
);
|
||||
logger.error('Error during register form creation:', error);
|
||||
});
|
||||
}
|
||||
@ -598,23 +652,10 @@ export default function CreateSubscriptionPage() {
|
||||
? prevData.selectedGuardians.filter((id) => id !== guardian.id)
|
||||
: [...prevData.selectedGuardians, guardian.id];
|
||||
|
||||
const updatedFormData = {
|
||||
return {
|
||||
...prevData,
|
||||
selectedGuardians: updatedSelectedGuardians,
|
||||
};
|
||||
|
||||
if (!isSelected) {
|
||||
// Si le guardian est sélectionné, remplir les champs
|
||||
updatedFormData.guardianLastName = guardian.last_name || '';
|
||||
updatedFormData.guardianFirstName = guardian.first_name || '';
|
||||
updatedFormData.guardianEmail = guardian.associated_profile_email || '';
|
||||
updatedFormData.guardianPhone = guardian.phone || '';
|
||||
} else {
|
||||
// Réinitialiser les champs si le guardian est désélectionné
|
||||
resetGuardianFields();
|
||||
}
|
||||
|
||||
return updatedFormData;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user