From 11fc7da77ce1fd8b6491b3fc18cf2370a31f9336 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Thu, 22 Jan 2026 16:17:36 -0500 Subject: [PATCH 01/13] Added in InvitedUser variable to differentiate between users who were not rsvp and have attended and or have not attended --- app/controllers/admin/volunteers.py | 9 ++++++--- app/templates/events/volunteerDetails.html | 18 ++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/volunteers.py b/app/controllers/admin/volunteers.py index 2dbe81479..bb71e4745 100644 --- a/app/controllers/admin/volunteers.py +++ b/app/controllers/admin/volunteers.py @@ -115,11 +115,14 @@ def volunteerDetailsPage(eventID): waitlistUser = list(set([obj for obj in eventRsvpData if obj.rsvpWaitlist])) rsvpUser = list(set([obj for obj in eventRsvpData if not obj.rsvpWaitlist ])) - + invitedUser = list(set([obj for obj in eventParticipantData if not obj.rsvpWaitlist and datetime.now() < datetime.combine(event.startDate, event.timeStart)])) + attendedUser = list(set([obj for obj in eventParticipantData if not obj.rsvpWaitlist and datetime.now() >= datetime.combine(event.startDate, event.timeStart)])) + return render_template("/events/volunteerDetails.html", waitlistUser = waitlistUser, - attendedUser= eventParticipantData, - rsvpUser= rsvpUser, + attendedUser = attendedUser, + rsvpUser = rsvpUser, + invitedUser = invitedUser, event = event) diff --git a/app/templates/events/volunteerDetails.html b/app/templates/events/volunteerDetails.html index 8bc2a9eee..0101ec337 100644 --- a/app/templates/events/volunteerDetails.html +++ b/app/templates/events/volunteerDetails.html @@ -56,8 +56,8 @@

{{ participant.user.firstName }} {{ participant {% endmacro %} -{% macro printParticipants(type, attended, rsvp, waitlist) %} - {% set combinedParticipants = attended + rsvp + waitlist %} +{% macro printParticipants(type, attended, rsvp, waitlist, invited) %} + {% set combinedParticipants = attended + rsvp + waitlist + invited %} {% for p in combinedParticipants | unique %} {% if p in rsvp %} {{createTable(p, 'rsvp') if type == 'table' else createCard(p, 'rsvp') }} @@ -68,11 +68,14 @@

{{ participant.user.firstName }} {{ participant {% if p in waitlist %} {{createTable(p, 'waitlist') if type == 'table' else createCard(p, 'waitlist') }} {% endif %} + {% if p in invited %} + {{createTable(p, 'invited') if type == 'table' else createCard(p, 'invited') }} + {% endif %} {% endfor %} {% endmacro %} {% macro createCheckbox(checkboxName) %} - {% set labelText = "RSVP" if checkboxName == 'rsvp' else 'Waitlist' if checkboxName == 'waitlist' else 'Attended' %} + {% set labelText = "RSVP" if checkboxName == 'rsvp' else 'Waitlist' if checkboxName == 'waitlist' else 'Attended' if checkboxName == 'attended' else 'Invited' %}
{% endmacro %} @@ -82,7 +85,7 @@

{{ participant.user.firstName }} {{ participant {{super()}} -{% if attendedUser or waitlistUser or rsvpUser %} +{% if attendedUser or waitlistUser or rsvpUser or invitedUser %}

{{event.name}} on {{event.startDate.strftime('%m/%d/%Y')}} @@ -103,6 +106,9 @@

{% if attendedUser %} {{createCheckbox('attended')}} {% endif %} + {% if invitedUser %} + {{createCheckbox('invited')}} + {% endif %}


@@ -148,7 +154,7 @@


- {{ printParticipants('card', attendedUser, rsvpUser, waitlistUser) }} + {{ printParticipants('card', attendedUser, rsvpUser, waitlistUser, invitedUser) }}
@@ -165,7 +171,7 @@

- {{ printParticipants('table', attendedUser, rsvpUser, waitlistUser) }} + {{ printParticipants('table', attendedUser, rsvpUser, waitlistUser, invitedUser) }} {% else %} From fa303f19c14e00174b663e3514f49ffee4d545e6 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Fri, 6 Feb 2026 10:23:49 -0500 Subject: [PATCH 02/13] Fixed the user's Invited label in the table and card --- app/controllers/admin/volunteers.py | 2 -- app/templates/events/volunteerDetails.html | 20 ++++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/app/controllers/admin/volunteers.py b/app/controllers/admin/volunteers.py index bb71e4745..8d2c77ada 100644 --- a/app/controllers/admin/volunteers.py +++ b/app/controllers/admin/volunteers.py @@ -115,14 +115,12 @@ def volunteerDetailsPage(eventID): waitlistUser = list(set([obj for obj in eventRsvpData if obj.rsvpWaitlist])) rsvpUser = list(set([obj for obj in eventRsvpData if not obj.rsvpWaitlist ])) - invitedUser = list(set([obj for obj in eventParticipantData if not obj.rsvpWaitlist and datetime.now() < datetime.combine(event.startDate, event.timeStart)])) attendedUser = list(set([obj for obj in eventParticipantData if not obj.rsvpWaitlist and datetime.now() >= datetime.combine(event.startDate, event.timeStart)])) return render_template("/events/volunteerDetails.html", waitlistUser = waitlistUser, attendedUser = attendedUser, rsvpUser = rsvpUser, - invitedUser = invitedUser, event = event) diff --git a/app/templates/events/volunteerDetails.html b/app/templates/events/volunteerDetails.html index 13494eda6..0130a9bfb 100644 --- a/app/templates/events/volunteerDetails.html +++ b/app/templates/events/volunteerDetails.html @@ -56,9 +56,12 @@

{{ participant.user.firstName }} {{ participant {% endmacro %} -{% macro printParticipants(type, attended, rsvp, waitlist, invited) %} - {% set combinedParticipants = attended + rsvp + waitlist + invited %} +{% macro printParticipants(type, attended, rsvp, waitlist) %} + {% set combinedParticipants = attended + rsvp + waitlist %} {% for p in combinedParticipants | unique %} + {% if p in rsvp and not event.isRsvpRequired %} + {{createTable(p, 'invited') if type == 'table' else createCard(p, 'invited') }} + {% endif %} {% if p in rsvp %} {{createTable(p, 'rsvp') if type == 'table' else createCard(p, 'rsvp') }} {% endif %} @@ -68,9 +71,6 @@

{{ participant.user.firstName }} {{ participant {% if p in waitlist %} {{createTable(p, 'waitlist') if type == 'table' else createCard(p, 'waitlist') }} {% endif %} - {% if p in invited %} - {{createTable(p, 'invited') if type == 'table' else createCard(p, 'invited') }} - {% endif %} {% endfor %} {% endmacro %} @@ -85,7 +85,7 @@

{{ participant.user.firstName }} {{ participant {{super()}} -{% if attendedUser or waitlistUser or rsvpUser or invitedUser %} +{% if attendedUser or waitlistUser or rsvpUser %}

{{event.name}} on {{event.startDate.strftime('%m/%d/%Y')}} @@ -97,7 +97,7 @@


- {% if rsvpUser %} + {% if rsvpUser and event.isRsvpRequired %} {{createCheckbox('rsvp')}} {% endif %} {% if waitlistUser %} @@ -106,7 +106,7 @@

{% if attendedUser %} {{createCheckbox('attended')}} {% endif %} - {% if invitedUser %} + {% if rsvpUser and not event.isRsvpRequired %} {{createCheckbox('invited')}} {% endif %}

@@ -154,7 +154,7 @@


- {{ printParticipants('card', attendedUser, rsvpUser, waitlistUser, invitedUser) }} + {{ printParticipants('card', attendedUser, rsvpUser, waitlistUser) }}
@@ -171,7 +171,7 @@

- {{ printParticipants('table', attendedUser, rsvpUser, waitlistUser, invitedUser) }} + {{ printParticipants('table', attendedUser, rsvpUser, waitlistUser) }} {% else %} From 79180c35a3166790b50bbd521b5f6388500b4a10 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Fri, 6 Feb 2026 10:33:29 -0500 Subject: [PATCH 03/13] Fixed the entry counter in 'volunteer details'-html printParticipants counted for two sections --- app/templates/events/volunteerDetails.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/events/volunteerDetails.html b/app/templates/events/volunteerDetails.html index 0130a9bfb..3e2c43c90 100644 --- a/app/templates/events/volunteerDetails.html +++ b/app/templates/events/volunteerDetails.html @@ -62,7 +62,7 @@

{{ participant.user.firstName }} {{ participant {% if p in rsvp and not event.isRsvpRequired %} {{createTable(p, 'invited') if type == 'table' else createCard(p, 'invited') }} {% endif %} - {% if p in rsvp %} + {% if p in rsvp and event.isRsvpRequired %} {{createTable(p, 'rsvp') if type == 'table' else createCard(p, 'rsvp') }} {% endif %} {% if p in attended%} From fb6af41eb0012cfdbbf56fb47476632c1d1d5de0 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:20:23 -0500 Subject: [PATCH 04/13] Removed datetime restriction so that scanned user can show in volunteer details --- app/controllers/admin/volunteers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/volunteers.py b/app/controllers/admin/volunteers.py index 8d2c77ada..cf730ea73 100644 --- a/app/controllers/admin/volunteers.py +++ b/app/controllers/admin/volunteers.py @@ -115,7 +115,7 @@ def volunteerDetailsPage(eventID): waitlistUser = list(set([obj for obj in eventRsvpData if obj.rsvpWaitlist])) rsvpUser = list(set([obj for obj in eventRsvpData if not obj.rsvpWaitlist ])) - attendedUser = list(set([obj for obj in eventParticipantData if not obj.rsvpWaitlist and datetime.now() >= datetime.combine(event.startDate, event.timeStart)])) + attendedUser = list(set([obj for obj in eventParticipantData if not obj.rsvpWaitlist])) return render_template("/events/volunteerDetails.html", waitlistUser = waitlistUser, From 12ebcff7f99c071608e41b73d8781568951866de Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:25:52 -0500 Subject: [PATCH 05/13] changed eventVolunteerData to include non-waitlist RSVP's so that the manage volunteer table can see ALL the volunteers added to the event --- app/logic/participants.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/logic/participants.py b/app/logic/participants.py index 630ea0aea..b0933a959 100644 --- a/app/logic/participants.py +++ b/app/logic/participants.py @@ -193,8 +193,8 @@ def sortParticipantsByStatus(event): # if rsvp is required for the event, grab all volunteers that are in the waitlist eventWaitlistData = [volunteer for volunteer in (eventParticipants + eventRsvpData) if volunteer.rsvpWaitlist and event.isRsvpRequired] - # put the rest of the users that are not on the waitlist into the volunteer data - eventVolunteerData = [volunteer for volunteer in eventNonAttendedData if volunteer not in eventWaitlistData] + # put all participants and non-waitlisted RSVPs into the volunteer data + eventVolunteerData = [volunteer for volunteer in (eventParticipants + eventNonAttendedData) if volunteer not in eventWaitlistData] eventNonAttendedData = [] return eventNonAttendedData, eventWaitlistData, eventVolunteerData, eventParticipants \ No newline at end of file From d977e8a887b32c34f787ec2befe7e854eabd49dd Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:59:56 -0500 Subject: [PATCH 06/13] Removed resourceReader import statement --- app/logic/volunteerSpreadsheet.py | 1 - 1 file changed, 1 deletion(-) diff --git a/app/logic/volunteerSpreadsheet.py b/app/logic/volunteerSpreadsheet.py index 6a03ca6ac..c86600b14 100644 --- a/app/logic/volunteerSpreadsheet.py +++ b/app/logic/volunteerSpreadsheet.py @@ -1,4 +1,3 @@ -from importlib.abc import ResourceReader from os import major import xlsxwriter from peewee import fn, Case, JOIN, SQL, Select From 8fb90531712df0c7e3b32b7092da52831817be39 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Tue, 17 Feb 2026 15:30:10 -0500 Subject: [PATCH 07/13] I have changed the verbage from waitlist to waitlisted in volunteerDetails.html --- app/templates/events/volunteerDetails.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/events/volunteerDetails.html b/app/templates/events/volunteerDetails.html index 3e2c43c90..0f9aa1f74 100644 --- a/app/templates/events/volunteerDetails.html +++ b/app/templates/events/volunteerDetails.html @@ -69,7 +69,7 @@

{{ participant.user.firstName }} {{ participant {{createTable(p, 'attended') if type == 'table' else createCard(p, 'attended') }} {% endif %} {% if p in waitlist %} - {{createTable(p, 'waitlist') if type == 'table' else createCard(p, 'waitlist') }} + {{createTable(p, 'waitlisted') if type == 'table' else createCard(p, 'waitlisted') }} {% endif %} {% endfor %} {% endmacro %} From 2440ebb3adf1512597afe750fbbd5b6777fa3336 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Tue, 17 Feb 2026 15:40:00 -0500 Subject: [PATCH 08/13] Changed createCheckbox to a dictionary to increase readability. Also, finished updating waitlisted references for user in the checkbox --- app/templates/events/volunteerDetails.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/templates/events/volunteerDetails.html b/app/templates/events/volunteerDetails.html index 0f9aa1f74..e198f4809 100644 --- a/app/templates/events/volunteerDetails.html +++ b/app/templates/events/volunteerDetails.html @@ -75,7 +75,13 @@

{{ participant.user.firstName }} {{ participant {% endmacro %} {% macro createCheckbox(checkboxName) %} - {% set labelText = "RSVP" if checkboxName == 'rsvp' else 'Waitlist' if checkboxName == 'waitlist' else 'Attended' if checkboxName == 'attended' else 'Invited' %} + {%- set labelMap = { + 'rsvp': 'RSVP', + 'waitlist': 'Waitlisted', + 'attended': 'Attended', + 'invited': 'Invited' + } -%} + {% set labelText = labelMap.get(checkboxName, 'Invited') %}
{% endmacro %} From fe07fd018e8ac3487980324f43ef9faa228c248f Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Mon, 23 Feb 2026 15:54:31 -0500 Subject: [PATCH 09/13] Updated RSVP before and After Status --- app/logic/participants.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/app/logic/participants.py b/app/logic/participants.py index b0933a959..dd81a4a52 100644 --- a/app/logic/participants.py +++ b/app/logic/participants.py @@ -53,13 +53,28 @@ def addBnumberAsParticipant(bnumber, eventId): userStatus = "already signed in" else: + # If the event has already started, record as an EventParticipant (attendance). + # If the event is in the future, create an EventRsvp so RSVP lists remain consistent + # with templates that expect RSVP objects (which have `rsvpTime`). userStatus = "success" - # We are not using addPersonToEvent to do this because - # that function checks if the event is in the past, but - # someone could start signing people up via the kiosk - # before an event has started - totalHours = getEventLengthInHours(event.timeStart, event.timeEnd, event.startDate) - EventParticipant.create (user=kioskUser, event=event, hoursEarned=totalHours) + if event.isPastStart: + totalHours = getEventLengthInHours(event.timeStart, event.timeEnd, event.startDate) + EventParticipant.create(user=kioskUser, event=event, hoursEarned=totalHours) + else: + # create RSVP if one doesn't already exist + if not checkUserRsvp(kioskUser, event): + currentRsvp = getEventRsvpCountsForTerm(event.term) + waitlist = currentRsvp[event.id] >= event.rsvpLimit if event.rsvpLimit is not None else False + EventRsvp.create(user=kioskUser, event=event, rsvpWaitlist=waitlist) + targetList = "the waitlist" if waitlist else "the RSVP list" + try: + if g.current_user.username == kioskUser.username: + createRsvpLog(event.id, f"{kioskUser.fullName} joined {targetList}.") + else: + createRsvpLog(event.id, f"Added {kioskUser.fullName} to {targetList}.") + except Exception: + # logging should not break kiosk flow + pass return kioskUser, userStatus From 1a5fecca6785654350aae4f26ac0588a91dc2cd6 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Mon, 23 Feb 2026 16:40:00 -0500 Subject: [PATCH 10/13] re-implemented the attended status for the non-rsvp events --- app/logic/participants.py | 82 +++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 34 deletions(-) diff --git a/app/logic/participants.py b/app/logic/participants.py index dd81a4a52..f896259aa 100644 --- a/app/logic/participants.py +++ b/app/logic/participants.py @@ -53,28 +53,30 @@ def addBnumberAsParticipant(bnumber, eventId): userStatus = "already signed in" else: - # If the event has already started, record as an EventParticipant (attendance). - # If the event is in the future, create an EventRsvp so RSVP lists remain consistent - # with templates that expect RSVP objects (which have `rsvpTime`). + # Non-RSVP and RSVP event handling userStatus = "success" - if event.isPastStart: + if event.isRsvpRequired: + # RSVP event: standard logic (RSVP before event, attend after) + if event.isPastStart: + totalHours = getEventLengthInHours(event.timeStart, event.timeEnd, event.startDate) + EventParticipant.create(user=kioskUser, event=event, hoursEarned=totalHours) + else: + if not checkUserRsvp(kioskUser, event): + currentRsvp = getEventRsvpCountsForTerm(event.term) + waitlist = currentRsvp[event.id] >= event.rsvpLimit if event.rsvpLimit is not None else False + EventRsvp.create(user=kioskUser, event=event, rsvpWaitlist=waitlist) + targetList = "the waitlist" if waitlist else "the RSVP list" + try: + if g.current_user.username == kioskUser.username: + createRsvpLog(event.id, f"{kioskUser.fullName} joined {targetList}.") + else: + createRsvpLog(event.id, f"Added {kioskUser.fullName} to {targetList}.") + except Exception: + pass + else: + # Non-RSVP event: scanner entry ALWAYS marks as attended regardless of timing totalHours = getEventLengthInHours(event.timeStart, event.timeEnd, event.startDate) EventParticipant.create(user=kioskUser, event=event, hoursEarned=totalHours) - else: - # create RSVP if one doesn't already exist - if not checkUserRsvp(kioskUser, event): - currentRsvp = getEventRsvpCountsForTerm(event.term) - waitlist = currentRsvp[event.id] >= event.rsvpLimit if event.rsvpLimit is not None else False - EventRsvp.create(user=kioskUser, event=event, rsvpWaitlist=waitlist) - targetList = "the waitlist" if waitlist else "the RSVP list" - try: - if g.current_user.username == kioskUser.username: - createRsvpLog(event.id, f"{kioskUser.fullName} joined {targetList}.") - else: - createRsvpLog(event.id, f"Added {kioskUser.fullName} to {targetList}.") - except Exception: - # logging should not break kiosk flow - pass return kioskUser, userStatus @@ -95,22 +97,34 @@ def addPersonToEvent(user, event): try: volunteerExists = checkUserVolunteer(user, event) rsvpExists = checkUserRsvp(user, event) - if event.isPastStart: - if not volunteerExists: - # We duplicate these two lines in addBnumberAsParticipant - eventHours = getEventLengthInHours(event.timeStart, event.timeEnd, event.startDate) - EventParticipant.create(user = user, event = event, hoursEarned = eventHours) + + if event.isRsvpRequired: + # RSVP event logic + if event.isPastStart: + if not volunteerExists: + eventHours = getEventLengthInHours(event.timeStart, event.timeEnd, event.startDate) + EventParticipant.create(user = user, event = event, hoursEarned = eventHours) + else: + if not rsvpExists: + currentRsvp = getEventRsvpCountsForTerm(event.term) + waitlist = currentRsvp[event.id] >= event.rsvpLimit if event.rsvpLimit is not None else 0 + EventRsvp.create(user = user, event = event, rsvpWaitlist = waitlist) + targetList = "the waitlist" if waitlist else "the RSVP list" + if g.current_user.username == user.username: + createRsvpLog(event.id, f"{user.fullName} joined {targetList}.") + else: + createRsvpLog(event.id, f"Added {user.fullName} to {targetList}.") else: - if not rsvpExists: - currentRsvp = getEventRsvpCountsForTerm(event.term) - waitlist = currentRsvp[event.id] >= event.rsvpLimit if event.rsvpLimit is not None else 0 - EventRsvp.create(user = user, event = event, rsvpWaitlist = waitlist) - - targetList = "the waitlist" if waitlist else "the RSVP list" - if g.current_user.username == user.username: - createRsvpLog(event.id, f"{user.fullName} joined {targetList}.") - else: - createRsvpLog(event.id, f"Added {user.fullName} to {targetList}.") + # Non-RSVP event logic + if event.isPastStart: + # After event: create EventParticipant (attended) + if not volunteerExists: + eventHours = getEventLengthInHours(event.timeStart, event.timeEnd, event.startDate) + EventParticipant.create(user = user, event = event, hoursEarned = eventHours) + else: + # Before event: create EventRsvp (invited status) + if not rsvpExists: + EventRsvp.create(user = user, event = event, rsvpWaitlist = False) if volunteerExists or rsvpExists: return "already in" From 1137e06cc302e835c41404323297ead668f4dd21 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Tue, 24 Mar 2026 15:32:50 -0400 Subject: [PATCH 11/13] Added Invited status into checkedbox javascript to allow for filtered removal --- app/static/js/volunteerDetails.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/static/js/volunteerDetails.js b/app/static/js/volunteerDetails.js index 1b6192a23..1b5aafdf7 100644 --- a/app/static/js/volunteerDetails.js +++ b/app/static/js/volunteerDetails.js @@ -28,6 +28,7 @@ $(document).ready(function () { const status = data[3].toLowerCase(); if (status === 'attended' && !$('#attendedSelect').is(':checked')) return false; if (status === 'rsvp' && !$('#rsvpSelect').is(':checked')) return false; + if (status === 'invited' && !$('#invitedSelect').is(':checked')) return false; if (status === 'waitlist' && !$('#waitlistSelect').is(':checked')) return false; return true; }); From ea0d70181b6f84886da51b62516ed4c46b2de443 Mon Sep 17 00:00:00 2001 From: Ariana Meatchem <146577403+Meatchema@users.noreply.github.com> Date: Mon, 30 Mar 2026 14:11:09 -0400 Subject: [PATCH 12/13] Add @propriety for RSVP and changed conditional to allow invited status under reservation status --- app/models/eventRsvp.py | 4 ++++ app/templates/events/manageVolunteers.html | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/models/eventRsvp.py b/app/models/eventRsvp.py index 8afdd47c2..d492a0e4c 100644 --- a/app/models/eventRsvp.py +++ b/app/models/eventRsvp.py @@ -9,6 +9,10 @@ class EventRsvp(baseModel): rsvpTime = DateTimeField(default=datetime.now) rsvpWaitlist = BooleanField(default=False) + @property + def rsvp(self): + # EventRsvp always represents an RSVP record, including invited participants. + return True class Meta: indexes = ( (('user', 'event'), True), ) diff --git a/app/templates/events/manageVolunteers.html b/app/templates/events/manageVolunteers.html index aa66235fe..86d95f9c1 100644 --- a/app/templates/events/manageVolunteers.html +++ b/app/templates/events/manageVolunteers.html @@ -239,7 +239,7 @@

@@ -275,7 +275,7 @@

{{participant.user.email}} {{participant.user.phoneNumber}} - {{ 'Waitlist' if participant.rsvpWaitlist else 'RSVP' }} + {{ 'Waitlist' if participant.rsvpWaitlist else ('RSVP' if event.isRsvpRequired else 'Invited') }} Date: Tue, 31 Mar 2026 15:28:02 -0400 Subject: [PATCH 13/13] Added Conditional to allow accordion title of RSVP and Waitlist to change to Invited and Waitlist for non-rsvp events --- app/templates/events/manageVolunteers.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/templates/events/manageVolunteers.html b/app/templates/events/manageVolunteers.html index 86d95f9c1..6b6c98aae 100644 --- a/app/templates/events/manageVolunteers.html +++ b/app/templates/events/manageVolunteers.html @@ -239,7 +239,11 @@