From ee780eaa1619eb3c2af1cfe2a7a3bb487c8abbc4 Mon Sep 17 00:00:00 2001 From: Jonah Bedouch Date: Sat, 2 Mar 2024 17:46:28 -0800 Subject: [PATCH 1/2] Update logic for Sp24 semester --- .svelte-kit/ambient.d.ts | 394 +++++++++++++++------------ src/lib/stores/userStore.ts | 2 +- src/lib/utils.ts | 20 +- src/routes/candportal/+page.svelte | 90 +++--- src/routes/memberportal/+page.svelte | 180 +++++++----- 5 files changed, 398 insertions(+), 288 deletions(-) diff --git a/.svelte-kit/ambient.d.ts b/.svelte-kit/ambient.d.ts index f83e345..c755c72 100644 --- a/.svelte-kit/ambient.d.ts +++ b/.svelte-kit/ambient.d.ts @@ -26,110 +26,139 @@ * ``` */ declare module '$env/static/private' { - export const LC_TELEPHONE: string; - export const GDMSESSION: string; - export const DESKTOP_SESSION: string; + export const SHELL: string; + export const npm_command: string; + export const SESSION_MANAGER: string; + export const npm_config_userconfig: string; + export const COLORTERM: string; + export const CSF_MDTVTexturesDirectory: string; + export const npm_config_cache: string; + export const LESS: string; + export const NVM_INC: string; + export const XDG_MENU_PREFIX: string; + export const CONDA_EXE: string; + export const _CE_M: string; export const CSF_DrawPluginDefaults: string; + export const _P9K_TTY: string; + export const NODE: string; + export const LESS_TERMCAP_se: string; + export const LESS_TERMCAP_so: string; + export const LC_ADDRESS: string; export const CSF_LANGUAGE: string; - export const CSF_XmlOcafResource: string; - export const MMGT_CLEAR: string; - export const LOGNAME: string; - export const EDITOR: string; - export const MAIL: string; + export const LC_NAME: string; + export const SSH_AUTH_SOCK: string; + export const CSF_MIGRATION_TYPES: string; + export const P9K_TTY: string; + export const MEMORY_PRESSURE_WRITE: string; + export const COLOR: string; + export const npm_config_local_prefix: string; + export const XMODIFIERS: string; + export const DESKTOP_SESSION: string; + export const LC_MONETARY: string; + export const CSF_OCCTResourcePath: string; + export const npm_config_globalconfig: string; export const FLUTTER_HOME: string; - export const LC_MEASUREMENT: string; + export const CSF_STEPDefaults: string; + export const EDITOR: string; + export const PWD: string; + export const XDG_SESSION_DESKTOP: string; + export const LOGNAME: string; + export const QT_QPA_PLATFORMTHEME: string; export const XDG_SESSION_TYPE: string; - export const SYSTEMD_EXEC_PID: string; + export const CONDA_PREFIX: string; export const DRAWHOME: string; + export const npm_config_init_module: string; + export const SYSTEMD_EXEC_PID: string; + export const _: string; + export const XAUTHORITY: string; + export const CSF_StandardLiteDefaults: string; + export const LS_OPTIONS: string; + export const GJS_DEBUG_TOPICS: string; + export const WINDOWPATH: string; + export const MOTD_SHOWN: string; + export const GDM_LANG: string; export const HOME: string; export const USERNAME: string; - export const CSF_STEPDefaults: string; - export const QT_IM_MODULE: string; - export const CSF_TObjMessage: string; - export const DRAWDEFAULT: string; - export const QT_AUTO_SCREEN_SCALE_FACTOR: string; - export const CSF_XSMessage: string; - export const USER: string; - export const DISPLAY: string; - export const MOTD_SHOWN: string; - export const PATH: string; - export const CSF_XCAFDefaults: string; - export const CSF_StandardLiteDefaults: string; - export const LANG: string; - export const LC_NAME: string; - export const XAUTHORITY: string; export const LC_PAPER: string; - export const CSF_PluginDefaults: string; - export const SESSION_MANAGER: string; - export const PWD: string; - export const XDG_RUNTIME_DIR: string; - export const CSF_ShadersDirectory: string; - export const XDG_SESSION_DESKTOP: string; - export const XDG_DATA_DIRS: string; - export const VTE_VERSION: string; + export const LANG: string; + export const LS_COLORS: string; export const XDG_CURRENT_DESKTOP: string; - export const CSF_OCCTResourcePath: string; - export const GDM_LANG: string; - export const CSF_StandardDefaults: string; - export const GNOME_TERMINAL_SERVICE: string; - export const MEMORY_PRESSURE_WRITE: string; - export const LC_ADDRESS: string; - export const SHELL: string; - export const CASROOT: string; - export const XDG_SESSION_CLASS: string; - export const CSF_IGESDefaults: string; - export const XMODIFIERS: string; - export const LC_IDENTIFICATION: string; + export const npm_package_version: string; export const MEMORY_PRESSURE_WATCH: string; - export const DBUS_SESSION_BUS_ADDRESS: string; - export const CSF_TObjDefaults: string; + export const VTE_VERSION: string; + export const CONDA_PROMPT_MODIFIER: string; + export const INVOCATION_ID: string; + export const MANAGERPID: string; + export const INIT_CWD: string; + export const CSF_ShadersDirectory: string; + export const CSF_EXCEPTION_PROMPT: string; + export const CSF_XmlOcafResource: string; + export const npm_lifecycle_script: string; + export const GJS_DEBUG_OUTPUT: string; + export const NVM_DIR: string; export const CSF_SHMessage: string; - export const GNOME_TERMINAL_SCREEN: string; - export const DEBUGINFOD_URLS: string; - export const LC_NUMERIC: string; - export const QT_QPA_PLATFORMTHEME: string; + export const npm_config_npm_version: string; + export const XDG_SESSION_CLASS: string; export const TERM: string; - export const XDG_MENU_PREFIX: string; - export const COLORTERM: string; - export const LC_TIME: string; - export const CSF_MDTVTexturesDirectory: string; - export const WINDOWPATH: string; - export const CSF_MIGRATION_TYPES: string; - export const CSF_EXCEPTION_PROMPT: string; - export const SSH_AUTH_SOCK: string; - export const LC_MONETARY: string; - export const SHLVL: string; - export const OLDPWD: string; + export const LC_IDENTIFICATION: string; + export const npm_package_name: string; export const LESS_TERMCAP_mb: string; - export const LESS_TERMCAP_md: string; export const LESS_TERMCAP_me: string; - export const LESS_TERMCAP_se: string; - export const LESS_TERMCAP_so: string; + export const LESS_TERMCAP_md: string; + export const _CE_CONDA: string; + export const npm_config_prefix: string; + export const USER: string; + export const CUDA_GCC: string; + export const CONDA_SHLVL: string; + export const CSF_StandardDefaults: string; + export const CSF_IGESDefaults: string; + export const DISPLAY: string; + export const CSF_XCAFDefaults: string; + export const npm_lifecycle_event: string; export const LESS_TERMCAP_ue: string; + export const SHLVL: string; + export const NVM_CD_FLAGS: string; export const LESS_TERMCAP_us: string; - export const LESS: string; - export const LS_OPTIONS: string; - export const LS_COLORS: string; - export const P9K_SSH: string; + export const LC_TELEPHONE: string; + export const QT_IM_MODULE: string; export const _P9K_SSH_TTY: string; - export const NVM_DIR: string; - export const NVM_CD_FLAGS: string; - export const NVM_BIN: string; - export const NVM_INC: string; - export const CONDA_EXE: string; - export const _CE_M: string; - export const _CE_CONDA: string; + export const LC_MEASUREMENT: string; + export const CSF_PluginDefaults: string; + export const CSF_TObjMessage: string; + export const npm_config_user_agent: string; + export const CASROOT: string; + export const npm_execpath: string; export const CONDA_PYTHON_EXE: string; - export const CONDA_SHLVL: string; - export const CONDA_PREFIX: string; + export const XDG_RUNTIME_DIR: string; export const CONDA_DEFAULT_ENV: string; - export const CONDA_PROMPT_MODIFIER: string; + export const DEBUGINFOD_URLS: string; + export const npm_package_json: string; + export const LC_TIME: string; export const BUN_INSTALL: string; - export const P9K_TTY: string; - export const _P9K_TTY: string; - export const _: string; - export const IS_FIREBASE_CLI: string; - export const __FIREBASE_DEFAULTS__: string; + export const P9K_SSH: string; + export const QT_AUTO_SCREEN_SCALE_FACTOR: string; + export const JOURNAL_STREAM: string; + export const CSF_XSMessage: string; + export const MMGT_CLEAR: string; + export const XDG_DATA_DIRS: string; + export const npm_config_noproxy: string; + export const PATH: string; + export const CSF_TObjDefaults: string; + export const npm_config_node_gyp: string; + export const GDMSESSION: string; + export const BLACKBOX_THEMES_DIR: string; + export const DBUS_SESSION_BUS_ADDRESS: string; + export const npm_config_global_prefix: string; + export const NVM_BIN: string; + export const MAIL: string; + export const DRAWDEFAULT: string; + export const GIO_LAUNCHED_DESKTOP_FILE_PID: string; + export const npm_node_execpath: string; + export const npm_config_engine_strict: string; + export const GIO_LAUNCHED_DESKTOP_FILE: string; + export const LC_NUMERIC: string; + export const OLDPWD: string; + export const TERM_PROGRAM: string; export const NODE_ENV: string; } @@ -166,110 +195,139 @@ declare module '$env/static/public' { */ declare module '$env/dynamic/private' { export const env: { - LC_TELEPHONE: string; - GDMSESSION: string; - DESKTOP_SESSION: string; + SHELL: string; + npm_command: string; + SESSION_MANAGER: string; + npm_config_userconfig: string; + COLORTERM: string; + CSF_MDTVTexturesDirectory: string; + npm_config_cache: string; + LESS: string; + NVM_INC: string; + XDG_MENU_PREFIX: string; + CONDA_EXE: string; + _CE_M: string; CSF_DrawPluginDefaults: string; + _P9K_TTY: string; + NODE: string; + LESS_TERMCAP_se: string; + LESS_TERMCAP_so: string; + LC_ADDRESS: string; CSF_LANGUAGE: string; - CSF_XmlOcafResource: string; - MMGT_CLEAR: string; - LOGNAME: string; - EDITOR: string; - MAIL: string; + LC_NAME: string; + SSH_AUTH_SOCK: string; + CSF_MIGRATION_TYPES: string; + P9K_TTY: string; + MEMORY_PRESSURE_WRITE: string; + COLOR: string; + npm_config_local_prefix: string; + XMODIFIERS: string; + DESKTOP_SESSION: string; + LC_MONETARY: string; + CSF_OCCTResourcePath: string; + npm_config_globalconfig: string; FLUTTER_HOME: string; - LC_MEASUREMENT: string; + CSF_STEPDefaults: string; + EDITOR: string; + PWD: string; + XDG_SESSION_DESKTOP: string; + LOGNAME: string; + QT_QPA_PLATFORMTHEME: string; XDG_SESSION_TYPE: string; - SYSTEMD_EXEC_PID: string; + CONDA_PREFIX: string; DRAWHOME: string; + npm_config_init_module: string; + SYSTEMD_EXEC_PID: string; + _: string; + XAUTHORITY: string; + CSF_StandardLiteDefaults: string; + LS_OPTIONS: string; + GJS_DEBUG_TOPICS: string; + WINDOWPATH: string; + MOTD_SHOWN: string; + GDM_LANG: string; HOME: string; USERNAME: string; - CSF_STEPDefaults: string; - QT_IM_MODULE: string; - CSF_TObjMessage: string; - DRAWDEFAULT: string; - QT_AUTO_SCREEN_SCALE_FACTOR: string; - CSF_XSMessage: string; - USER: string; - DISPLAY: string; - MOTD_SHOWN: string; - PATH: string; - CSF_XCAFDefaults: string; - CSF_StandardLiteDefaults: string; - LANG: string; - LC_NAME: string; - XAUTHORITY: string; LC_PAPER: string; - CSF_PluginDefaults: string; - SESSION_MANAGER: string; - PWD: string; - XDG_RUNTIME_DIR: string; - CSF_ShadersDirectory: string; - XDG_SESSION_DESKTOP: string; - XDG_DATA_DIRS: string; - VTE_VERSION: string; + LANG: string; + LS_COLORS: string; XDG_CURRENT_DESKTOP: string; - CSF_OCCTResourcePath: string; - GDM_LANG: string; - CSF_StandardDefaults: string; - GNOME_TERMINAL_SERVICE: string; - MEMORY_PRESSURE_WRITE: string; - LC_ADDRESS: string; - SHELL: string; - CASROOT: string; - XDG_SESSION_CLASS: string; - CSF_IGESDefaults: string; - XMODIFIERS: string; - LC_IDENTIFICATION: string; + npm_package_version: string; MEMORY_PRESSURE_WATCH: string; - DBUS_SESSION_BUS_ADDRESS: string; - CSF_TObjDefaults: string; + VTE_VERSION: string; + CONDA_PROMPT_MODIFIER: string; + INVOCATION_ID: string; + MANAGERPID: string; + INIT_CWD: string; + CSF_ShadersDirectory: string; + CSF_EXCEPTION_PROMPT: string; + CSF_XmlOcafResource: string; + npm_lifecycle_script: string; + GJS_DEBUG_OUTPUT: string; + NVM_DIR: string; CSF_SHMessage: string; - GNOME_TERMINAL_SCREEN: string; - DEBUGINFOD_URLS: string; - LC_NUMERIC: string; - QT_QPA_PLATFORMTHEME: string; + npm_config_npm_version: string; + XDG_SESSION_CLASS: string; TERM: string; - XDG_MENU_PREFIX: string; - COLORTERM: string; - LC_TIME: string; - CSF_MDTVTexturesDirectory: string; - WINDOWPATH: string; - CSF_MIGRATION_TYPES: string; - CSF_EXCEPTION_PROMPT: string; - SSH_AUTH_SOCK: string; - LC_MONETARY: string; - SHLVL: string; - OLDPWD: string; + LC_IDENTIFICATION: string; + npm_package_name: string; LESS_TERMCAP_mb: string; - LESS_TERMCAP_md: string; LESS_TERMCAP_me: string; - LESS_TERMCAP_se: string; - LESS_TERMCAP_so: string; + LESS_TERMCAP_md: string; + _CE_CONDA: string; + npm_config_prefix: string; + USER: string; + CUDA_GCC: string; + CONDA_SHLVL: string; + CSF_StandardDefaults: string; + CSF_IGESDefaults: string; + DISPLAY: string; + CSF_XCAFDefaults: string; + npm_lifecycle_event: string; LESS_TERMCAP_ue: string; + SHLVL: string; + NVM_CD_FLAGS: string; LESS_TERMCAP_us: string; - LESS: string; - LS_OPTIONS: string; - LS_COLORS: string; - P9K_SSH: string; + LC_TELEPHONE: string; + QT_IM_MODULE: string; _P9K_SSH_TTY: string; - NVM_DIR: string; - NVM_CD_FLAGS: string; - NVM_BIN: string; - NVM_INC: string; - CONDA_EXE: string; - _CE_M: string; - _CE_CONDA: string; + LC_MEASUREMENT: string; + CSF_PluginDefaults: string; + CSF_TObjMessage: string; + npm_config_user_agent: string; + CASROOT: string; + npm_execpath: string; CONDA_PYTHON_EXE: string; - CONDA_SHLVL: string; - CONDA_PREFIX: string; + XDG_RUNTIME_DIR: string; CONDA_DEFAULT_ENV: string; - CONDA_PROMPT_MODIFIER: string; + DEBUGINFOD_URLS: string; + npm_package_json: string; + LC_TIME: string; BUN_INSTALL: string; - P9K_TTY: string; - _P9K_TTY: string; - _: string; - IS_FIREBASE_CLI: string; - __FIREBASE_DEFAULTS__: string; + P9K_SSH: string; + QT_AUTO_SCREEN_SCALE_FACTOR: string; + JOURNAL_STREAM: string; + CSF_XSMessage: string; + MMGT_CLEAR: string; + XDG_DATA_DIRS: string; + npm_config_noproxy: string; + PATH: string; + CSF_TObjDefaults: string; + npm_config_node_gyp: string; + GDMSESSION: string; + BLACKBOX_THEMES_DIR: string; + DBUS_SESSION_BUS_ADDRESS: string; + npm_config_global_prefix: string; + NVM_BIN: string; + MAIL: string; + DRAWDEFAULT: string; + GIO_LAUNCHED_DESKTOP_FILE_PID: string; + npm_node_execpath: string; + npm_config_engine_strict: string; + GIO_LAUNCHED_DESKTOP_FILE: string; + LC_NUMERIC: string; + OLDPWD: string; + TERM_PROGRAM: string; NODE_ENV: string; [key: `PUBLIC_${string}`]: undefined; [key: `${string}`]: string | undefined; diff --git a/src/lib/stores/userStore.ts b/src/lib/stores/userStore.ts index 913f027..e3bbaec 100644 --- a/src/lib/stores/userStore.ts +++ b/src/lib/stores/userStore.ts @@ -16,9 +16,9 @@ export interface CandidateData extends UserData { eventsOrganized: Array; graphicsCreated: Array; meetingsAttended: Array; + socialsAttended: Array; snackAttacksAttended: Array; rsvps: Array; - merchDesigned: boolean; spotlightCreated: boolean; } diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 0944f2e..f66d16c 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -43,9 +43,9 @@ export function isCandidateData(x: any): x is CandidateData { "eventsOrganized" in x && typeof x.eventsOrganized == "object" && "graphicsCreated" in x && typeof x.graphicsCreated == "object" && "meetingsAttended" in x && typeof x.meetingsAttended == "object" && + "socialsAttended" in x && typeof x.socialsAttended == "object" && "snackAttacksAttended" in x && typeof x.snackAttacksAttended == "object" && - "merchDesigned" in x && typeof x.merchDesigned == "boolean" && - "spotlightCreated" in x && typeof x.merchDesigned == "boolean" && + "spotlightCreated" in x && typeof x.spotlightCreated == "boolean" && "rsvps" in x && typeof x.rsvps == "object"; } @@ -69,23 +69,23 @@ export function isLink(x: any): x is Link { } export function getGraphicPts(candidate: CandidateData): number { - return (candidate.graphicsCreated.length * 2) + - ((candidate.spotlightCreated ? 1 : 0) * 3) + - ((candidate.merchDesigned ? 1 : 0) * 4); + return (candidate.graphicsCreated.length * 2) + ((candidate.spotlightCreated ? 1 : 0) * 3); } export function getEventPts(candidate: CandidateData): number { - return (candidate.meetingsAttended.length * 1) + - (candidate.snackAttacksAttended.length * 1) + - (candidate.eventsOrganized.length * 4); + return (candidate.snackAttacksAttended.length * 1) + (candidate.eventsOrganized.length * 4); +} + +export function getEngagementPts(candidate: CandidateData): number { + return (candidate.meetingsAttended.length * 1) + (candidate.socialsAttended.length * 1) } export function getPoints(candidate: CandidateData): number { - return getGraphicPts(candidate) + getEventPts(candidate); + return getGraphicPts(candidate) + getEventPts(candidate) + getEngagementPts(candidate); } export function getBreadthReq(candidate: CandidateData): boolean { - return getGraphicPts(candidate) > 0 && getEventPts(candidate) > 0; + return getGraphicPts(candidate) > 0 && getEventPts(candidate) > 0 && getEngagementPts(candidate) > 0; } export function getProjectComplete(candidate: CandidateData): boolean { diff --git a/src/routes/candportal/+page.svelte b/src/routes/candportal/+page.svelte index d710a14..bf1b705 100644 --- a/src/routes/candportal/+page.svelte +++ b/src/routes/candportal/+page.svelte @@ -22,19 +22,23 @@ $: graphicsPoints = $candidateData ? $candidateData.graphicsCreated.length * 2 : 0; $: spotlightPoints = $candidateData ? ($candidateData.spotlightCreated ? 1 : 0) * 3 : 0; - $: merchPoints = $candidateData ? ($candidateData.merchDesigned ? 1 : 0) * 4 : 0; - $: graphicsCategoryPoints = graphicsPoints + spotlightPoints + merchPoints; + $: graphicsCategoryPoints = graphicsPoints + spotlightPoints; $: graphicReqSatisfied = graphicsCategoryPoints > 0; - $: meetingPoints = $candidateData ? $candidateData.meetingsAttended.length * 1 : 0; $: snackPoints = $candidateData ? $candidateData.snackAttacksAttended.length * 1 : 0; $: eventPoints = $candidateData ? $candidateData.eventsOrganized.length * 4 : 0; - $: eventCategoryPoints = meetingPoints + snackPoints + eventPoints; + $: eventCategoryPoints = snackPoints + eventPoints; $: eventReqSatisfied = eventCategoryPoints > 0; - $: totalPoints = graphicsCategoryPoints + eventCategoryPoints; + $: meetingPoints = $candidateData ? $candidateData.meetingsAttended.length * 1 : 0; + $: socialPoints = $candidateData ? $candidateData.socialsAttended.length * 1 : 0; + + $: engagementCategoryPoints = meetingPoints + socialPoints; + $: engagementReqSatisfied = engagementCategoryPoints > 0; + + $: totalPoints = graphicsCategoryPoints + eventCategoryPoints + engagementCategoryPoints; onMount(async () => { await userData.known(); @@ -63,10 +67,9 @@

We're very excited to have you initiating with us this semester, {$candidateData?.firstName}! Studrel is the student relations arm of HKN! We focus on event planning for the campus - community, marketing and social media promotions, and general community engagement. This - semester, we're demoing a brand new candidate project, alongside this brand new candidate - portal! If you have any problems with the portal or are confused about your responsibilities, - please reach out to your POC! + community, marketing and social media promotions, and general community engagement. If you + have any problems with the portal or are confused about your responsibilities, please reach + out to your POC!

@@ -121,7 +124,7 @@

Candidate Project - {#if totalPoints > 6 && graphicReqSatisfied && eventReqSatisfied} + {#if totalPoints > 6 && graphicReqSatisfied && eventReqSatisfied && engagementReqSatisfied} @@ -158,7 +161,7 @@

Breadth Requirement - {#if graphicReqSatisfied && eventReqSatisfied} + {#if graphicReqSatisfied && eventReqSatisfied && engagementReqSatisfied} @@ -192,6 +195,18 @@ /> {/if}

+

+ Committee Engagement + {#if engagementReqSatisfied} + + {:else} + + {/if} +

@@ -222,33 +237,19 @@ /> {/if}

-

- Merch Design 4 PTS - {#if $candidateData?.merchDesigned} - - {:else} - - {/if} -

Event Planning

- Studrel Meetings 1 PT4 PTS - {#if $candidateData?.meetingsAttended && $candidateData?.meetingsAttended.length > 0} - {#each $candidateData.meetingsAttended as meeting} + {#if $candidateData?.eventsOrganized && $candidateData?.eventsOrganized.length > 0} + {#each $candidateData.eventsOrganized as meeting}

{meeting}

{/each} {:else} -

No Studrel Meetings Attended (yet... )

+

No Events Organized (yet... )

{/if}

@@ -257,22 +258,37 @@ > {#if $candidateData?.snackAttacksAttended && $candidateData?.snackAttacksAttended.length > 0} {#each $candidateData.snackAttacksAttended as meeting} -

{meeting}

+

{meeting.id}

{/each} {:else}

No Snack Attacks Attended (yet... )

{/if}

+
+ +

Committee Engagement

- Event Organizing 4 PTS1 PT - {#if $candidateData?.eventsOrganized && $candidateData?.eventsOrganized.length > 0} - {#each $candidateData.eventsOrganized as meeting} -

{meeting}

+ {#if $candidateData?.meetingsAttended && $candidateData?.meetingsAttended.length > 0} + {#each $candidateData.meetingsAttended as meeting} +

{meeting.id}

{/each} {:else} -

No Events Organized (yet... )

+

No Studrel Meetings Attended (yet... )

+ {/if} +

+

+ Studrel Socials 1 PT + {#if $candidateData?.socialsAttended && $candidateData?.socialsAttended.length > 0} + {#each $candidateData.socialsAttended as social} +

{social.id}

+ {/each} + {:else} +

No Studrel Meetings Attended (yet... )

{/if}

diff --git a/src/routes/memberportal/+page.svelte b/src/routes/memberportal/+page.svelte index 743c216..7d862dd 100644 --- a/src/routes/memberportal/+page.svelte +++ b/src/routes/memberportal/+page.svelte @@ -129,8 +129,8 @@ eventsOrganized: [], graphicsCreated: [], meetingsAttended: [], + socialsAttended: [], rsvps: [], - merchDesigned: false, spotlightCreated: false }; @@ -190,7 +190,8 @@ const newEventName = writable(''); const newEventLocation = writable(''); const newEventTime: Writable = writable(); - const newEventCategory: Writable<'snackAttack' | 'studMeeting' | 'noRSVP' | ''> = writable(''); + const newEventCategory: Writable<'snackAttack' | 'studMeeting' | 'studSocial' | 'noRSVP' | ''> = + writable(''); $: newEventValidation = !( $newEventName != '' && @@ -241,7 +242,8 @@ const editEventName = writable(''); const editEventLocation = writable(''); const editEventTime: Writable = writable(); - const editEventCategory: Writable<'snackAttack' | 'studMeeting' | 'noRSVP' | ''> = writable(''); + const editEventCategory: Writable<'snackAttack' | 'studMeeting' | 'studSocial' | 'noRSVP' | ''> = + writable(''); $: editEventValidation = !( $editEventName != '' && @@ -292,20 +294,10 @@ // Update Candidate Form const addGraphicField = writable(''); const addMeetingField = writable(''); + const addSocialField = writable(''); const addSnackAttackField = writable(''); const addEventField = writable(''); - const toggleMerchDesign = async () => { - if (!isCandidateData($target)) { - return; - } - - await updateDoc(doc(firestore, 'users', $target.email), { - merchDesigned: !$target.merchDesigned - }); - $target.merchDesigned = !$target.merchDesigned; - }; - const toggleSpotlight = async () => { if (!isCandidateData($target)) { return; @@ -349,7 +341,9 @@ $target[type] = $target[type].filter((x) => x != instance); }; - const addEvent = async (type: 'meetingsAttended' | 'snackAttacksAttended') => { + const addEvent = async ( + type: 'meetingsAttended' | 'snackAttacksAttended' | 'socialsAttended' + ) => { if (!isCandidateData($target)) { return; } @@ -358,7 +352,11 @@ const meetingRef = doc( firestore, 'events', - type == 'meetingsAttended' ? $addMeetingField : $addSnackAttackField + type == 'meetingsAttended' + ? $addMeetingField + : type == 'socialsAttended' + ? $addSocialField + : $addSnackAttackField ); const userRef = doc(firestore, 'users', $target.email); @@ -375,13 +373,15 @@ $target[type] = [...$target[type], meetingRef]; if (type == 'meetingsAttended') { $addMeetingField = ''; + } else if (type == 'socialsAttended') { + $addSocialField = ''; } else { $addSnackAttackField = ''; } }; const removeEvent = async ( - type: 'meetingsAttended' | 'snackAttacksAttended', + type: 'meetingsAttended' | 'snackAttacksAttended' | 'socialsAttended', event: DocumentReference ) => { if (!isCandidateData($target)) { @@ -449,6 +449,12 @@ completed: arrayRemove(userRef) }); }); + $target.socialsAttended.forEach((event) => { + batch.update(event, { + rsvp: arrayRemove(userRef), + completed: arrayRemove(userRef) + }); + }); $target.snackAttacksAttended.forEach((event) => { batch.update(event, { rsvp: arrayRemove(userRef), @@ -568,6 +574,8 @@ const formatCategory = (category: string): string => { if (category == 'studMeeting') { return 'Studrel Meeting'; + } else if (category == 'studSocial') { + return 'Studrel Social'; } else if (category == 'snackAttack') { return 'Snack Attack'; } else if (category == 'noRSVP') { @@ -581,8 +589,8 @@ $drawerVisible = false; }; - const isType = (x: string): x is 'snackAttack' | 'studMeeting' | 'noRSVP' => { - return x == 'snackAttack' || x == 'studMeeting' || x == 'noRSVP'; + const isType = (x: string): x is 'snackAttack' | 'studMeeting' | 'studSocial' | 'noRSVP' => { + return x == 'snackAttack' || x == 'studMeeting' || x == 'studSocial' || x == 'noRSVP'; }; const openDrawer = (type: 'delete' | 'edit' | 'update', target: Event | CandidateData) => { @@ -599,6 +607,7 @@ if (type == 'update' && isCandidateData($target)) { $addGraphicField = ''; $addMeetingField = ''; + $addSocialField = ''; $addSnackAttackField = ''; $addEventField = ''; } @@ -618,13 +627,15 @@ ? 'snackAttacksAttended' : type == 'studMeeting' ? 'meetingsAttended' + : type == 'studSocial' + ? 'socialsAttended' : 'noRSVP'; }; - Candidate View | Studrel Candidate Portal + Member View | Studrel Candidate Portal @@ -725,6 +736,7 @@ +
@@ -770,24 +782,6 @@

Graphic Design

-
- Merch Designed - {#if $target.merchDesigned} - - {:else} - - {/if} -
Committee Spotlight Created {#if $target.spotlightCreated} @@ -842,11 +836,11 @@

Event Planning

-

Studrel Meetings Attended

- {#each $target.meetingsAttended as event} +

Snack Attacks Attended

+ {#each $target.snackAttacksAttended as event} {:else} - No Meetings Attended + No Snack Attacks Attended {/each}
addEvent('snackAttacksAttended')}>
-

Snack Attacks Attended

- {#each $target.snackAttacksAttended as event} +

Events Organized

+ {#each $target.eventsOrganized as event} + {:else} + No Events Organized + {/each} +
+ + +
+
+
+
+

Committee Engagement

+
+

Studrel Meetings Attended

+ {#each $target.meetingsAttended as event} + {:else} - No Snack Attacks Attended + No Meetings Attended {/each}
{ + addEvent('meetingsAttended'); + }}>
-

Events Organized

- {#each $target.eventsOrganized as event} +

Studrel Socials Attended

+ {#each $target.socialsAttended as event} {:else} - No Events Organized + No Socials Attended {/each} -
- +
+ { + addEvent('socialsAttended'); + }}>
@@ -1227,6 +1262,7 @@ +
From 2391825151c220fde01a0bcd830f05224fb1636b Mon Sep 17 00:00:00 2001 From: Jonah Bedouch Date: Sat, 2 Mar 2024 18:02:10 -0800 Subject: [PATCH 2/2] Update visuals to match --- src/lib/components/Drawer.svelte | 4 ++-- src/routes/candportal/+page.svelte | 4 ++-- src/routes/memberportal/+page.svelte | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/components/Drawer.svelte b/src/lib/components/Drawer.svelte index 38da34a..d105698 100644 --- a/src/lib/components/Drawer.svelte +++ b/src/lib/components/Drawer.svelte @@ -16,8 +16,8 @@
-
+

Graphic Design

@@ -238,7 +238,7 @@ {/if}

- +

Event Planning

Event Organizing +

Graphic Design