diff --git a/app/controllers/admin/routes.py b/app/controllers/admin/routes.py index caefd8a2e..3eebaf174 100644 --- a/app/controllers/admin/routes.py +++ b/app/controllers/admin/routes.py @@ -186,12 +186,17 @@ def createEvent(templateid, programid): for year, cohort in rawBonnerCohorts.items(): if cohort: bonnerCohorts[year] = cohort + + isRelevantTraining = ((Event.isAllVolunteerTraining | Event.isCeltsTraining | Event.isTraining) & ~Event.isLaborOnly & (Event.term == Term.get(Term.year == 2024))) + trainingEvents = Event.select().where(isRelevantTraining).order_by(Event.name) + return render_template(f"/events/{template.templateFile}", template = template, eventData = eventData, termList = selectSurroundingTerms(g.current_term, prevTerms=0), requirements = requirements, bonnerCohorts = bonnerCohorts, + trainingEvents = trainingEvents, isProgramManager = isProgramManager) @@ -341,6 +346,9 @@ def eventDisplay(eventId): rule = request.url_rule + isRelevantTraining = ((Event.isAllVolunteerTraining | Event.isCeltsTraining | Event.isTraining) & ~Event.isLaborOnly & (Event.term == Term.get(Term.year == 2024))) + trainingEvents = Event.select().where(isRelevantTraining).order_by(Event.name) + # Event Edit if 'edit' in rule.rule: return render_template("events/createEvent.html", @@ -352,6 +360,7 @@ def eventDisplay(eventId): invitedYears = invitedYears, userHasRSVPed = userHasRSVPed, isProgramManager = isProgramManager, + trainingEvents = trainingEvents, filepaths = filepaths) # Event View else: diff --git a/app/models/requiredTraining.py b/app/models/requiredTraining.py new file mode 100644 index 000000000..b7fe7ce57 --- /dev/null +++ b/app/models/requiredTraining.py @@ -0,0 +1,10 @@ +from app.models import * +from app.models.event import Event + +class RequiredTraining(baseModel): + + event = ForeignKeyField(Event) # The regular event that requires training + trainingEvent = ForeignKeyField(Event) # The event that is the required training. + + + \ No newline at end of file diff --git a/app/static/js/createEvents.js b/app/static/js/createEvents.js index 4e8c5ef10..9e99278d7 100644 --- a/app/static/js/createEvents.js +++ b/app/static/js/createEvents.js @@ -890,4 +890,25 @@ $(document).ready(function () { }); 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); + } + } + }); }); \ No newline at end of file diff --git a/app/templates/events/createEvent.html b/app/templates/events/createEvent.html index 549e45013..75345a9e9 100644 --- a/app/templates/events/createEvent.html +++ b/app/templates/events/createEvent.html @@ -149,6 +149,42 @@
No training events available
+ {% endif %} +{% endmacro %}