Checkpoint: Correction finale de l'affichage vide des apprenants dans la gestion des attestations. Problème résolu en aplatissant la structure de la requête Drizzle ORM (structure imbriquée non supportée) et en restructurant les résultats côté serveur.
This commit is contained in:
@@ -161,26 +161,22 @@ export async function getApprenantsWithAttestationStatus(formationId: number) {
|
||||
|
||||
const results = await db
|
||||
.select({
|
||||
apprenant: {
|
||||
id: apprenants.id,
|
||||
nom: apprenants.nom,
|
||||
prenom: apprenants.prenom,
|
||||
email: apprenants.email,
|
||||
},
|
||||
inscription: {
|
||||
id: inscriptions.id,
|
||||
sequenceId: inscriptions.sequenceId,
|
||||
},
|
||||
sequence: {
|
||||
id: sequences.id,
|
||||
nom: sequences.nom,
|
||||
},
|
||||
attestation: {
|
||||
id: attestations.id,
|
||||
documentUrl: attestations.documentUrl,
|
||||
emailEnvoye: attestations.emailEnvoye,
|
||||
dateEnvoiEmail: attestations.dateEnvoiEmail,
|
||||
},
|
||||
// Apprenant
|
||||
apprenantId: apprenants.id,
|
||||
apprenantNom: apprenants.nom,
|
||||
apprenantPrenom: apprenants.prenom,
|
||||
apprenantEmail: apprenants.email,
|
||||
// Inscription
|
||||
inscriptionId: inscriptions.id,
|
||||
inscriptionSequenceId: inscriptions.sequenceId,
|
||||
// Sequence
|
||||
sequenceId: sequences.id,
|
||||
sequenceNom: sequences.nom,
|
||||
// Attestation
|
||||
attestationId: attestations.id,
|
||||
attestationDocumentUrl: attestations.documentUrl,
|
||||
attestationEmailEnvoye: attestations.emailEnvoye,
|
||||
attestationDateEnvoiEmail: attestations.dateEnvoiEmail,
|
||||
})
|
||||
.from(inscriptions)
|
||||
.innerJoin(apprenants, eq(inscriptions.apprenantId, apprenants.id))
|
||||
@@ -194,7 +190,29 @@ export async function getApprenantsWithAttestationStatus(formationId: number) {
|
||||
)
|
||||
.orderBy(apprenants.nom, apprenants.prenom);
|
||||
|
||||
return results;
|
||||
// Restructurer les résultats au format attendu
|
||||
return results.map(r => ({
|
||||
apprenant: {
|
||||
id: r.apprenantId,
|
||||
nom: r.apprenantNom,
|
||||
prenom: r.apprenantPrenom,
|
||||
email: r.apprenantEmail,
|
||||
},
|
||||
inscription: {
|
||||
id: r.inscriptionId,
|
||||
sequenceId: r.inscriptionSequenceId,
|
||||
},
|
||||
sequence: {
|
||||
id: r.sequenceId,
|
||||
nom: r.sequenceNom,
|
||||
},
|
||||
attestation: r.attestationId ? {
|
||||
id: r.attestationId,
|
||||
documentUrl: r.attestationDocumentUrl,
|
||||
emailEnvoye: r.attestationEmailEnvoye,
|
||||
dateEnvoiEmail: r.attestationDateEnvoiEmail,
|
||||
} : null,
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user