Download Latest Version unitime-4.8_bld204.tar.gz (428.5 MB)
Email in envelope

Get an email when there's a new version of University Timetabling

Home / UniTime 4.2 / UniTime 4.2.201
Name Modified Size InfoDownloads / Week
Parent folder
unitime-4.2_bld201.zip 2018-05-21 168.1 MB
README.txt 2018-05-21 12.0 kB
Totals: 2 Items   168.1 MB 0
UniTime 4.2.201 release notes
Event Management
- Personal Schedule: Meeting Contacts
    - Include meetings where the user is filled in as a meeting contact in the personal schedule.
- Rooms: Event Message
    - Do not copy event room note from the <event department, room type> pair over to the room when
      editing a room.
- Events API: Resource Timetable
    - Added ability to lookup the subject, course, curriculum, department and student group by name
      (using name parameter).
- Event Export: Personal Schedule Permissions
    - When exporting events of another person, the following permissions are used to filter the
      role:
      - Can Lookup Students is needed for the Student role (person is enrolled in a class, an exam,
        or a course related event as a student).
      - Can Lookup Instructors is needed for the Instructor and Coordinator roles (person is
        assigned to a class or an exam as an instructor or coordinator).
      - Can Lookup Event Contacts is needed for the Contact role (person is listed among contacts of
        the event).
- Room Availability: Include Events From Other Academic Sessions
    - Course/Examination Timetabling: Added ability to include events (of the same type) from other
      academic sessions.
    - To enable this, set tmtbl.room.availability.includeOtherTerms to true on the Application
      Configuration page.
    - Rooms of the overlapping academic sessions must have the same permanent id.
      - This can be achieved, e.g., by rolling forward the rooms from one academic session to the
        next.
      - Or, the rooms must be created using the Add Room page (of the first academic session) using
        the Update Future Academic Sessions section (room is created in multiple academic sessions
        at once).
- Event Detail: Enrollments
    - Conflicts: Make sure that cancelled class or examination meetings do not show up as conflicts
      in the Enrollments table.
    - Export CSV: Added ability to export the Enrollments table into a CSV file.
Course Timetabling
- Room Sharing Grid, Instructor Availability Table
    - Corrected table splitting when more than 48 possible times are displayed horizontally.
    - Slightly increase cell width to make sure all cells are of the same width.
- Room Sharing Grid: Add Department
    - Added ability to filter available departments by a given text (department code or name).
- Date Pattern: Name
    - Date pattern name changed to fit 100 characters.
    - This is to avoid a Hibernate exception when a longer name is entered on the Add/Edit Date
      Pattern page (the name text field already allows for up to 100 characters).
- Timetable Grid
    - Export PDF: Print one table per each day of week when in the "In Row [horizontal]" mode
      (instead showing one table very wide table with all the days of the week inside).
    - Show Course Title: It is now possible to show course titles on the timetable grid.
      - There is a new toggle in the Filter named Show Course Titles.
    - Split Class Name: Added ability to split class label into two lines.
      - Subject and course number on the first line,
      - itype and section number (and the optional suffix and/or configuration name) on the second
        line.
      - Enable by setting the application property unitime.timeGrid.classNameTwoLines to true
        (defaults to false).
- Instructional Offering Detail: Enrollments Table
    - Allow schedule managers from non-controlling departments to see the enrollments.
- Instructional Offering Cross Lists: Keep Course Requests
    - Added an ability to keep course requests on the course that is added to or dropped from
      a cross-list.
      - Enable this feature by setting unitime.crossList.keepCourseRequests to true (default is
        false).
Examination Timetabling
- Examination Distribution Preferences: HQL Fix
    - Fixed a query syntax exception when Subject is set to All, but a Course Number is filled in.
Online Student Scheduling
- Generic Updater: Check For Multiple Masters
    - If multiple masters are detected, release all master locks and reload the new master.
- Student Scheduling Assistant
    - List of Classes: do not include course note in the section note.
    - Course Suggestions: when showing individual classes include subpart and section note in the
      hint.
    - Filter Box: limit the height of the suggestions / filter popup when on mobile (allow for
      vertical scroll).
    - Alternatives: allow for the Alternatives dialog to be wider if needed (up to 90% of viewport
      width).
- Course Reservations
    - Corrected checking whether a student is meeting course reservation (using the requested
      course, not stored course requests).
- No Alternate Course Requests
    - Added an ability to hide Alternate Course Requests table (unless the student has some
      alternatives already).
    - To do this, set the StudentSectioningConstants.numberOfAlternatives constant to zero.
- Email Notification
    - Added ability to use the CourseUrlProvider to make the Subject and Course clickable.
    - When the unitime.custom.CourseUrlProvider application property is configured.
Administration
- Scripts: Send email when finished
    - Added ability for a script to send an email (including the log and the generated file if there
      is any) when it is finished.
    - If there is an error, include stack trace in the log.
- Add/Edit Timetable Manager
    - Maximal length of the External ID field corrected (40 characters).
- Session Roll Forward: Instructor Attributes
    - Fixed TransientObjectException when rolling instructor attributes (with parent-child relation)
      forward.
- HQL Reports: SESSIONS
    - Added %SESSIONS% parameter listing unique IDs of available academic sessions.
    - These are academic sessions for which the user has the current role.
- Data Exchange: Course Requests XML Import
    - Added ability to only add / drop certain requests of a student.
    - Use the new addCourseRequests and dropCourseRequests elements instead of the
      updateCourseRequests element.
      - These elements have the same format as the updateCourseRequests element.
- OpenStreetMap
    - Added ability to switch to OpenStreetMap (using Leaflet library, https://leafletjs.com).
    - Set unitime.coordinates.googlemap to false, unitime.coordinates.leafletmap to true.
    - Map tiles template URL and attribution can be changed (defaults to OpenStreetMap tiles).
    - See http://help.unitime.org/OpenStreetMap for more details.
Constraint Solver (1.3.124)
- Course Timetabling: Max Half-Days Constraint
    - The MaxHalfDays constraint limits the number of half-days of week during which the given set
      of classes are taught.
    - It has one parameter: a maximal number of week half-days during which the given set of classes
      can be placed.
    - A day is split by noon (which can be changed using General.HalfDaySlot parameter).
    - A class starting before noon is considered a morning class (despite of its end), a class
      starting at noon or later is considered an afternoon class.
    - For instance, a reference MaxHalfDays:4 translates to a maximum number of 4 half-days a week.
- Course Timetabling: added MaxHoles distribution constraint
    - The MaxHoles constraint limits the number of free time (holes) for an instructor on a day
      (between the first and the last class on a day).
    - It has one parameter: a maximal amount of free time that an instructor can have on a day in
      minutes.
    - For example, reference _MaxHoles:120_ translates to a maximum number of two hours of total
      free time between the first and the last class on a day:
      - if required, having more free time is prohibited
      - if preferred or strongly preferred, the excessive free time is penalized
- Course Timetabling: Student Conflicts
    - Added a naive, yet effective approach for minimizing holes in student schedule.
      - The new StudentMinimizeScheduleHoles criterion penalizes all cases where a student has two
        classes taught on the same day that are not back-to-back.
      - The penalization is based on the time distance between the two classes, computed in hours.
      - These penalties are weighted by Comparator.MinimizeStudentScheduleHolesWeight, which
        defaults to 1/20 of the Comparator.StudentConflictWeight.
      - To enable this criterion, add
        org.cpsolver.coursett.criteria.additional.StudentMinimizeScheduleHoles to
        General.AdditionalCriteria.
    - Added a naive, yet effective approach for minimizing number of days in student schedule.
      - The new StudentMinimizeDaysOfWeek criterion penalizes all cases where a student has two
        classes taught on different days.
      - These penalties are weighted by Comparator.MinimizeStudentScheduleDaysWeight, which defaults
        to 1/20 of the Comparator.StudentConflictWeight.
      - To enable this criterion, add
        org.cpsolver.coursett.criteria.additional.StudentMinimizeDaysOfWeek to
        General.AdditionalCriteria.
    - As the StudentMinimizeScheduleHoles criterion tends to spread the student among as many days
      as possible, the second criterion StudentMinimizeDaysOfWeek can be used to counteract this
      effect, if desired.
- Course Timetabling: Week Start/End
    - Added ability to define when a work week starts (General.FirstWorkDay) and when it ends
      (General.LastWorkDay).
    - It is possible that General.LastWorkDay < General.FirstWorkDay, e.g., General.FirstWorkDay = 6
      (Sunday) and General.LastWorkDay = 3 (Thursday).
    - Corrected behavior of various constraints for the case when week starts on Sunday (PRECEDENCE,
      BTB_DAY, NDB_GT_1, FOLLOWING_DAY, SPREAD, MIN_ROOM_USE, and a few other places).
- Examination Timetabling: Period Preferences
    - Added additional information about how well are the period preferences satisfied into the
      solution extended info (showing how many time a preferred, a strongly preferred, etc. period
      is selected for an exam).
- Examination Timetabling: Room Split Penalty
    - Increased the limit on the maximal number of rooms that an exam can take to 30.
- Examination Timetabling: Save XML
    - Corrected examination period penalty value.
- Examination Timetabling: Criteria
    - Changed the value update type to after unassigned after assigned.
    - This corrects the direct conflict computations when a student is assigned to three or more
      exams on a day.
    - This corrects the more than two exams on a day computation when a student is assigned to four
      or more exams on a day.
- Student Scheduling: Scheduling Assistant Weights
    - Corrected precision on the selected choices criterion as the result is a % of the selected
      classes.
    - Put selected sections higher in the list.
    - Minimize class penalties: divide penalty by the number of sections (counting average section
      penalty of the enrollment).
      - This is to avoid penalization of enrollments with more/fewer sections.
    - Prefer sections that are available (there is space in them).
      - This is especially useful when a student has an individual reservation that is not given for
        a particular section (student is allowed to pick any section).
- Student Scheduling: Student Conflict Constraint
    - Checking whether a student already has a complete schedule corrected.
      - If the request is over the limit (student already has a complete schedule), do not return
        a free time or a wait-listed course request as a conflict.
    - Ensure that completeness of a student schedule is properly checked during the assignment.
      - Using Student.canAssign(request) does not work as it returns true when the request is
        already assigned and the conflicts are checked when Constraint.assigned(value) is called.
      - This was causing troubles for the IFS phase.
Source: README.txt, updated 2018-05-21