Un festival en plein air dédié aux jeux de société modernes sous toutes
- leurs formes. Les samedi 24 et dimanche 25 juin 2023 !
+ leurs formes.{festivalFullDate && ` Les ${festivalFullDate} !`}
En 2022, ce sont 18 000 visiteurs qui sont venus sous 300 chapiteaux et 2
@@ -362,43 +370,91 @@ const RegisterForm = ({ dispatch }: Props): JSX.Element => {
-
-
-
- À quelle date pourrais-tu venir ?
+ {hasMeetingDates ? (
+
- Top ! On fait en sorte qu'il y ait assez de bénévoles expérimentés pour
- les nombreux curieux comme toi, donc pour ne pas gâcher leur temps on
- compte sur ta présence :)
+ {!hasMeetingDates && firstMeeting === "" && (
+ <>
+ Top ! On te propose très vite des dates, ou à défaut, une visio
+ :)
+ >
+ )}
+ {firstMeeting === "visio" && (
+ <>
+ Top ! On te recontacte très vite avec des dates pour une visio
+ avec 2 bénévoles et 2-3 autres personnes intéréssées comme toi
+ :)
+ >
+ )}
+ {hasMeetingDates && firstMeeting !== "" && (
+ <>
+ Top ! On fait en sorte qu'il y ait assez de bénévoles
+ expérimentés pour les nombreux curieux comme toi, donc pour ne
+ pas gâcher leur temps on compte sur ta présence :)
+ >
+ )}
Si tu as un contre-temps, écris-nous à benevoles@parisestludique.fr
+ En tant que bénévole, il n’existe aucun lien de subordination entre
+ l’association et toi.
+
+ Il n'y a pas de rémunération, mais il est attendu que tu sois :
+ Accueillant et sincère avec les autres bénévoles comme avec les visiteurs
+ et les exposants;
+
+ Humble et à l’écoute pour permettre le travail en équipe et la
+ collaboration;
+
+ Neutre et tolérant politiquement et religieusement pour éviter la
+ discorde.
+
+
+
-
- Si les conditions sanitaires te le permettent, souhaites-tu être bénévole à
- PeL les 24 & 25 juin 2023 ?
+
+ Acceptes-tu de respecter cette charte ?
-
- {participationState === "peut-etre" ? (
-
- On te le reproposera dans quelques temps.
-
- Si tu as besoin d'infos, viens nous en parler sur le serveur Discord ! Pour
- le rejoindre,{" "}
-
- clique ici{" "}
-
- .
-
- ) : null}
-
-
-
- Quels jours viendras-tu ?
- Il est tôt pour le dire, tu peux y repondre plus tard sur la page profil.
-
- (Minimum 2 jours dont l'un sera samedi ou dimanche, idéalement samedi{" "}
- et dimanche ^^)
+ {charterState ? (
+ <>
+
+
+
+ Souhaites-tu être bénévole à PeL{" "}
+ {festivalShortDate && `les ${festivalShortDate}`} ?
+
+
+
+
+ {" "}
+ Oui
+
+
+ {" "}
+ Non
+
+
+ {" "}
+ Je ne sais pas encore
+
+
-
-
-
- {daysChoice.map(({ id, label }) => (
-
-
-
- ))}
-
-
-
+ {participationState === "peut-etre" ? (
+
+ On te le reproposera dans quelques temps.
+
+ Si tu as besoin d'infos, viens nous en parler sur le serveur
+ Discord ! Pour le rejoindre,{" "}
+
+ clique ici{" "}
+
+ .
+
+ ) : null}
+
+
+
+ Quels jours viendras-tu ?
+ (Minimum 2 jours dont l'un sera samedi ou dimanche, idéalement
+ samedi et dimanche ^^)
+
+
+
+
+ {daysChoice.map(({ id, label }) => (
+
+
+
+ ))}
+
+
+
+ >
+ ) : null}
Un commentaire, une précision ?
@@ -184,4 +245,8 @@ DayWishesForm.defaultProps = {
export default memo(DayWishesForm)
// Fetch server-side data here
-export const fetchFor = [fetchVolunteerDayWishesSetIfNeed, fetchMiscDiscordInvitationIfNeed]
+export const fetchFor = [
+ fetchVolunteerDayWishesSetIfNeed,
+ fetchMiscDiscordInvitationIfNeed,
+ fetchMiscFestivalDateListIfNeed,
+]
diff --git a/src/components/VolunteerBoard/DayWishesForm/styles.module.scss b/src/components/VolunteerBoard/DayWishesForm/styles.module.scss
index 2671b38..7f008f0 100755
--- a/src/components/VolunteerBoard/DayWishesForm/styles.module.scss
+++ b/src/components/VolunteerBoard/DayWishesForm/styles.module.scss
@@ -28,13 +28,19 @@
text-align: center;
}
-.participationTitle {
+.oneCol {
+ width: 100%;
+}
+
+.participationTitle,
+.charteTitle {
display: inline-block;
width: 320px;
margin-bottom: 10px;
}
-.participationLabel {
+.participationLabel,
+.charteLabel {
text-align: left;
display: inline-block;
margin-bottom: 10px;
diff --git a/src/components/VolunteerBoard/daysWishes.utils.ts b/src/components/VolunteerBoard/daysWishes.utils.ts
index 34bfe76..7a0fd15 100644
--- a/src/components/VolunteerBoard/daysWishes.utils.ts
+++ b/src/components/VolunteerBoard/daysWishes.utils.ts
@@ -23,6 +23,7 @@ export const daysChoiceSelectionDefaultState = daysChoice.reduce((state, { id })
}, {})
type SetFunction = (
+ charter: VolunteerDayWishes["charter"],
active: VolunteerDayWishes["active"],
dayWishes: VolunteerDayWishes["dayWishes"],
dayWishesComment: VolunteerDayWishes["dayWishesComment"]
@@ -37,10 +38,11 @@ export const useUserDayWishes = (): [VolunteerDayWishes | undefined, SetFunction
)
const saveWishes: SetFunction = useCallback(
- (active, dayWishes, dayWishesComment) => {
+ (charter, active, dayWishes, dayWishesComment) => {
if (!userWishes) return
save(jwtToken, 0, {
id: userWishes.id,
+ charter,
active,
dayWishes,
dayWishesComment,
diff --git a/src/routes/index.ts b/src/routes/index.ts
index 018de33..13395e2 100755
--- a/src/routes/index.ts
+++ b/src/routes/index.ts
@@ -10,8 +10,8 @@ import AsyncAnnouncements, { loadData as loadAnnouncementsData } from "../pages/
import AsyncTeamAssignment, { loadData as loadTeamAssignmentData } from "../pages/TeamAssignment"
import AsyncRegisterPage, { loadData as loadRegisterPage } from "../pages/Register"
import AsyncKnowledge, { loadData as loadKnowledgeData } from "../pages/Knowledge"
-import AsyncLoans, { loadData as loadLoansData } from "../pages/Loans"
-import AsyncLoaning, { loadData as loadLoaningData } from "../pages/Loaning"
+// import AsyncLoans, { loadData as loadLoansData } from "../pages/Loans"
+// import AsyncLoaning, { loadData as loadLoaningData } from "../pages/Loaning"
import AsyncKnowledgeCards, { loadData as loadCardKnowledgeData } from "../pages/KnowledgeCards"
import AsyncTeams, { loadData as loadTeamsData } from "../pages/Teams"
import AsyncBoard, { loadData as loadBoardData } from "../pages/Board"
@@ -46,16 +46,16 @@ export default [
component: AsyncKnowledge,
loadData: loadKnowledgeData,
},
- {
- path: "/emprunts",
- component: AsyncLoans,
- loadData: loadLoansData,
- },
- {
- path: "/emprunter",
- component: AsyncLoaning,
- loadData: loadLoaningData,
- },
+ // {
+ // path: "/emprunts",
+ // component: AsyncLoans,
+ // loadData: loadLoansData,
+ // },
+ // {
+ // path: "/emprunter",
+ // component: AsyncLoaning,
+ // loadData: loadLoaningData,
+ // },
{
path: "/fiches",
component: AsyncKnowledgeCards,
diff --git a/src/server/gsheets/localDb.ts b/src/server/gsheets/localDb.ts
index b45bfb2..ebf3dff 100644
--- a/src/server/gsheets/localDb.ts
+++ b/src/server/gsheets/localDb.ts
@@ -2,6 +2,7 @@
import path from "path"
import _, { assign } from "lodash"
import { promises as fs } from "fs"
+import { Misc } from "../../services/miscs"
import { Volunteer } from "../../services/volunteers"
import { Postulant } from "../../services/postulants"
import { Retex } from "../../services/retex"
@@ -281,6 +282,17 @@ function anonimizedDb(_s: States): States {
assign(r, new Retex(), { id: r.id, dayWishes: r.dayWishes })
})
}
+ if (s.Miscs) {
+ ;(s.Miscs as Misc[]).forEach((r) => {
+ assign(r, new Retex(), {
+ id: r.id,
+ date: r.date,
+ meetingId: r.meetingId,
+ meetingTitle: r.meetingTitle,
+ meetingUrl: r.meetingUrl,
+ })
+ })
+ }
return s
}
diff --git a/src/server/gsheets/miscs.ts b/src/server/gsheets/miscs.ts
index e71c739..567ff9d 100644
--- a/src/server/gsheets/miscs.ts
+++ b/src/server/gsheets/miscs.ts
@@ -2,6 +2,7 @@ import ExpressAccessors from "./expressAccessors"
import {
Misc,
MiscDiscordInvitation,
+ MiscFestivalDate,
MiscMeetingDate,
MiscWithoutId,
translationMisc,
@@ -28,6 +29,18 @@ export const miscDiscordInvitation = expressAccessor.get(async (list, _body, id)
)
})
+export const miscFestivalDateListGet = expressAccessor.get(async (list) =>
+ list
+ .filter((misc) => !!misc.date)
+ .map(
+ (misc) =>
+ ({
+ id: misc.id,
+ date: misc.date,
+ } as MiscFestivalDate)
+ )
+)
+
export const miscMeetingDateListGet = expressAccessor.get(async (list) =>
list
.filter((misc) => !!misc.meetingId)
diff --git a/src/server/gsheets/postulants.ts b/src/server/gsheets/postulants.ts
index 2bf8782..d13be81 100644
--- a/src/server/gsheets/postulants.ts
+++ b/src/server/gsheets/postulants.ts
@@ -62,17 +62,24 @@ async function sendMeetingEmail(
const miscSheet = await getSheet("Miscs", new Misc(), translationMisc)
const apiKey = process.env.SENDGRID_API_KEY || ""
- if (firstMeeting === "") {
+ const miscList = await miscSheet.getList()
+ if (!miscList) {
+ throw Error("Unable to load miscList")
+ }
+ const hasMeetingDates = miscList?.[0]?.meetingId !== ""
+
+ if (!hasMeetingDates || firstMeeting === "") {
if (__DEV__ || apiKey === "") {
console.error(`Fake sending meeting email to ${email}`)
} else {
sgMail.setApiKey(apiKey)
+ const visioComment = firstMeeting === "visio" ? " en visio" : ""
const msg = {
to: email,
from: "contact@parisestludique.fr",
subject: "Première rencontre Paris est Ludique",
- text: `Salut ${firstname},\n\nTon inscription est bien prise en compte !\n\nNous te contacterons pour trouver un moyen de se rencontrer.\n\nÀ bientôt :)\nPierre`,
- html: `Salut ${firstname},