This PR is largely already deployed because it's mostly backend, but I tweak the label text on the Profile Page as the only Frontend change.
MERGE PRIORITY: HIGH
Changelog:
Scheduling is now based on Weekly Number of Hours. Before it assigned you to a specific number of sections, and this now gives more control over how many hours one wants to work per week.
Scheduling adds a subpriority for higher numbered courses. Dr. Leyk expressed concerns that 300-level courses (e.g. 313, 312, etc.) are not getting scheduled. As such, we add a subpreference for these courses. As a result when the preferences are being checked, higher course numbers are more preferable and are scheduled first.
Scheduling now always represents the Viability View. Previously the tables were multiqueried during scheduling to pull down information. Now the view is queried which reduces the number of queries significantly. The data is loaded from the view meaning that if a user does not appear in the view, they will not be scheduled.
This PR is largely already deployed because it's mostly backend, but I tweak the label text on the Profile Page as the only Frontend change.
MERGE PRIORITY: HIGH
Changelog: