From ea3b1a3897243b4d94a15482d7d1ec830b3eb484 Mon Sep 17 00:00:00 2001 From: Arohasina Date: Fri, 1 Aug 2025 13:51:51 -0400 Subject: [PATCH] added a list of training options to create event page --- app/controllers/admin/routes.py | 5 +++- app/static/js/createEvents.js | 20 +++++++++++++++ app/templates/events/createEvent.html | 36 +++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/routes.py b/app/controllers/admin/routes.py index e48bd0fba..ebb9e1964 100644 --- a/app/controllers/admin/routes.py +++ b/app/controllers/admin/routes.py @@ -185,13 +185,14 @@ def createEvent(templateid, programid): if cohort: bonnerCohorts[year] = cohort - + trainingEvents = Event.select().where(Event.isTraining == True).order_by(Event.name) return render_template(f"/events/{template.templateFile}", template = template, eventData = eventData, futureTerms = futureTerms, requirements = requirements, bonnerCohorts = bonnerCohorts, + trainingEvents = trainingEvents, isProgramManager = isProgramManager) @@ -338,6 +339,7 @@ def eventDisplay(eventId): rule = request.url_rule + trainingEvents = Event.select().where(Event.isTraining == True).order_by(Event.name) # Event Edit if 'edit' in rule.rule: return render_template("events/createEvent.html", @@ -349,6 +351,7 @@ def eventDisplay(eventId): invitedYears = invitedYears, userHasRSVPed = userHasRSVPed, isProgramManager = isProgramManager, + trainingEvents = trainingEvents, filepaths = filepaths) # Event View else: diff --git a/app/static/js/createEvents.js b/app/static/js/createEvents.js index 32e4f1459..52e5e717a 100644 --- a/app/static/js/createEvents.js +++ b/app/static/js/createEvents.js @@ -799,6 +799,26 @@ function handleTimeFormatting(timeArray){ setCharacterLimit($("#inputCharacters"), "#remainingCharacters"); + // Handle "None Required" checkbox behavior + $('#noTrainingRequired').on('change', function() { + if ($(this).is(':checked')) { + // Uncheck all training checkboxes when "None Required" is selected + $('.training-checkbox').prop('checked', false); + } + }); + + // Handle training checkbox behavior + $('.training-checkbox').on('change', function() { + if ($(this).is(':checked')) { + // Uncheck "None Required" when any training is selected + $('#noTrainingRequired').prop('checked', false); + } else { + // If no training checkboxes are checked, check "None Required" + if ($('.training-checkbox:checked').length === 0) { + $('#noTrainingRequired').prop('checked', true); + } + } + }); }); diff --git a/app/templates/events/createEvent.html b/app/templates/events/createEvent.html index 096f5190e..37a52e62d 100644 --- a/app/templates/events/createEvent.html +++ b/app/templates/events/createEvent.html @@ -133,6 +133,42 @@

{{page_title}}

+ +
+ +
+
+ + +
+ {% if trainingEvents %} +
+ {% set seen_names = {} %} + {% for training in trainingEvents %} + {% if training.name not in seen_names %} + {% set _ = seen_names.update({training.name: training.id}) %} +
+ + +
+ {% endif %} + {% endfor %} + {% else %} +

No training events available

+ {% endif %} +
+ Select all trainings required before attending this event +
+

{% endmacro %}