Skip to content

UniTime 4.6 build 77

Choose a tag to compare
@tomas-muller tomas-muller released this 02 Feb 13:03
· 744 commits to master since this release

Online Student Scheduling: Wait-Listing


  • Only certain courses may be enabled for wait-listing (there is a toggle on the Edit Course Offering page).
    • By default, only selected courses can be wait-listed. This can be changed using unitime.offering.waitListDefault which defaults to false.
    • Certain overrides can be disabled for wait-listed courses (using unitime.offering.waitList.prohibitedOverride).
      • For example, a student should not be allowed to request a class limit override for a course that can be wait-listed.
  • There is now a different toggle for wait-listing (Wait-List) and for just indicating that a course cannot be substituted (No-Subs).
    • A student (Course Requests, Scheduling Assistant) can use one or the other, based on the student status.
    • An advisor (Course Recommendations) can use one or the other, based on the unitime.acr.waitlist setting (defaults to None) or based on the student status.

Student Scheduling Assistant

  • An additional information about wait-listed courses is displayed, in the Wait-Listed Courses section (shown when at least one course is wait-listed).
  • As only some course can be wait-listed, the Wait-List checkbox is only available if the first-choice course can be wait-listed.
  • There is a warning when a wait-listed course overlaps with the rest of the schedule.

Student Scheduling Dashboard

  • Wait-List and No-Sub toggles are separated, including the Filter / assignment.
  • A course only shows as wait-listed while the student is allowed to wait-list and the course can be wait-listed.
  • Show wait-listed courses in the detail of a student, and additional wait-list information (like the wait-listed time stamp, or student's position on the wait-list) on various places of the page.
  • Various improvements in the filtering for wait-listed courses.

Custom Validation

  • A custom validation of the wait-listed course requests can be implemented using the WaitListValidationProvider class.
    • The validation does work similarly to pre-registration, using a test schedule, but doing one course at a time on top of the existing schedule.
    • It may include max credit overrides.

Process Changes

  • Re-scheduling is disabled by default (students are not moved around during course unlock).
    • Can be enabled by setting solver configuration parameter Enrollment.ReSchedulingEnabled to true.
  • Students wait-listed for a course are processed in the following order:
    • Course request priority (critical courses) first, student priority second, wait-listed time stamp last.
    • Students with a pending override, a time conflict, or students over max credit are skipped.
    • The order can be customized (e.g., only be based on the wait-listed time stamp)
  • Email notifications added when custom enrollment fails (it is not possible to enroll student because of registration error).
  • Wait-list toggle is no longer automatically enabled when a student attempts to enroll to a course that is currently locked.
  • Various improvements across all the wait-listing functionality.

Student Scheduling

Special Registration: Variable Title Workflow

  • Added an ability to plug-in a variable title course request workflow.
  • This include a new functionality on the Scheduling Assistant page and an API that can be used to create a variable title course in UniTime.

Course Requests: Requested Credit

  • Requested credit computation updated to consider students (and optionally) advisor's no-subs/wait-listed courses.
    • A no-sub/wait-listed course cannot be replaced by a substitute course.
    • The advisor recommendations are only considered when the solver parameter Load.UseAdvisorWaitLists is set to true.

Online Student Scheduling Dashboard: Requested Approvals

  • Details of a student: show student's requested approvals in a new tab when available.

Batch Student Scheduling: Section Times

  • Added ability to load arranged hours (no time) classes with a time (listing the date pattern but no time) and rooms (that are required by the class).
    • This allows the effective date pattern and required room to show on arranged hours classes on the solver dashboard.
    • Can be disabled by setting the solver parameter Load.ArrangedHoursPlacements to false (defaults to true).

Student Scheduling Dashboards: Enrollments

  • When showing classes of a course, list all classes (but the classes that do not match the filter are grayed out).
  • It is possible to switch between showing all classes and just the matching classes using the sctdashShowUnmatchedClasses user setting parameter (defaults to yes, show unmatched classes).

Student Scheduling Dashboards: Additional Filter Capabilities

  • Requested credit range (e.g., requested-credit:>=15 for students that requested 15+ credit hours)
  • First-choice credit range (e.g., first-choice-credit:>=15 for students with their first-choice requested courses of 15 or more credit hours)
  • Choice / alternativity (e.g., choice:>1 for cases where an alternative course is assigned, or not-assigned primary course request has at least one alternative)
  • Request Priority (e.g., rp:<=2 for course requests that are of priority 1 or 2)
  • Online / Face-to-face / Has-Time / No-Time (e.g., face-to-face:<2 for students with less than two face-to-face classes, or online:>50% for students with more than half of their classes online)
  • Added ability to filter by primary academic area, classification, major, concentration, or program (e.g., primary-area:A)

Student Program

  • Added ability to include an optional program field on a student, with academic area, major, and classification.
  • Included in Student XML and Course Requests XML exports and imports.
  • Student Scheduling Dashboards: Added optional Program column and the ability to filter by program.

Student Campus

  • Added ability to include an optional program field on a student, with academic area, major, and classification.
  • Included in Student XML and Course Requests XML exports and imports.
  • Student Scheduling Dashboards: Added optional Campus column and the ability to filter by program.

Course Finder

  • Sections that the student cannot be enrolled in are grayed out even when there is space in them.
  • Hide sections and instructional methods not allowed by the Online-Only filter.
  • Added a column listing whether the course is wait-listed and/or has some allowed overrides.

Banner XE API

  • Added ability define whether advisors using the XE API will set or not set the admin flag (systemIn parameter).

Examination Timetabling

Examination PDF Reports

  • Added new output format options: CSV, XLS, and PDF using a non-monospaced font.

Course Timetabling

Solver: Stop

  • Added ability to stop the solver after it has finished, while running the when finished actions, including:
    • solution save (all solvers),
    • student sectioning (course timetabling solver),
    • validation (student scheduling solver).


Roll Forward Session

  • Roll date pattern preferences (for alternative date patterns) forward.
  • Corrected rolling forward of learning community reservations (special case of student group reservation).
  • Added ability to roll forward wait-listing (is an offering wait-listed) and prohibited overrides.

Added Support for JDK 16+

  • Various dependencies updated to avoid illegal access exceptions.
  • MemoryCounter updated to avoid illegal access calls (using the Unsafe access instead).
  • LDAP authentication is disabled by default, to enable add the following line to

Added Support for Apache Tomcat 10

  • Due to the move from Java EE to Jakarta EE, the Tomcat 10 compatible version of UniTime is available under web-tomcat10 in the distribution.
    • It is built using the Apache Tomcat migration tool for Jakarta EE.

Dependencies / Technology Update

  • GWT updated to version 2.9.0 (was 2.8.2).
  • Javassist updated to version 3.28.0 (was 3.18.2).
  • Spring core libraries updated to version 5.3.14 (was 4.3.40).
  • Spring security updated to 5.4.9 (was 4.2.20).
  • Spring integration updated to 5.4.12 (was 4.3.24).
  • Protocol Buffers updated to version 3.18.2 (was 2.6.1)
  • Log4j updated to 2.17.1 (was 1.2.17).