diff --git a/client/public/doc/Politique_de_disciplineEN.pdf b/client/public/doc/Politique_de_disciplineEN.pdf new file mode 100644 index 0000000000000000000000000000000000000000..69c975470d4535440b2bc0d020faab7bb78f62ef Binary files /dev/null and b/client/public/doc/Politique_de_disciplineEN.pdf differ diff --git a/client/public/doc/Politique_de_disciplineFR.pdf b/client/public/doc/Politique_de_disciplineFR.pdf new file mode 100644 index 0000000000000000000000000000000000000000..041c2c9f20e4d9b7209258b555f3362a6c852f30 Binary files /dev/null and b/client/public/doc/Politique_de_disciplineFR.pdf differ diff --git a/client/public/doc/politiquebcapg.pdf b/client/public/doc/politiquebcapg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a946b2a79869415829ff6d167353caabb70e1a48 Binary files /dev/null and b/client/public/doc/politiquebcapg.pdf differ diff --git a/client/src/binding/ParticipantInfo.ts b/client/src/binding/ParticipantInfo.ts index be5d9a34e21be0931bc8fdebab7428f283e8b9e6..478feff08608addd51019cd666ee53efeedf5137 100644 --- a/client/src/binding/ParticipantInfo.ts +++ b/client/src/binding/ParticipantInfo.ts @@ -6,12 +6,12 @@ import type { TshirtSize } from "./TshirtSize"; import type { University } from "./University"; export type ParticipantInfo = { - first_name: string; - last_name: string; - email: string; - role: Role; - competition: Competition; - university: University; + first_name: string | null; + last_name: string | null; + email: string | null; + role: Role | null; + competition: Competition | null; + university: University | null; medical_conditions: string | null; allergies: string | null; pronouns: string | null; diff --git a/client/src/components/forms/AdditionnalInfoForm.tsx b/client/src/components/forms/AdditionnalInfoForm.tsx index e4b28c69677fc9edb3c16e603759e95590f8bb6f..3acde34fa360b147280e6b687e586e968145f3ba 100644 --- a/client/src/components/forms/AdditionnalInfoForm.tsx +++ b/client/src/components/forms/AdditionnalInfoForm.tsx @@ -33,12 +33,15 @@ export function AdditionalInfoForm() { } } + const [info, setInfo] = createSignal<ParticipantInfo | null>(null) + createEffect(async () => { const id = localStorage.getItem("id") if (!id) return const response = await getParticipant(id) if (!response.error) { const participant = response as ParticipantInfo + setInfo(participant) setValues(loginForm, participant) } }) @@ -50,11 +53,21 @@ export function AdditionalInfoForm() { method="post" onSubmit={handleSubmit} > + <a href="https://forms.office.com/Pages/ResponsePage.aspx?id=vqE-tygNokyiBaLolpqM-SIriDaTmJhLspWYwmEq8p1UMThJVFdBU0pHV1RSWE82NTBQVlBJTThGTi4u"> + <span class="text-xl font-bold text-blue-700"> + Lien pour le formulaire des repas à remplir aussi + </span> + </a> <div class="flex w-full flex-col gap-1 font-medium md:text-lg lg:text-xl"> - <span>Nom : {localStorage.getItem("name")}</span> - <span>Université : {localStorage.getItem("university")}</span> - <span>Rôle: {localStorage.getItem("role")}</span> - <span>Compétition: {localStorage.getItem("competition")}</span> + <span> + Bonjour {info()?.first_name} {info()?.last_name} + </span> + <span>Votre délégation est {info()?.university}</span> + {info() != null && info()?.competition != "none" && ( + <span> + vous faites la compétition {info()?.competition} + </span> + )} </div> <Field name="pronouns" diff --git a/client/src/request/routes.ts b/client/src/request/routes.ts index 950d62f07883238c2134a91c9376357c02d0cd07..e5653ace9fba689080303fa07f28ffbe6d107efc 100644 --- a/client/src/request/routes.ts +++ b/client/src/request/routes.ts @@ -103,6 +103,8 @@ export async function patchParticipantInfo(info: ParticipantInfo) { } else { payload.cv = "" } + console.log(info) + console.log(payload) return await fetch_patch("/participant", payload) } diff --git a/server/src/model/participant_info.rs b/server/src/model/participant_info.rs index 1f4d77cc2178bb99f33a452f02404941895a73a5..84f60a1198e491608831ed4d991f9a83d9356d5d 100644 --- a/server/src/model/participant_info.rs +++ b/server/src/model/participant_info.rs @@ -15,12 +15,12 @@ use super::{ #[derive(Debug, Serialize, Deserialize, sqlx::FromRow, TS)] #[ts(export)] pub struct ParticipantInfo { - pub first_name: String, - pub last_name: String, - pub email: String, - pub role: Role, - pub competition: Competition, - pub university: University, + pub first_name: Option<String>, + pub last_name: Option<String>, + pub email: Option<String>, + pub role: Option<Role>, + pub competition: Option<Competition>, + pub university: Option<University>, pub medical_conditions: Option<String>, pub allergies: Option<String>, pub pronouns: Option<String>,