From 31db0f20a03dc0269f8b15d8d0127d9e5318a65c Mon Sep 17 00:00:00 2001 From: bakobagassas Date: Wed, 17 Dec 2025 16:49:41 -0500 Subject: [PATCH 01/11] Same message + format as the other tabs --- app/templates/events/eventList.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/events/eventList.html b/app/templates/events/eventList.html index ff0dbf522..8e0a4f8a1 100644 --- a/app/templates/events/eventList.html +++ b/app/templates/events/eventList.html @@ -208,7 +208,7 @@

Events List for {{selectedTerm.description}}

{% endfor %} {% else %} -

There are no events that earn service for this term.

+ There are no upcoming events for this program {% endif %}
From e2a048df525a0cc3de6cf25201d130327f8e6677 Mon Sep 17 00:00:00 2001 From: bakobagassas Date: Wed, 17 Dec 2025 17:00:29 -0500 Subject: [PATCH 02/11] standardized display when there are no events in V.Opportunities --- app/templates/events/eventList.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/templates/events/eventList.html b/app/templates/events/eventList.html index 8e0a4f8a1..18a169c17 100644 --- a/app/templates/events/eventList.html +++ b/app/templates/events/eventList.html @@ -208,6 +208,20 @@

Events List for {{selectedTerm.description}}

{% endfor %}
{% else %} +
+ + + + + + + + + + + +
ProgramEvent NameDateTimeLocation
+
There are no upcoming events for this program {% endif %} From 6adf2ca7b0e7b941e28232d885e81a317db8a05d Mon Sep 17 00:00:00 2001 From: bakobagassas Date: Mon, 22 Dec 2025 12:41:32 -0500 Subject: [PATCH 03/11] new function for the past volunteer opportunities events --- app/logic/events.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/logic/events.py b/app/logic/events.py index db921d149..fd3c47422 100644 --- a/app/logic/events.py +++ b/app/logic/events.py @@ -277,6 +277,32 @@ def getUpcomingVolunteerOpportunitiesCount(term, currentTime): programCountDict[programCount.id] = programCount.eventCount return programCountDict +def getpastVolunteerOpportunitiesCount(term, currentTime): + """ + Return a count of all past events for each volunteer opportunities program. + """ + + pastCount = ( + Program + .select(Program.id, fn.COUNT(Event.id).alias("eventCount")) + .join(Event, on=(Program.id == Event.program_id)) + .where( + (Event.term == term) & + (Event.deletionDate.is_null(True)) & + (Event.isService == True) & + ((Event.isLaborOnly == False) | Event.isLaborOnly.is_null(True)) & + ((Event.startDate < currentTime) | + ((Event.startDate == currentTime) & (Event.timeStart <= currentTime))) & + (Event.isCanceled == False) + ) + .group_by(Program.id) + ) + + programCountDict = {} + for programCount in pastCount: + programCountDict[programCount.id] = programCount.eventCount + return programCountDict + def getTrainingEvents(term, user): """ The allTrainingsEvent query is designed to select and count eventId's after grouping them From 2f05e56ab88dc668cf4cb7944a883d54f0e22e08 Mon Sep 17 00:00:00 2001 From: bakobagassas Date: Mon, 22 Dec 2025 12:42:25 -0500 Subject: [PATCH 04/11] used the new function in routes and hmtl to display the number of past events we have for a program --- app/controllers/main/routes.py | 6 +++++- app/templates/events/eventList.html | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/controllers/main/routes.py b/app/controllers/main/routes.py index f9d17d1c4..2955f5cff 100644 --- a/app/controllers/main/routes.py +++ b/app/controllers/main/routes.py @@ -26,7 +26,7 @@ from app.models.courseInstructor import CourseInstructor from app.models.backgroundCheckType import BackgroundCheckType -from app.logic.events import getUpcomingEventsForUser, getParticipatedEventsForUser, getTrainingEvents, getEventRsvpCountsForTerm, getUpcomingVolunteerOpportunitiesCount, getVolunteerOpportunities, getBonnerEvents, getCeltsLabor, getEngagementEvents +from app.logic.events import getUpcomingEventsForUser, getParticipatedEventsForUser, getTrainingEvents, getEventRsvpCountsForTerm, getUpcomingVolunteerOpportunitiesCount, getVolunteerOpportunities, getBonnerEvents, getCeltsLabor, getEngagementEvents, getpastVolunteerOpportunitiesCount from app.logic.transcript import * from app.logic.loginManager import logout from app.logic.searchUsers import searchUsers @@ -92,6 +92,7 @@ def events(selectedTerm, activeTab, programID): currentEventRsvpAmount = getEventRsvpCountsForTerm(term) volunteerOpportunities = getVolunteerOpportunities(term) countUpcomingVolunteerOpportunities = getUpcomingVolunteerOpportunitiesCount(term, currentTime) + countPastVolunteerOpportunities = getpastVolunteerOpportunitiesCount(term, currentTime) trainingEvents = getTrainingEvents(term, g.current_user) engagementEvents = getEngagementEvents(term) bonnerEvents = getBonnerEvents(term) @@ -109,6 +110,7 @@ def events(selectedTerm, activeTab, programID): # Get the count of all term events for each category to display in the event list page. volunteerOpportunitiesCount: int = len(studentEvents) + countPastVolunteerOpportunitiesCount: int = len(countPastVolunteerOpportunities) trainingEventsCount: int = len(trainingEvents) engagementEventsCount: int = len(engagementEvents) bonnerEventsCount: int = len(bonnerEvents) @@ -133,6 +135,7 @@ def events(selectedTerm, activeTab, programID): if request.headers.get('X-Requested-With') == 'XMLHttpRequest': return jsonify({ "volunteerOpportunitiesCount": volunteerOpportunitiesCount, + "countPastVolunteerOpportunitiesCount": countPastVolunteerOpportunitiesCount, "trainingEventsCount": trainingEventsCount, "engagementEventsCount": engagementEventsCount, "bonnerEventsCount": bonnerEventsCount, @@ -155,6 +158,7 @@ def events(selectedTerm, activeTab, programID): programID = int(programID), managersProgramDict = managersProgramDict, countUpcomingVolunteerOpportunities = countUpcomingVolunteerOpportunities, + countPastVolunteerOpportunities = countPastVolunteerOpportunities, toggleState = toggleState, ) diff --git a/app/templates/events/eventList.html b/app/templates/events/eventList.html index 18a169c17..a2b3c312f 100644 --- a/app/templates/events/eventList.html +++ b/app/templates/events/eventList.html @@ -51,13 +51,13 @@

Events List for {{selectedTerm.description}}