From 9afb8ec307b6024424467a53ccdfde04b77a3b01 Mon Sep 17 00:00:00 2001 From: Bhuvnesh Sharma Date: Wed, 2 Oct 2024 17:34:12 +0530 Subject: [PATCH 1/4] added flag in backend --- backend/djangoindia/db/models/event.py | 1 + .../RegisterEvent/RegisterEvent.config.ts | 8 ++++++ .../RegisterEvent/RegisterEvent.tsx | 26 ++++++++++++------- .../RegisterEvent/RegisterEvent.types.ts | 8 +++++- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/backend/djangoindia/db/models/event.py b/backend/djangoindia/db/models/event.py index 63e2b0f6..f21691a0 100644 --- a/backend/djangoindia/db/models/event.py +++ b/backend/djangoindia/db/models/event.py @@ -85,6 +85,7 @@ class Gender(models.TextChoices): github = models.URLField(null=True, blank=True) twitter = models.URLField(null=True, blank=True) other_links = models.URLField(null=True, blank=True) + include_in_attendee_list = models.BooleanField(default=False) # TODO: imnplement this (RSVP mailing + RSVP submission link) rsvp = models.BooleanField(default=False) diff --git a/frontend/src/containers/RegisterEvent/RegisterEvent.config.ts b/frontend/src/containers/RegisterEvent/RegisterEvent.config.ts index 41e09fc3..4858a9cc 100644 --- a/frontend/src/containers/RegisterEvent/RegisterEvent.config.ts +++ b/frontend/src/containers/RegisterEvent/RegisterEvent.config.ts @@ -80,4 +80,12 @@ export const REGISTER_FORM_FIELDS: (FieldType | Array)[] = [ type: 'text', }, ], + [ + { + name: 'include_in_attendee_list', + label: 'I would like to be included in the attendee list', + placeholder: '', + type: 'checkbox', + }, + ], ] diff --git a/frontend/src/containers/RegisterEvent/RegisterEvent.tsx b/frontend/src/containers/RegisterEvent/RegisterEvent.tsx index 57f83cb7..15805872 100644 --- a/frontend/src/containers/RegisterEvent/RegisterEvent.tsx +++ b/frontend/src/containers/RegisterEvent/RegisterEvent.tsx @@ -79,19 +79,27 @@ export const RegisterEvent = ({ eventId, seats_left, registration_end_date }: { } const currentDate = dayjs(); + const registrationEndDate = dayjs(registration_end_date); + const isRegistrationOpen = seats_left > 0 && currentDate.isBefore(registrationEndDate); + const isFull = seats_left === 0; + + let buttonText = 'Registration closed'; + if (isRegistrationOpen) { + buttonText = 'Register'; + } else if (isFull) { + buttonText = 'Housefull!'; + } return ( - {seats_left !== 0 && seats_left != null && currentDate.isBefore(dayjs(registration_end_date)) ? ( - - ) : ( seats_left != null && - - )} + {seats_left && registration_end_date&& }
diff --git a/frontend/src/containers/RegisterEvent/RegisterEvent.types.ts b/frontend/src/containers/RegisterEvent/RegisterEvent.types.ts index 1c8f8001..307cfa00 100644 --- a/frontend/src/containers/RegisterEvent/RegisterEvent.types.ts +++ b/frontend/src/containers/RegisterEvent/RegisterEvent.types.ts @@ -13,6 +13,7 @@ export type RegisterEventForm = { linkedin: string github?: string twitter?: string + include_in_attendee_list?: boolean } type SelectField = { @@ -25,8 +26,13 @@ type InputField = { options?: never } +type Checkbox = { + type: 'checkbox' + options?: never +} + export type FieldType = { label: string placeholder: string name: keyof RegisterEventForm -} & (SelectField | InputField) +} & (SelectField | InputField | Checkbox) From a7300bd11c5131fc48283e77863faf140eb78732 Mon Sep 17 00:00:00 2001 From: Bhuvnesh Sharma Date: Wed, 2 Oct 2024 17:36:11 +0530 Subject: [PATCH 2/4] minor --- frontend/src/sections/EventSection/EventCard.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/sections/EventSection/EventCard.tsx b/frontend/src/sections/EventSection/EventCard.tsx index 23204323..764c3c8a 100644 --- a/frontend/src/sections/EventSection/EventCard.tsx +++ b/frontend/src/sections/EventSection/EventCard.tsx @@ -21,7 +21,6 @@ interface EventProps { } const EventCard: React.FC = ({ - eventId, slug, title, date, From 6bb3cd6f6f5d95e1fe3113c66fe3f7f0694955cc Mon Sep 17 00:00:00 2001 From: dhruv ranjan Date: Fri, 4 Oct 2024 21:53:16 +0530 Subject: [PATCH 3/4] checkbox issue fix --- frontend/src/components/Input/Input.tsx | 3 +- .../RegisterEvent/RegisterEvent.tsx | 34 +++++++++++++------ 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/frontend/src/components/Input/Input.tsx b/frontend/src/components/Input/Input.tsx index ba7729f7..6bffc46b 100644 --- a/frontend/src/components/Input/Input.tsx +++ b/frontend/src/components/Input/Input.tsx @@ -11,7 +11,8 @@ export const Input = React.forwardRef( 0 && currentDate.isBefore(registrationEndDate); const isFull = seats_left === 0; @@ -89,17 +89,19 @@ export const RegisterEvent = ({ eventId, seats_left, registration_end_date }: { } else if (isFull) { buttonText = 'Housefull!'; } - + return ( - {seats_left && registration_end_date&& } + {seats_left !== 0 && seats_left != null && currentDate.isBefore(dayjs(registration_end_date)) ? ( + + ) : ( seats_left != null && + + )}
@@ -144,7 +146,17 @@ export const RegisterEvent = ({ eventId, seats_left, registration_end_date }: { name={name} render={({ field }) => ( - {label} + {type === 'checkbox' ? ( +
+ {label} + + + +
+ ):( + <> + {label} + {type === 'select' ? (