generated from gitea_admin/default
ajout de bouton réserver et ajout du formulaire lycée
This commit is contained in:
@@ -27,6 +27,9 @@ function getTransporter() {
|
||||
host: config.smtpHost,
|
||||
port: Number(config.smtpPort),
|
||||
secure: String(config.smtpSecure).toLowerCase() === "true",
|
||||
connectionTimeout: 10000,
|
||||
greetingTimeout: 10000,
|
||||
socketTimeout: 15000,
|
||||
auth: {
|
||||
user: config.smtpUser,
|
||||
pass: config.smtpPassword,
|
||||
@@ -96,3 +99,93 @@ export async function sendParcDemandEmails(payload) {
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
function formatProjetLyceePriority(priority) {
|
||||
if (priority === null || priority === undefined) return "Non renseigné"
|
||||
if (priority === 0) return "Non souhaité"
|
||||
return `Priorité ${priority}`
|
||||
}
|
||||
|
||||
function getProjetLyceeSummary(payload) {
|
||||
const projectWishes = [
|
||||
["Concert-rencontre", payload.concertRencontrePriority],
|
||||
["Parcours Entrer dans la peau d'un professionnel du spectacle", payload.immersionPriority],
|
||||
["Parcours EAC", payload.eacPriority],
|
||||
["Concert commente", payload.concertCommentePriority],
|
||||
]
|
||||
.filter(([, priority]) => priority >= 1 && priority <= 4)
|
||||
.map(([label, priority]) => `${label} : ${formatProjetLyceePriority(priority)}`)
|
||||
|
||||
return [
|
||||
`Etablissement scolaire : ${payload.schoolName}`,
|
||||
`Departement : ${payload.department}`,
|
||||
`Ville : ${payload.city}`,
|
||||
`Enseignant coordinateur : ${payload.coordinatorName}`,
|
||||
`Email : ${payload.email}`,
|
||||
`Telephone : ${payload.phone}`,
|
||||
`Discipline enseignee : ${payload.discipline}`,
|
||||
`Niveau de classe : ${payload.classLevel}`,
|
||||
`Nombre probable d'eleves concernes : ${payload.studentCount}`,
|
||||
...(projectWishes.length ? ["", "Souhaits de projet :", ...projectWishes] : []),
|
||||
"",
|
||||
"Periode souhaitee :",
|
||||
payload.projectPeriod,
|
||||
].join("\n")
|
||||
}
|
||||
|
||||
export async function sendProjetLyceeEmails(payload) {
|
||||
const config = useRuntimeConfig()
|
||||
const mailer = getTransporter()
|
||||
|
||||
if (!mailer) {
|
||||
console.warn("Email projet lycée non envoyé: configuration SMTP incomplète.")
|
||||
return false
|
||||
}
|
||||
|
||||
if (!config.scolaireRequestRecipientEmail) {
|
||||
console.warn("Email projet lycée non envoyé: destinataire scolaire manquant.")
|
||||
return false
|
||||
}
|
||||
|
||||
const from = config.smtpFromName
|
||||
? `"${config.smtpFromName}" <${config.smtpFromEmail}>`
|
||||
: config.smtpFromEmail
|
||||
|
||||
const summary = getProjetLyceeSummary(payload)
|
||||
|
||||
const adminSubject = `WONDIF - Candidature projet lycee - ${payload.schoolName}`
|
||||
const adminText = [
|
||||
"Une nouvelle candidature a été envoyée depuis le formulaire Projet lycée.",
|
||||
"",
|
||||
summary,
|
||||
].join("\n")
|
||||
|
||||
const userSubject = "ONDIF - Confirmation de votre candidature - Projet lycée"
|
||||
const userText = [
|
||||
`Bonjour ${payload.coordinatorName},`,
|
||||
"",
|
||||
"Votre candidature à un projet avec l'Orchestre national d'Île-de-France a bien été transmise.",
|
||||
"L'équipe d'action culturelle reviendra vers vous d'ici fin juin 2026 afin de vous informer de la suite donnée à votre candidature.",
|
||||
"",
|
||||
"Recapitulatif :",
|
||||
summary,
|
||||
].join("\n")
|
||||
|
||||
await Promise.all([
|
||||
mailer.sendMail({
|
||||
from,
|
||||
to: config.scolaireRequestRecipientEmail,
|
||||
replyTo: payload.email,
|
||||
subject: adminSubject,
|
||||
text: adminText,
|
||||
}),
|
||||
mailer.sendMail({
|
||||
from,
|
||||
to: payload.email,
|
||||
subject: userSubject,
|
||||
text: userText,
|
||||
}),
|
||||
])
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user