Skip to content

Fix volunteer RSVP language in non-RSVP event#1667

Open
Meatchema wants to merge 26 commits intodevelopmentfrom
issue-1663-change-rsvp-language
Open

Fix volunteer RSVP language in non-RSVP event#1667
Meatchema wants to merge 26 commits intodevelopmentfrom
issue-1663-change-rsvp-language

Conversation

@Meatchema
Copy link
Copy Markdown
Contributor

@Meatchema Meatchema commented Jan 22, 2026

Issue Description

Fixes #1663
For events that are not expecting RSVP, we need to change our language to 'Invited' students, if people are added ahead of time. Wherever we display those RSVP students, both before and after the event, should reflect this change.

New Changes (2/23/26)

  • Added a feature in participants.py in which if the event is in the past, an eventParticipant will be created assigning hours to the volunteer and if the event is in the future, then an EventRSVP will be made labeling them as an RSVP.

New Changes (2/9/26)

  • Removed the invitedUser variable in Volunteer.py, also used in VolunteerDetails.html
  • Removed time restraints to the invitedUser variable and attendedUser variable .
  • Added condition to tables under 'manage volunteers' and 'volunteer details' that would check if RsvpRequired was required or not. This resulted in 'invited' only showing on the tables within a Non-RSVP event and 'RSVP' only showing on the tables within a RSVP event.
  • changed eventVolunteerData to include non-waitlist RSVP's so that the manage volunteer table can see ALL the volunteers added to the event

Changes (Original)

  • Created the invitedUser variable in Volunteer.py, also used in VolunteerDetails.html
  • Added time restraints to the invitedUser variable and attendedUser variable so that the code could differentiate between them based on whether the student joined before or after the event. (Also adjusts so that if the event starts, they are considered attended)

Testing

  • Go to "Settings" under the "Admin" tab
  • Click on the "Term Management" drop down section
  • Click on the most recent year and then click add new term (Repeat until you can click on Spring 2026)
image

Under "Create Events":

  • Create two events of any type with under admin permissions (one event needs to have RSVP and the other shouldn't)
  • They both need to have a date after your current day (nothing on or before your current date in real life)
  • Switch to student and sign up for both events:
    Note: To add the student to the non-RSVP event:
    - retrieve the student's B# from their profile
    - Switch back to Brian's Admin Profile
    - Go to event's list and click on the non-Rsvp event
    - Click on Manage Volunteers, click Scanner Entry, then past the B#
    - This should result in the 'Invited' status in a non-RSVP event, and 'RSVP' status on a RSVP Event.
  • Once you go to "Volunteer Details", within "Events List", you will see that the student has been added as well as their status
  • Look at the table view, under volunteer status, the student will either be "RSVP", "Invited", "Waitlisted, or "Attended"
image

Note (UPDATED-2/9/26):
RSVP- A person who registered for an RSVP event online
Attended- An RSVP individual entered manually through Barcode to an RSVP event
Invited- An individual manually added to a non-RSVP event (using name search)
Waitlisted- A person who registered for the event after the RSVP limit was reached

The creation of these two previous events is to make sure that' RSVP' shows up under the RSVP event and 'Invited' shows up for the non-RSVP event. The ATTENDED status will only show if entered through the barcode. This is because the barcode and B# scanner is only used during and at the start of school events meaning the student is already there. Now you will create the third.

@Meatchema Meatchema self-assigned this Jan 22, 2026
@Meatchema Meatchema marked this pull request as draft January 22, 2026 21:56
@Meatchema Meatchema marked this pull request as ready for review January 28, 2026 19:35
@bakobagassas bakobagassas self-requested a review January 28, 2026 20:03
Copy link
Copy Markdown
Contributor

@bakobagassas bakobagassas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For non-rsvp events, when we manually add a volunteer using the scanner, they show as invited however, when we manually add them using their names they show as RSVP and not invited. It should be consistent when the event is non-rsvp whether we use the name search or scanner, we should have always have Invited instead of RSVP

Image

Copy link
Copy Markdown
Contributor

@bakobagassas bakobagassas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The people entered through the scanner thingy don't show up in manage volunteers, only in volunteers list. They should show up in both normally

Image

@Meatchema Meatchema requested a review from Kafui123 February 13, 2026 20:36
@Kafui123
Copy link
Copy Markdown
Contributor

image I think that under the volunteer status "waitlisted" might read more naturally instead of "waitlist"

Comment thread app/templates/events/volunteerDetails.html Outdated
@RueHaile RueHaile self-requested a review February 16, 2026 21:09
@Meatchema Meatchema requested a review from Kafui123 February 17, 2026 20:41
@RueHaile
Copy link
Copy Markdown
Contributor

In my opinion, it makes more sense as an admin to be able to invite certain students to a non rsvp program and for it to display as invited regardless of the entry method, be it through "scan entry" or through "add volunteers."

@Meatchema
Copy link
Copy Markdown
Contributor Author

In my opinion, it makes more sense as an admin to be able to invite certain students to a non rsvp program and for it to display as invited regardless of the entry method, be it through "scan entry" or through "add volunteers."

Good Afternoon, I was informed by Brian that anytime that a user is entered via Barcode the result should always be attended since the barcode scanner is only used at the start of an event. It is never used significantly before the event actually happens, so it does not qualify for invited or RSVP status. I will however try to ask Brian to check in on this to make sure this is the final product that was aimed for.

@RueHaile
Copy link
Copy Markdown
Contributor

In my opinion, it makes more sense as an admin to be able to invite certain students to a non rsvp program and for it to display as invited regardless of the entry method, be it through "scan entry" or through "add volunteers."

Good Afternoon, I was informed by Brian that anytime a user is entered via barcode, the result should always be attended since the barcode scanner is only used at the start of an event. It is never used significantly before the event actually happens, so it does not qualify for invited or RSVP status. I will, however, try to ask Brian to check in on this to make sure this is the final product that was aimed for.

No need, I just wanted to make sure that there is a reason behind the logic

Copy link
Copy Markdown
Contributor

@bakobagassas bakobagassas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is an error that occurs when we add a person through the scanner to an event that is an RSVP event. It looks like we are trying to access the rsvpTime for the EventParticipant, but it does not exist. I am guessing it is because your participants from the Scanner do not have RSVP time ? not sure.
Here is a screenshot of the error.

Image

@Meatchema
Copy link
Copy Markdown
Contributor Author

Meatchema commented Feb 23, 2026

The process has now been updated, now when the event is in the past EventParticipant will assign the volunteer with the hours they earned and if the event is upcoming it will create an EventRSVP object instead noting the user as RSVP :

The first image shows the RSVP time stamp now working after the change.
image

The second image shows an event that is RSVP and Currently in progress, so it shows RSVP for both the Add volunteers and Scanned Entry button results:

image

The third image shows an event currently in progress (counted as a past event) and so the hours now show for this rsvp event:

image

This last image is of a non-RSVP event, in which students were added via Scanner and Add Volunteer Button, The new changes do not seem to have interfered with the results for non-RSVP events (Incorrect! During testing it did mess with the non-RSVP events, I have done more fixes to ensure that attended shows up for the scanner entry and invited shows for the 'add volunteers' button. This rule only applies to non-rsvp events:

image

New results for non-rsvp events (as what the buttons currently do based on event type):

image

Non-RSVP Event Timeline:

if Event hasn't started yet:
-'Scanner': Adds as attended
-'Add volunteer': Adds as invited (shows in "RSVP and Waitlist" section before event)

if Event has passed:
-'Scanner': Adds as attended
-'Add volunteer': Adds as attended (shows in main volunteers table)

RSVP Event Timeline:

if Event hasn't started yet

  • 'Scanner': Adds as RSVP (or waitlist if limit reached)
  • 'Add volunteer': Adds as RSVP (or waitlist if limit reached) - shows in "RSVP'd Volunteers" section

if Event has passed

-'Scanner': Adds as attended

  • 'Add volunteer': Adds as attended

@RueHaile
Copy link
Copy Markdown
Contributor

RueHaile commented Mar 9, 2026

It seems fine to me!

Kafui123
Kafui123 previously approved these changes Mar 11, 2026
Copy link
Copy Markdown
Contributor

@Kafui123 Kafui123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All my comments have been addressed. I am waitng for another person to review so they can merge it.

@Meatchema Meatchema removed the request for review from BrianRamsay March 12, 2026 19:29
Copy link
Copy Markdown
Contributor

@JohnCox2211 JohnCox2211 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a test failing on your branch:

image

Copy link
Copy Markdown
Contributor

@JohnCox2211 JohnCox2211 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new invited toggle doesn't do anything. When toggled, volunteers under an event that have been invited are there. When untoggled, the invited volunteers are still there when they should be hidden.

Invited toggled:

Image

Invited untoggled:

Image

@RueHaile
Copy link
Copy Markdown
Contributor

There is an issue with the diet restrictions for the test database; are you aware of this and also when you press the diet restriction you will see this via a peewee error. I think it might be a more generic issue.
image

Not only that but I couldn't run it in test I got a app.models.term.TermDoesNotExist issue
image
in backup it works fine

Copy link
Copy Markdown
Contributor

@JohnCox2211 JohnCox2211 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No logs are created when adding volunteers to the invited list (when you rsvp someone instead, it is logged):

Image

Duplicate names in volunteer details when attended and invited is toggled (this does not happen for the rsvp/attended toggling on the development branch):

Image

@Meatchema
Copy link
Copy Markdown
Contributor Author

No logs are created when adding volunteers to the invited list (when you rsvp someone instead, it is logged):

Image Duplicate names in volunteer details when attended and invited is toggled (this does not happen for the rsvp/attended toggling on the development branch): Image

I have now fixed this by adding invited participants to be considered in allLogs variable, this is the result:
image

@Meatchema
Copy link
Copy Markdown
Contributor Author

There is an issue with the diet restrictions for the test database; are you aware of this and also when you press the diet restriction you will see this via a peewee error. I think it might be a more generic issue. <img alt="image" width="1022" height="461" src="https://private-user-images.githubusercontent.com/194423058/572157118-ad39b5e4-4353-45be-b959-244da4de3750.png?
I have not noticed this but I will begin looking at it now. :)
(Note: dont mind the emoji, just thought it was a funny way to show that I have seen and will be looking at your comment issue)

Copy link
Copy Markdown
Contributor

@JohnCox2211 JohnCox2211 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is still the same issue of duplicate names showing in the table on the volunteer details page when the event participant was both invited and marked as attending.

Image

@Meatchema Meatchema requested a review from JohnCox2211 April 13, 2026 17:58
@Meatchema
Copy link
Copy Markdown
Contributor Author

There is still the same issue of duplicate names showing in the table on the volunteer details page when the event participant was both invited and marked as attending.

Image

I have now gotten rid of duplicate names in volunter details. I have also gotten the status to change from invited to attended and added a feature that allows a log to be created that will show that will say that you have marked those students as attended rather than only having the invited log.

Copy link
Copy Markdown
Contributor

@JohnCox2211 JohnCox2211 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I created an RSVP event and RSVP's 5 volunteers. Upon trying to click on the Volunteer Details tab of the event, I got the following error:

Image

I encountered the same issue with a non-RSVP event as well, after inviting volunteers. It also happens even if you invite or RSVP no one

Additionally, you should pull from development.

@Meatchema
Copy link
Copy Markdown
Contributor Author

I created an RSVP event and RSVP's 5 volunteers. Upon trying to click on the Volunteer Details tab of the event, I got the following error:

Image I encountered the same issue with a non-RSVP event as well, after inviting volunteers. It also happens even if you invite or RSVP no one

Additionally, you should pull from development.

Hello, I have now pulled from development and fixed all merge conflicts. I now have also tested the above scenerio and it seems to work on my end. Below these images I have also listed the steps that I took because I want to know if I am following the same steps you did or if I am in the wrong development setting (test or backup):

image image image
  1. I pulled from development and fixed merge conflicts
  2. I reset the database using from-backup
  3. I used flask run
  4. Press :create event
  5. Created an event that starts three minutes later than current time setting it as an engagement event that requires rsvp
  6. Quickly added five students before event starts using "RSVP Volunteers"
  7. Quickly check the "Log" section to make sure each of their "RSVP" Logs show
  8. Wait until Event starts so that "RSVP and Waitlist" collapsable shows
  9. Mark all five students as attended and press save so that they move to the "Attended" collapsable
  10. Select " Volunteer Details" to make sure all the students status' changed to "Attended"
  11. Then lastly, selected "Log" to make sure the new "Marked as Attended" log shows up for each student

Am I missing anything or am I following different steps that what the issue your talking about requires?

@Meatchema Meatchema requested a review from JohnCox2211 April 18, 2026 17:17
@JohnCox2211 JohnCox2211 dismissed their stale review April 20, 2026 20:19

issue fixed, cannot rereview (need to setup new environment)

@Meatchema Meatchema removed the request for review from JohnCox2211 April 22, 2026 18:19
Comment thread app/logic/participants.py
def checkUserVolunteer(user, event):
return EventParticipant.select().where(EventParticipant.user == user, EventParticipant.event == event).exists()

def getTargetList(event, waitlist=False):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to write a test for the new function

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have now implemented a test for the getTargetList function:

Image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To test this new function, this is the command:
pytest tests/code/test_participants.py::test_getTargetList

@github-actions
Copy link
Copy Markdown

View Code Coverage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Change RSVP to Invited for non-RSVP events

5 participants