Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maj 27/11 #104

Merged
merged 154 commits into from
Nov 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
728c84d
maj comptes admin + dr
AntonyKLINGER May 27, 2024
c377c2c
mise à jour 29/05
May 29, 2024
935a387
maj
May 29, 2024
87c82d6
maj
AntonyKLINGER May 29, 2024
743328c
maj 29/05
AntonyKLINGER May 29, 2024
1e42653
Merge branch 'main' into update-from-repoA
AntonyKLINGER May 29, 2024
6bbe844
maj email style
AntonyKLINGER May 29, 2024
b8120fe
Merge branch 'update-from-repoA' of https://github.com/incubateur-ade…
AntonyKLINGER May 29, 2024
698a3b1
mise à jour 29/05
May 29, 2024
379528c
maj comptes admin + dr (#1)
AntonyKLINGER May 27, 2024
bf59512
Merge branch 'update-from-repoA' of https://github.com/incubateur-ade…
AntonyKLINGER May 29, 2024
3933546
maj 03/06 >> besoins + ajout titre par jour
AntonyKLINGER Jun 3, 2024
1004a96
Merge branch 'main' into update-from-repoA
AntonyKLINGER Jun 3, 2024
c34a10c
maj visuel session
AntonyKLINGER Jun 3, 2024
dcdf8a6
Merge branch 'update-from-repoA' of https://github.com/incubateur-ade…
AntonyKLINGER Jun 3, 2024
3cfe8a8
maj comptes DR
AntonyKLINGER Jun 3, 2024
97387e1
maj session programme + dr
AntonyKLINGER Jun 3, 2024
17082cf
Merge branch 'main' into update-from-repoA
AntonyKLINGER Jun 3, 2024
33e022e
maj emails
AntonyKLINGER Jun 17, 2024
89c2c64
Update 3/06 - 14h14 (#4) (#5)
AntonyKLINGER Jun 17, 2024
1fa54c8
last maj 17/06
Jun 17, 2024
996c20c
Merge branch 'main' into update-from-repoA
AntonyKLINGER Jun 17, 2024
f6c013e
maj questionnaire
Jun 18, 2024
9c44822
Merge branch 'main' into update-from-repoA
AntonyKLINGER Jun 18, 2024
6fe8a65
maj espace perso
Jun 18, 2024
41af9ba
Merge branch 'update-from-repoA' of https://github.com/incubateur-ade…
Jun 18, 2024
0c9a9a3
maj
Jun 18, 2024
e6d7b9c
maj espace perso
AntonyKLINGER Jun 18, 2024
22a7367
maj espace perso
Jun 18, 2024
a90d0c4
Espace perso (#17)
AntonyKLINGER Jun 18, 2024
6559256
update perso
Jun 18, 2024
a75071e
Ajout de console.log pour debug
Jun 18, 2024
bbf42fd
Merge branch 'main' into update-from-repoA
AntonyKLINGER Jun 18, 2024
dbc11d9
maj admin + questionnaire
Jun 21, 2024
742e647
maj presence
AntonyKLINGER Jun 27, 2024
ba54f44
maj badge + mail
AntonyKLINGER Jun 27, 2024
07dc7e5
maj email after 1 day
AntonyKLINGER Jul 4, 2024
2487f05
maj presence
AntonyKLINGER Jul 4, 2024
e7a7c7e
Merge branch 'main' into update-from-repoA
AntonyKLINGER Jul 4, 2024
d3a9e68
maj 5 mn
AntonyKLINGER Jul 4, 2024
97cee5f
Merge branch 'update-from-repoA' of https://github.com/incubateur-ade…
AntonyKLINGER Jul 4, 2024
f7512ff
maj export excel questionnaires
AntonyKLINGER Jul 4, 2024
06ebf3a
maj workflow emails
AntonyKLINGER Jul 8, 2024
4b84da7
maj presents
AntonyKLINGER Jul 9, 2024
73f9b13
maj espace perso ressources
AntonyKLINGER Jul 10, 2024
fcf9a10
maj upload test
AntonyKLINGER Jul 17, 2024
73285b2
maj upload
AntonyKLINGER Jul 17, 2024
a89304d
Merge branch 'main' into update-from-repoA
AntonyKLINGER Jul 17, 2024
a4981a9
maj api session slug
AntonyKLINGER Aug 29, 2024
ea35f23
maj slug url sessions
AntonyKLINGER Aug 29, 2024
d31eeb5
maj affichage modules et sessions
AntonyKLINGER Aug 29, 2024
03ce753
maj accounts + users
AntonyKLINGER Sep 4, 2024
c26ce26
maj type
AntonyKLINGER Sep 4, 2024
0569671
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
dbb0d65
maj add js
AntonyKLINGER Sep 4, 2024
73044ec
maj add sans mail
AntonyKLINGER Sep 4, 2024
b79af8b
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
b4b6427
maj add
AntonyKLINGER Sep 4, 2024
904709c
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
1662af9
maj add
AntonyKLINGER Sep 4, 2024
632d73c
maj add
AntonyKLINGER Sep 4, 2024
205525e
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
da25c89
maj log add
AntonyKLINGER Sep 4, 2024
c089588
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
0005dca
maj without mails add
AntonyKLINGER Sep 4, 2024
7ac730b
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
a94ee87
maj add juste first day
AntonyKLINGER Sep 4, 2024
6b59c2c
maj first day (#44)
AntonyKLINGER Sep 4, 2024
1a4faf4
maj first day added
AntonyKLINGER Sep 4, 2024
621b736
maj adder
AntonyKLINGER Sep 4, 2024
1b77870
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
a121590
maj with email
AntonyKLINGER Sep 4, 2024
c1bd5cd
Merge branch 'update-from-repoA' of https://github.com/incubateur-ade…
AntonyKLINGER Sep 4, 2024
9f7ec30
maj without mail
AntonyKLINGER Sep 4, 2024
ea0b815
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
e7105f0
maj with sending
AntonyKLINGER Sep 4, 2024
9c7f290
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
17a5e27
maj session register
AntonyKLINGER Sep 4, 2024
5dbfede
maj testeur
AntonyKLINGER Sep 4, 2024
ddf4c9f
new maj test
AntonyKLINGER Sep 4, 2024
e3798af
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
37baed5
maj with logs
AntonyKLINGER Sep 4, 2024
d9bb079
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
2bf98cc
maj epp
AntonyKLINGER Sep 4, 2024
c2ac57e
maj gets
AntonyKLINGER Sep 4, 2024
8e39a32
maj step 1
AntonyKLINGER Sep 4, 2024
980038c
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
8826021
maj step 2
AntonyKLINGER Sep 4, 2024
5d96f63
Merge branch 'update-from-repoA' of https://github.com/incubateur-ade…
AntonyKLINGER Sep 4, 2024
8f000d9
maj step 3
AntonyKLINGER Sep 4, 2024
352fe40
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
8ce459d
maj step 4
AntonyKLINGER Sep 4, 2024
0ecd41b
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
536ea1d
maj step 5
AntonyKLINGER Sep 4, 2024
0bfce3f
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
a1a4c7f
maj step 6
AntonyKLINGER Sep 4, 2024
0bf98e8
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
fa67aee
maj step 8
AntonyKLINGER Sep 4, 2024
83075c4
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
7d47c4f
maj step 9
AntonyKLINGER Sep 4, 2024
5e27568
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
ff795b1
maj step 10
AntonyKLINGER Sep 4, 2024
3712c46
Merge branch 'update-from-repoA' of https://github.com/incubateur-ade…
AntonyKLINGER Sep 4, 2024
13d2736
maj all steps
AntonyKLINGER Sep 4, 2024
013cd05
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 4, 2024
aa6e350
maj package test
AntonyKLINGER Sep 4, 2024
2df1f01
delete log gets
AntonyKLINGER Sep 5, 2024
e575281
maj all
AntonyKLINGER Sep 5, 2024
830d5ec
maj gets
AntonyKLINGER Sep 5, 2024
fbf9d81
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 5, 2024
61cee56
maj workflow mail j+2
AntonyKLINGER Sep 5, 2024
281a167
maj password changes
AntonyKLINGER Sep 16, 2024
2a6b239
maj forgot password
AntonyKLINGER Sep 16, 2024
5dde7ac
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 16, 2024
4231b9a
maj export
AntonyKLINGER Sep 16, 2024
5045b38
ajout polynésie
AntonyKLINGER Sep 16, 2024
abb5ebf
maj reunion
AntonyKLINGER Sep 16, 2024
45a8e20
published sessions only
AntonyKLINGER Sep 17, 2024
7ac4f46
maj regions inscription
AntonyKLINGER Sep 18, 2024
e1e75c6
Maj GMT
AntonyKLINGER Sep 26, 2024
3921f15
maj ajout des régions manquantes
AntonyKLINGER Sep 30, 2024
e4519de
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 30, 2024
9ac65ce
ajout informations export
AntonyKLINGER Sep 30, 2024
538e14e
maj ajout champs formulaire
AntonyKLINGER Sep 30, 2024
fe66900
git test infos quizz
AntonyKLINGER Sep 30, 2024
49846d6
maj from session quizz
AntonyKLINGER Sep 30, 2024
957122e
maj test reviews
AntonyKLINGER Sep 30, 2024
12bd35d
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 30, 2024
37610a6
maj quizz admin
AntonyKLINGER Sep 30, 2024
4f3dffc
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 30, 2024
46d9896
maj questions satisfactions
AntonyKLINGER Sep 30, 2024
50d3c6b
maj telechargement badges
AntonyKLINGER Sep 30, 2024
33eca25
maj ajout participant manuellement
AntonyKLINGER Sep 30, 2024
9b33662
Merge branch 'main' into update-from-repoA
AntonyKLINGER Sep 30, 2024
e17979c
maj informations perso
AntonyKLINGER Sep 30, 2024
5938747
maj duree module
AntonyKLINGER Sep 30, 2024
fd2e068
maj export questionnaire
AntonyKLINGER Sep 30, 2024
fdf9ff9
maj slug cote dazur
AntonyKLINGER Oct 1, 2024
9830bd7
maj module slug
AntonyKLINGER Oct 7, 2024
150093f
maj all bugs resolution
AntonyKLINGER Oct 7, 2024
6b8a10d
Merge branch 'main' into update-from-repoA
AntonyKLINGER Oct 7, 2024
eea0b85
maj export structure
AntonyKLINGER Oct 11, 2024
1f82a1e
maj supaurl
AntonyKLINGER Oct 15, 2024
265d78f
maj date locale
AntonyKLINGER Oct 21, 2024
c5e09ef
maj detail date
AntonyKLINGER Oct 21, 2024
2941b0d
Merge branch 'main' into update-from-repoA
AntonyKLINGER Oct 21, 2024
3b6ea53
maj satisfaction
AntonyKLINGER Oct 22, 2024
552cf86
maj satisfaction quizz
AntonyKLINGER Oct 22, 2024
b43b935
maj affichage date
AntonyKLINGER Oct 22, 2024
45a4318
maj 13/11/2024
AntonyKLINGER Nov 13, 2024
7b3ffcd
maj correctifs 27/11
AntonyKLINGER Nov 27, 2024
3847ebb
maj rencontres
AntonyKLINGER Nov 27, 2024
3206d0c
maj detail questionnaire
AntonyKLINGER Nov 27, 2024
1b21618
maj workflow
AntonyKLINGER Nov 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions components/RencontreDetail.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ export default function RencontreDetail({ id, registrationId, setOpen, userId, u
},
{
id: 7,
text: "Avez-vous d’autres commentaires, suggestions ou remarques à partager concernant cette Rencontre ?",
text: "Avez-vous d’autres commentaires, suggestions ou remarques à partager concernant cette Rencontre ?*",
type: "textarea",
},
{
Expand Down Expand Up @@ -179,17 +179,18 @@ export default function RencontreDetail({ id, registrationId, setOpen, userId, u
const handleSubmit = async (event) => {
event.preventDefault();

const requiredQuestions = questions.filter(q => q.id !== 7 && q.id !== 9);
const unansweredQuestions = requiredQuestions.filter(q =>
const requiredQuestions = questions;
const unansweredQuestions = requiredQuestions.filter((q) =>
!responses[q.id] ||
(q.type === 'radioWithText' && responses[q.id] === 'autre' && !responses[`${q.id}_autre`]) ||
(q.type === 'textarea' && !responses[q.id])
(q.type === 'textarea' && !responses[q.id]) ||
(q.type === 'checkbox' && (!responses[q.id] || responses[q.id].length === 0))
);

if (unansweredQuestions.length > 0) {
setNotif({
icon: 'warning',
text: 'Veuillez répondre à toutes les questions obligatoires.',
text: 'Veuillez répondre à toutes les questions obligatoires avant de soumettre.',
});
return;
}
Expand Down Expand Up @@ -224,6 +225,7 @@ export default function RencontreDetail({ id, registrationId, setOpen, userId, u
}
};



function formatDate(dateString) {
if(dateString){
Expand Down
4 changes: 3 additions & 1 deletion pages/api/emails/sessionDays.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import path from 'path';
export default async function handler(req, res) {
const { prenom, email, nomRencontre, dateRencontre, lieuRencontre, nbJours, mail_referent, firstDayStartTime } = req.body;

const startTime = firstDayStartTime.split('-')[0].trim();

const transporter = nodemailer.createTransport({
host: 'smtp-relay.brevo.com',
port: 587,
Expand Down Expand Up @@ -39,7 +41,7 @@ export default async function handler(req, res) {
nbJours: nbJours,
dateRencontre: dateRencontre,
mail_referent: mail_referent,
firstDayStartTime: firstDayStartTime,
firstDayStartTime: startTime,
}
};

Expand Down
4 changes: 3 additions & 1 deletion pages/api/emails/sessionRegister.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import path from 'path';
export default async function handler(req, res) {
const { prenom, email, nomRencontre, dateRencontre, lieuRencontre, nbJours, mail_referent, firstDayStartTime } = req.body;

const startTime = firstDayStartTime.split('-')[0].trim();

const transporter = nodemailer.createTransport({
host: 'smtp-relay.brevo.com',
port: 587,
Expand Down Expand Up @@ -39,7 +41,7 @@ export default async function handler(req, res) {
nbJours: nbJours,
dateRencontre: dateRencontre,
mail_referent: mail_referent,
firstDayStartTime: firstDayStartTime
firstDayStartTime: startTime
}
};

Expand Down
4 changes: 3 additions & 1 deletion pages/api/emails/sessionWeeks.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import path from 'path';
export default async function handler(req, res) {
const { prenom, email, nomRencontre, dateRencontre, lieuRencontre, nbJours, mail_referent, firstDayStartTime } = req.body;

const startTime = firstDayStartTime.split('-')[0].trim();

const transporter = nodemailer.createTransport({
host: 'smtp-relay.brevo.com',
port: 587,
Expand Down Expand Up @@ -39,7 +41,7 @@ export default async function handler(req, res) {
nbJours: nbJours,
dateRencontre: dateRencontre,
mail_referent: mail_referent,
firstDayStartTime: firstDayStartTime,
firstDayStartTime: startTime,
}
};

Expand Down
133 changes: 66 additions & 67 deletions pages/api/workflow/workflowAfter.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
import prisma from '@/prisma'
import fetch from 'node-fetch'
import prisma from '@/prisma';
import fetch from 'node-fetch';

export default async function handle(req, res) {
if (req.method !== 'GET') {
res.setHeader('Allow', ['GET']);
res.status(405).end(`Method ${req.method} Not Allowed`);
return;
}

try {
const today = new Date();
// Heure actuelle en UTC (16:30)
const nowUTC = new Date();
const today = new Date(Date.UTC(nowUTC.getUTCFullYear(), nowUTC.getUTCMonth(), nowUTC.getUTCDate(), 16, 30, 0));

const pastSessions = await prisma.session.findMany({
// Récupérer toutes les sessions pertinentes
const sessions = await prisma.session.findMany({
where: {
dateDebut: {
lte: today,
Expand All @@ -29,81 +32,77 @@ export default async function handle(req, res) {
},
},
metasSession: true,
module: true,
},
});

for (const session of pastSessions) {
// Convertir 0.5 jours ou 1 jour en 1 jour, et garder 2 jours tel quel
const nombreJours = parseFloat(session.metasSession.nombreJours);
const joursPourEnvoi = nombreJours <= 1 ? 1 : 2;

for (const session of sessions) {
const dateDebut = new Date(session.dateDebut);
const expectedEmailDate = new Date(dateDebut);
expectedEmailDate.setDate(dateDebut.getDate() + joursPourEnvoi);

// Conversion de `nombreJours` (texte) en nombre
const sessionDurationText = session.metasSession.nombreJours.replace(',', '.'); // Remplace virgule par point
const sessionDuration = parseFloat(sessionDurationText);

// Si durée est inférieure ou égale à 1 (inclut 0,5), considérer comme 1 jour
if (sessionDuration <= 1 && today.toDateString() === dateDebut.toDateString()) {
// Session d'un jour
await sendEmails(session);
} else if (sessionDuration === 2) {
// Session de 2 jours : envoyer le deuxième jour
const secondDayDate = new Date(dateDebut);
secondDayDate.setDate(dateDebut.getDate() + 1); // Jour 2 = dateDebut + 1

// Vérifier si aujourd'hui correspond au jour d'envoi
if (today.toDateString() !== expectedEmailDate.toDateString()) {
continue; // Passer à la session suivante si ce n'est pas le bon jour pour envoyer l'email
if (today.toDateString() === secondDayDate.toDateString()) {
await sendEmails(session);
}
}
}

const firstProgramme = session.metasSession.programmeSession[0];
let firstDayStartTime;
res.status(200).json({ message: "Emails processed successfully" });
} catch (error) {
console.error("Error processing sessions or sending emails: ", error);
res.status(500).json({ error: `Failed to process sessions or send emails: ${error.message}` });
}
}

if (firstProgramme.horaires.includes('Jour')) {
firstDayStartTime = firstProgramme.horaires.split(' : ')[1].split(' - ')[0];
} else {
firstDayStartTime = firstProgramme.horaires.split(' - ')[0].trim();
}
// Fonction pour envoyer les emails aux participants (utilisateurs et comptes)
async function sendEmails(session) {
// Envoi aux utilisateurs inscrits
for (const registration of session.registrations) {
const userData = registration.user;

const formattedDateDebut = dateDebut.toLocaleDateString('fr-FR', {
day: '2-digit',
month: '2-digit',
year: 'numeric',
});
const emailResponse = await fetch(`${process.env.WEBSITE_URL}/api/emails/sessionAfterDays`, {
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
prenom: userData.prenom,
email: userData.mail,
}),
});

for (const registration of session.registrations) {
const userData = registration.user;
if (!emailResponse.ok) {
throw new Error(`Email request failed for user with status ${emailResponse.status}`);
}
}

const emailResponse = await fetch(`${process.env.WEBSITE_URL}/api/emails/sessionAfterDays`, {
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
prenom: userData.prenom,
email: userData.mail,
})
});
// Envoi aux comptes inscrits
for (const accountRegistration of session.accountRegistrations) {
const accountData = accountRegistration.account;

if (!emailResponse.ok) {
throw new Error(`Email request failed with status ${emailResponse.status}`);
}
}
const emailResponse = await fetch(`${process.env.WEBSITE_URL}/api/emails/sessionAfterDays`, {
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
prenom: accountData.email.split('@')[0], // Prénom basé sur l'email
email: accountData.email,
}),
});

for (const accountRegistration of session.accountRegistrations) {
const accountData = accountRegistration.account;

const emailResponse = await fetch(`${process.env.WEBSITE_URL}/api/emails/sessionAfterDays`, {
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
prenom: accountData.email.split('@')[0],
email: accountData.email
})
});

if (!emailResponse.ok) {
throw new Error(`Email request failed with status ${emailResponse.status}`);
}
}
if (!emailResponse.ok) {
throw new Error(`Email request failed for account with status ${emailResponse.status}`);
}

res.status(200).json({ message: "Emails sent successfully" });
} catch (error) {
console.error("Error fetching past sessions or sending emails: ", error);
res.status(500).json({ error: `Impossible de récupérer les enregistrements ou d'envoyer les emails : ${error.message}` });
}
}
2 changes: 1 addition & 1 deletion pages/rencontres/[category]/[session].js
Original file line number Diff line number Diff line change
Expand Up @@ -596,7 +596,7 @@ export default function Session({ data, user }){
</div>
) : (
<>
{!dispo && (
{(data.metasSession.nombrePlaces-nbInscrits < 1) && (
<div className={styles.Already}>
<span className="material-icons">error_outline</span>
<div><strong>Il ne reste plus de place pour cette session.</strong> Les inscriptions sont fermées.</div>
Expand Down
Binary file modified public/medias/background-pdf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion views/emails/session_register.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
<p>Vous venez de vous inscrire à une Rencontre Territoire Engagé Transition Ecologique et nous vous en remercions. Cette Rencontre représente une opportunité unique d’approfondir les enjeux et les solutions liés à la transition écologique de votre territoire et d'échanger avec d’autres collectivités de votre région.</p>
<p>Voici les détails de votre inscription :</p>
<p><strong>Thématique de la Rencontre : {{nomRencontre}}<br />
Date de la Rencontre : {{dateRencontre}}, {{firstDayStartTime}}<br />
Début de la Rencontre : {{dateRencontre}}, {{firstDayStartTime}}<br />
Durée : {{nbJours}} jour(s)<br />
Lieu de la Rencontre : {{lieuRencontre}}</strong></p>
<p>Vous pourrez retrouver toutes les informations clés (le lieu, la programmation, les intervenants, ...) sur votre <a href="{{siteUrl}}/espace-personnel">espace personnel</a>. Vous recevrez par ailleurs plus de détails techniques sur l’organisation de cette rencontre par mail quelques semaines avant. En cas de question, n’hésitez pas à contacter le référent de cette rencontre : {{mail_referent}}.</p>
Expand Down