mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
feat: Amélioration de la fiche élève pour y ajouter la fratrie et les
modalités de paimenet (problème affichage photo)
This commit is contained in:
@ -885,9 +885,9 @@ export default function Page({ params: { locale } }) {
|
||||
{
|
||||
name: t('mainContactMail'),
|
||||
transform: (row) =>
|
||||
row.student.guardians && row.student.guardians.length > 0 && (
|
||||
row.student.guardians[0].associated_profile_email
|
||||
)
|
||||
row.student.guardians &&
|
||||
row.student.guardians.length > 0 &&
|
||||
row.student.guardians[0].associated_profile_email,
|
||||
},
|
||||
{
|
||||
name: t('phone'),
|
||||
|
||||
@ -93,22 +93,20 @@ export const updateProfileRoles = (id, data, csrfToken) => {
|
||||
};
|
||||
|
||||
export const deleteProfileRoles = async (id, csrfToken) => {
|
||||
const response = await fetch(
|
||||
`${BE_AUTH_PROFILES_ROLES_URL}/${id}`,
|
||||
{
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRFToken': csrfToken,
|
||||
},
|
||||
credentials: 'include',
|
||||
}
|
||||
);
|
||||
const response = await fetch(`${BE_AUTH_PROFILES_ROLES_URL}/${id}`, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRFToken': csrfToken,
|
||||
},
|
||||
credentials: 'include',
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
// Extraire le message d'erreur du backend
|
||||
const errorData = await response.json();
|
||||
const errorMessage =
|
||||
errorData?.error || 'Une erreur est survenue lors de la suppression du profil.';
|
||||
errorData?.error ||
|
||||
'Une erreur est survenue lors de la suppression du profil.';
|
||||
|
||||
// Jeter une erreur avec le message spécifique
|
||||
throw new Error(errorMessage);
|
||||
|
||||
@ -159,6 +159,7 @@ export default function PaymentMethodSelector({
|
||||
|
||||
<RadioList
|
||||
sectionLabel="Choisissez une option"
|
||||
required
|
||||
items={paymentPlansOptions
|
||||
.filter((option) =>
|
||||
tuitionPaymentPlans.some((plan) => plan.frequency === option.id)
|
||||
|
||||
@ -150,7 +150,7 @@ export default function ResponsableInputFields({
|
||||
name="prenomResponsable"
|
||||
type="text"
|
||||
label={t('firstname')}
|
||||
value={item.firstname || ''}
|
||||
value={item.first_name || ''}
|
||||
onChange={(event) => {
|
||||
onGuardiansChange(item.id, 'first_name', event.target.value);
|
||||
}}
|
||||
|
||||
@ -11,7 +11,6 @@ export default function SiblingInputFields({
|
||||
errors,
|
||||
setIsPageValid,
|
||||
}) {
|
||||
|
||||
const getError = (index, field) => {
|
||||
return errors[index]?.[field]?.[0];
|
||||
};
|
||||
@ -43,7 +42,7 @@ export default function SiblingInputFields({
|
||||
}
|
||||
return; // Sortir pour éviter de continuer l'exécution inutilement
|
||||
}
|
||||
|
||||
|
||||
// Synchroniser siblings avec formData uniquement si nécessaire
|
||||
setFormData((prevFormData) => {
|
||||
if (JSON.stringify(prevFormData.siblings) !== JSON.stringify(siblings)) {
|
||||
@ -54,14 +53,14 @@ export default function SiblingInputFields({
|
||||
}
|
||||
return prevFormData; // Évitez une mise à jour inutile
|
||||
});
|
||||
|
||||
|
||||
// Valider les siblings
|
||||
const isValid = siblings.every((sibling, index) => {
|
||||
return !Object.keys(sibling).some(
|
||||
(field) => getLocalError(index, field) !== ''
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
setIsPageValid(isValid);
|
||||
}, [siblings, getLocalError, setFormData, setIsPageValid]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user