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:
N3WT DE COMPET
2025-05-03 17:34:36 +02:00
parent e538ac3d56
commit 256f995698
10 changed files with 289 additions and 252 deletions

View File

@ -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'),

View File

@ -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);

View File

@ -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)

View File

@ -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);
}}

View File

@ -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]);