Course Selection Module how-to

Good day. I’m having trouble setting up the Course Selection Module. Please let me know where I’m doing things wrong, or if I’m missing any steps:

  1. Installed Course Selection module version 1.2.03
    image

  2. Disabled modules Activities, Attendance, Behavior, Crowd Assessment, Formal Assessment, Individual Needs, Library, Markbook, Rubrics, Tracking

  3. Is the Planner module required for running Course Selection module? We don’t need Planner module but we have enabled it in case Course Selection needs it

  4. The current school year is 2019-2020
    image

  5. The timetable for school year 2019-2020 is created
    image

  6. Added Timetable Days
    image

  7. Added Classes By Period
    image

  8. Added two courses

  9. Added classes
    image

  10. Under Learn > Course Selection > “Course Selection Settings” set the “Course Selection School Year” to “2019-2020”
    image

  11. Add entry for Learn > Course Selection > “Course Selection Access”
    image

  12. Add entry for Learn > Course Selection > “Manage Course Blocks”

  13. Edit the added entry of “Manage Course Blocks” and under “Manage Courses” choose the courses
    image

  14. Add entry for Learn > Course Selection > “Manage Course Offerings”. Set “Max Selections” to 100. The “100” was a guess and please let me know if this is the cause of the problem
    image

  15. Set the School Year and the Year Group under “Manage Enrolment Restrictions”
    image

  16. Set “Max Selections” to 100 under Manage Blocks. The “100” was also a guess and please let me know if this is the cause of the problem

image

  1. Did not add entry for Learn > Course Selection > “Manage Meta Data”

  2. The Student will login, go to Learn > Course Selection and then click the Select button
    image

  3. The two courses will be displayed
    image

  4. Student chose a course by clicking the Choices checkbox
    image

  5. Clicking the Save button will display the message “Your request was completed successfully”

  6. The Administrator will login and go to Learn > Course Selection > “Approve Requests by Offering”, choose “2019-2020” from the Offering dropdown and clicking the Submit button
    image

  7. The Student’s submitted Course Selection will be displayed. I think I did something (or many things) wrong already because it’s saying “1 of 0 courses selected” instead of “0 of 1 courses selected”
    image

  8. When the checkbox for the course is ticked, the description is still saying “1 of 0 courses selected” and no message was displayed
    image

  9. I also clicked the “Approve All” check icon in case it’s needed. Do I need to click the “Approve All” button?
    image

  10. Choosing Learn > Course Selection > “Timetabling Engine” will display the message “There are no approved course selections for this school year.”
    image

Hi Richard,

Looks like you’re off to a great start and in many ways your post could serve as documentation for how to setup the course selection. I can’t spot anything at first glance that seems missing, aside from perhaps the Minimum Students, Target Students and Maximum Students settings. Also, as a note the Max Selections is per student, so 100 may be a bit too high? Also, with a minimum selection of 0, then this is why you’re seeing 1 of 0, because the selections are expecting at least 0 items. Perhaps try setting that as at least 1 or a different minimum.

Hope this helps!

Thank you @sandra for the reply. I changed the minimum selection to 1 but the message is now “1 of 1 courses selected” even when the checkbox is not yet ticked

When the checkbox is ticked there’s no message that appears
image

This is from the error log. I forgot to check this earlier
[Fri Mar 31 15:04:04.631728 2023] [php:error] [pid 978] [client <CLENT_IP_ADDRESS>:54468] PHP Fatal error: Uncaught League\Container\Exception\NotFoundException: Alias (Gibbon\Module\CourseSelection\Domain\SelectionsGateway) is not being managed by the container or delegates in <GIBBON_PATH>/vendor/league/container/src/Container.php:188\nStack trace:\n#0 <GIBBON_PATH>/modules/Course Selection/approval_approveAjax.php(26): League\Container\Container->get()\n#1 {main}\n thrown in <GIBBON_PATH>/vendor/league/container/src/Container.php on line 188, referer: http://<SERVER_IP_ADDRESS>/index.php?q=%2Fmodules%2FCourse+Selection%2Fapproval_byOffering.php&gibbonSchoolYearID=025&sidebar=false&courseSelectionOfferingID=00000001

I just noticed that in your screenshot 11 the year you were working with was the 2019 and 2020 school year, but the start date and end dates are in 2023. Also, screenshot 18 shows a student registering in 2023 for courses three to four years ago. I suspect your difficulty is related to the date issues working with previous years.

Thank you @GlennS for the reply. I changed the school year to 2022-2023 but the issue remains.

  1. The current school year is 2022-2023
    image

  2. The timetable for school year 2022-2023 is created
    image

  3. Under Learn > Course Selection > “Course Selection Settings” set the “Course Selection School Year” to “2022-2023”. The “Minimum Students per Class” is set to 1
    image
    image

  4. Under Learn > Course Selection > “Course Selection Access” set the “School Year” to “2022-2023”
    image
    image

  5. Under Learn > Course Selection > “Manage Course Blocks” set the “School Year” to “2022-2023”


  6. Under Learn > Course Selection > “Manage Course Offerings” set “Max Selections” to 10

  7. Set the School Year of “Manage Enrolment Restrictions” to “2022-2023”
    image

8.Under “Manage Blocks” of “Manage Course Offerings” set “Max Selections” to 10
image
image

  1. Under Learn > “Manage Meta Data” add entry for the course and leave the other fields empty

  2. The Student will not encounter any problem when choosing a course, just like before

  3. The Administrator will login and go to Learn > Course Selection > “Approve Requests by Offering”, choose “2022-2023” from the Offering dropdown and clicking the Submit button
    image

12 .The Student’s submitted Course Selection will be displayed. Just like before, the message is saying “1 of 1 courses selected” instead of “0 of 1 courses selected”
image

  1. When the checkbox for the course is ticked, the description is still saying “1 of 1 courses selected” and no message was displayed
    image

  2. This last step will also cause the same error log entry as before
    [Tue Apr 04 15:21:55.387314 2023] [php:error] [pid 36144] [client <CLIENT_IP_ADDRESS>:55419] PHP Fatal error: Uncaught League\Container\Exception\NotFoundException: Alias (Gibbon\Module\CourseSelection\Domain\SelectionsGateway) is not being managed by the container or delegates in <GIBBON_PATH>/vendor/league/container/src/Container.php:188\nStack trace:\n#0 <GIBBON_PATH>/modules/Course Selection/approval_approveAjax.php(26): League\Container\Container->get()\n#1 {main}\n thrown in <GIBBON_PATH>/vendor/league/container/src/Container.php on line 188, referer: http://<SERVER_IP_ADDRESS>/index.php?q=%2Fmodules%2FCourse+Selection%2Fapproval_byOffering.php&gibbonSchoolYearID=029&sidebar=false&courseSelectionOfferingID=00000001

Hi Richard,

Selections and approvals are different. It is showing 1 of 1 selected because this indicates that the student has selected the ideal number of courses (eg, some schools may be looking for each student to select 8 courses, so a student with 5 of 8 would indicate they haven’t completed their selections). The checkbox is for approvals, done by admin to check that student selections have been done correctly. The approvals can be turned off in settings if you’d prefer not to approve selections.

A fatal error is indeed cause for concern. Looks like it’s related to the namespace not autoloading. I’ve made a potential fix, which can be found below, if you update your module hopefully this does the trick. I don’t have data to test it with at the moment, but I have a feeling it should address the issue:

Thank you @sandra for the explanations and the update. The update fixed the error but I’m stuck on the next steps. Can you please let me know what I’m doing wrong?

  1. Under Learn > Course Selection > “Approve Requests by Offering”, clicking the checkbox to approve the requested course will no longer generate an error log entry

  2. Opening Learn > Course Selection > “Timetabling Engine” will generate five error log entries
    [Tue Apr 18 11:31:35.097370 2023] [php:notice] [pid 1470] [client <CLIENT_IP>:52760] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: http://<SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fselection.php
    [Tue Apr 18 11:31:35.097458 2023] [php:notice] [pid 1470] [client <CLIENT_IP>:52760] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: http://<SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fselection.php
    [Tue Apr 18 11:31:35.097512 2023] [php:notice] [pid 1470] [client <CLIENT_IP>:52760] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: http://<SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fselection.php
    [Tue Apr 18 11:31:35.097547 2023] [php:notice] [pid 1470] [client <CLIENT_IP>:52760] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 152, referer: http://<SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fselection.php
    [Tue Apr 18 11:31:35.097599 2023] [php:notice] [pid 1470] [client <CLIENT_IP>:52760] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 152, referer: http://<SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fselection.php

  3. The Timetabling Engine will not display any error message. Will not change the default values
    image
    image

  4. Clicking the Run button will generate the same five error log entries that were mentioned in item 2 above
    [Tue Apr 18 11:41:13.598242 2023] [php:notice] [pid 1885] [client <CLIENT_IP>:52888] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Ftt_engine.php
    [Tue Apr 18 11:41:13.598306 2023] [php:notice] [pid 1885] [client <CLIENT_IP>:52888] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Ftt_engine.php
    [Tue Apr 18 11:41:13.598342 2023] [php:notice] [pid 1885] [client <CLIENT_IP>:52888] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Ftt_engine.php
    [Tue Apr 18 11:41:13.598365 2023] [php:notice] [pid 1885] [client <CLIENT_IP>:52888] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 152, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Ftt_engine.php
    [Tue Apr 18 11:41:13.598400 2023] [php:notice] [pid 1885] [client <CLIENT_IP>:52888] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 152, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Ftt_engine.php

  5. The webpage will remain under Timetabling Engine, with (i think) no changes:


  6. Choosing TIMETABLE > “View Results by Course” will display the message “There are no records to display.”
    image

Hmmmm. The errors in line 151 and 152 seem to be related to a setting that is missing. Can you check in System Admin > Manage Modules to see that an updates have been run for the module so that the database is up to date?

It also looks like the target and max are still blank, have you entered values for those settings? In Course Selection Settings.

Thanks @sandra for the reply. I have now entered values for the target and max but the same error happens. I checked and (I think) Gibbon and the Course Selection module are up to date. Please see my settings below:

  1. Module “Course Selection” version is the potential fix v.1.2.04

  2. Gibbon version is 25.0.00
    image

image

  1. Opening Learn > Course Selection > “Timetabling Engine” will show that “Target Students per Class” is 30 and “Maximum Students per Class” is 35. “Class Enrolment Goal” is set to “Fill to maximum” but everything else is left in the default


  2. When “Timetabling Engine” (above) is opened, the same five error log entries will be generated:
    [Fri Apr 28 09:43:50.743947 2023] [php:notice] [pid 984] [client <CLIENT_IP>:51928] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fapproval_byOffering.php&gibbonSchoolYearID=029&sidebar=false&courseSelectionOfferingID=00000001
    [Fri Apr 28 09:43:50.744018 2023] [php:notice] [pid 984] [client <CLIENT_IP>:51928] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fapproval_byOffering.php&gibbonSchoolYearID=029&sidebar=false&courseSelectionOfferingID=00000001
    [Fri Apr 28 09:43:50.744044 2023] [php:notice] [pid 984] [client <CLIENT_IP>:51928] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 151, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fapproval_byOffering.php&gibbonSchoolYearID=029&sidebar=false&courseSelectionOfferingID=00000001
    [Fri Apr 28 09:43:50.744059 2023] [php:notice] [pid 984] [client <CLIENT_IP>:51928] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 152, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fapproval_byOffering.php&gibbonSchoolYearID=029&sidebar=false&courseSelectionOfferingID=00000001
    [Fri Apr 28 09:43:50.744082 2023] [php:notice] [pid 984] [client <CLIENT_IP>:51928] Warning: Trying to access array offset on value of type bool in <GIBBON_PATH>/modules/Course Selection/tt_engine.php on line 152, referer: <SERVER_IP>/index.php?q=%2Fmodules%2FCourse+Selection%2Fapproval_byOffering.php&gibbonSchoolYearID=029&sidebar=false&courseSelectionOfferingID=00000001

  3. In case useful, these are the ten modules that are disabled:
    Activities
    Attendance
    Behavior
    Crowd Assessment
    Formal Assessment
    Individual Needs
    Library
    Markbook
    Rubrics
    Tracking

Interesting, sorry for the wait in responding, it’s been very busy at school here.

These are just warnings rather than errors, so they shouldn’t actually prevent the timetabling engine from running. Have you tried clicking the button? Does it generate results?

Looks like a setting is missing, which is the source of the error. Can you run the following SQL command on your database, which should fix it:

INSERT INTO `gibbonSetting` (`scope` ,`name` ,`nameDisplay` ,`description` ,`value`) VALUES ('Course Selection', 'studentOrder', 'Student Order', '', 'yearGroupDesc');

Hope this helps!

Thanks @sandra for the reply. The error message are no longer appearing after applying the SQL but the timetabling engine does not seem to be assigning the requested course. Please see screenshots and settings below:

  1. Correctly displays student with not yet approved course selection request

  2. Successfully approved the student’s course request

  3. The “Students Not Approved” webpage will show that the student’s request has been approved

  4. As before, changed “Class Enrolment Goal” to “Fill to maximum” but left everything else in the default values
    image

  5. After clicking “Run”, the Timetabling Engine page will be refreshed. The “Class Enrolment Goal” will return to the default value of “Balance each class”

  6. I think a button “Go live” should appear, but not appearing yet

  7. There are no error messages in the log

This is incredibly strange Richard, my apologies it has taken so much time and back and forth, and still no answer. It is working for several schools I work with, so there is something unusual going on. Did you say this was a test install with test data? If so, would you mind exporting your database and sending a copy to support@gibbonedu.org, I think the next step would be for me to try and look at it and replicate the issue. Thanks!

Thanks @sandra I have emailed the exported test database :slight_smile:

1 Like

Thanks @sandra I have downloaded the new Course Selection module v1.2.06 and it’s working.

Hi Richard, great to hear! :tada:

1 Like