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 1/8] 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 %}
- {{ 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 2/8] 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 %}
{{ 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 4/8] 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 5/8] 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 6/8] 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 7/8] 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 8/8] 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 @@