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 PT 4 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 PTS 1 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 @@
Select a Category
Snack Attack
Studrel Meeting
+ Studrel Social
No RSVP
@@ -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}
removeEvent('meetingsAttended', event)}
+ on:click={() => removeEvent('snackAttacksAttended', event)}
>
{event.id}
{:else}
-
No Meetings Attended
+
No Snack Attacks Attended
{/each}
- Add a Meeting
+ Add a Snack Attack
{#each $events?.all ?? [] as event}
- {#if event.type == 'studMeeting' && !event.completed?.includes(doc(firestore, 'users', $target.email))}
+ {#if event.type == 'snackAttack' && !event.completed?.includes(doc(firestore, 'users', $target.email))}
{event.name}
{/if}
{/each}
{
- addEvent('meetingsAttended');
- }}> addEvent('snackAttacksAttended')}>
-
Snack Attacks Attended
- {#each $target.snackAttacksAttended as event}
+
Events Organized
+ {#each $target.eventsOrganized as event}
removeEvent('snackAttacksAttended', event)}
+ on:click={() => removeStringField('eventsOrganized', event)}
+ >
+ {event}
+
+
+
+
+ {:else}
+
No Events Organized
+ {/each}
+
+
+
addStringField('eventsOrganized')}>
+
+
+
+
+
Committee Engagement
+
+
Studrel Meetings Attended
+ {#each $target.meetingsAttended as event}
+
removeEvent('meetingsAttended', event)}
>
{event.id}
{:else}
-
No Snack Attacks Attended
+
No Meetings Attended
{/each}
- Add a Snack Attack
+ Add a Meeting
{#each $events?.all ?? [] as event}
- {#if event.type == 'snackAttack' && !event.completed?.includes(doc(firestore, 'users', $target.email))}
+ {#if event.type == 'studMeeting' && !event.completed?.includes(doc(firestore, 'users', $target.email))}
{event.name}
{/if}
{/each}
addEvent('snackAttacksAttended')}> {
+ addEvent('meetingsAttended');
+ }}>
-
Events Organized
- {#each $target.eventsOrganized as event}
+
Studrel Socials Attended
+ {#each $target.socialsAttended as event}
removeStringField('eventsOrganized', event)}
+ on:click={() => removeEvent('socialsAttended', event)}
>
- {event}
+ {event.id}
@@ -930,19 +958,26 @@
{:else}
-
No Events Organized
+
No Socials Attended
{/each}
-
-
+
+
+ Add a Social
+ {#each $events?.all ?? [] as event}
+ {#if event.type == 'studSocial' && !event.completed?.includes(doc(firestore, 'users', $target.email))}
+ {event.name}
+ {/if}
+ {/each}
+
addStringField('eventsOrganized')}> {
+ addEvent('socialsAttended');
+ }}>
@@ -1227,6 +1262,7 @@
Select a Category
Snack Attack
Studrel Meeting
+
Studrel Social
No RSVP
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
+