UniTime 4.5 Release Notes
4.5.179
Fri, 18 Feb 2022
Course Timetabling
-
Curriculum Reservation: Minors
Corrected computation of last-like and projected demands on curriculum reservations.
Fixed an "ORA-01722: invalid number" error when there is a reservation with a minor and the course has some last-like demands with minors.
-
Timetable Grid: Instructional Type background
Added ability to display class background based on the instructional type of the class.
Event Management
-
Events: Avoid Duplicate Consecutive Notes
Remove duplicate consecutive notes from the display and exports.
A duplicate note is created, for instance, when an automatically approved meeting is created (as there is Create and Approve action logged with the same text note).
Administration
-
Data Exchange: Staff XML Import
Added ability to disable incremental mode (when incremental="false" on the root element).
To delete a staff member, delete element can be set to T, Y, or true (case insensitive).
-
Administration: Export PDF/CSV
Added an ability to export the admin table in CSV or PDF.
Applies to all 40+ admin pages using SimpleEditPage (gwt.jsp?page=admin&type=XXX).
-
UniTime Email: Testing & Non-Prod Environments
Added ability to test UniTime's email notification without actually sending emails to students, etc.
First option unitime.email.class=org.unitime.timetable.test.MockupEmail
Email message is only logged (INFO message), no email is actually sent.
Second option unitime.email.class=org.unitime.timetable.test.JavaMailMockupEmail
Email message is sent to the email address defined in unitime.email.test.recipient application property (defaults to unitime.email.notif)
Original recipients are included in the email, in the attached file named original-receipients.txt
Additional parameters:
unitime.email.test.recipient ... test email's recipient, defaults to unitime.email.notif
unitime.email.test.recipient.name ... test email's recipient name, defaults to unitime.email.notif.name
unitime.email.test.subject ... test email's subject prefix, defaults to [TEST]
When the unitime.email.class is set to one of the above, ALL UniTime emails are only logged or sent to the predefined test recipient instead.
-
People Lookup: Source Mapping
Corrected source mapping when unitime.lookup.source.defaults property is used.
4.5.177
Fri, 1 Oct 2021
Student Scheduling
-
Student Scheduling Reports: Tableau Report
Added Request Type column (including request priority: Critical, Important, or Normal).
-
Advisor Course Recommendations
When the Notes textarea is automatically resized to fit the text, avoid scroll-position jumping on Firefox.
Do not cache previous notes query (this is to ensure that the most recent notes are visible).
When there are no advisor course recommendations, but the page is pre-populated with student's course requests, still display the default advisor note.
When pre-populating student course requests with advisor recommendations, only check true courses for duplicates (not free texts).
Do not allow the same course to be entered multiple times (duplicate free texts are allowed).
-
Student Scheduling Link (UniTime/studentScheduling.do)
If an instructor role is assigned, prefer student role when possible.
When selecting current authority, do not stick with the default academic session when unitime.studentScheduling.useDefaultSession = false.
-
Online Student Scheduling Dashboard: Student Notes
When online student scheduling is not enabled, corrected the logic of computing the last note of a student.
This fixes an issue of showing an older note instead of the last one for students with no course requests.
Course Timetabling
-
Solution Commit: Skip Conflict Checking
Added ability to skip room and instructor conflict checking with other committed problems.
Set unitime.commit.skipConflictChecking to true to skip the checks, defaults to false.
-
Class Assignment: Bugfix
Fixed an error that sometimes appear when a class with two or more date patterns available is being assigned (Exception thrown by getter for property times of bean model).
Course Timetabling
-
Examination Assignment: Not-Assigned
Added an ability to unassign an exam (remove its current assingment).
-
Examination Detail: Delete
Fixed a "deleted object would be re-saved by cascade" issue which sometimes appears when an assigned exam that has some student conflicts is being deleted.
Administration
-
Data Exchange: Student Course Requests XML Import
Improved speed of the import by pre-loading and caching available student statuses.
-
Data Exchange: Academic Session Import
Fixed a potential issue with uk_student_area_clasf_major unique key.
Optional concentration is part of the index, which can cause troubles when there is a student with two or more (area,classification,major) elements that differ only in concentration.
Concentration is now set together with the required fields.
-
People Lookup: Adjustments
Added ability to specify which sources will be searched and in which order.
By setting unitime.lookup.source.defaults property containing a comma separated list of sources, defaults to ldap,students,instructors,staff,managers,events,advisors.
When searching instructors, added ability to prefer instructors with the matching department code in the Staff table.
By setting unitime.lookup.instructors.checkStaffDept to true (defaults to false).
Added ability to not return emails for some roles.
By setting unitime.lookup.showEmail.<role-ref> to false (defaults to true, role-ref is the role reference for which Emails should be shown/hidden).
Do not use for roles that can request an event on behalf of someone else.
Hide columns Email or Phone when there is no match with an email or phone filled in respectively.
Documentation
-
UniTime 4.5 Online Help
Use https://help45.unitime.org for the online help.
Starting with this release of UniTime 4.5, the online help has been moved to the new Google Sites (from the classic Google Sites).
URL formatting has changed (e.g., Instructional Offerings > https://help45.unitime.org/instructional-offerings).
The help page can no longer be opened in a frame (it now opens in a new tab).
4.5.164
Sat, 24 Apr 2021
Student Scheduling
-
Online Student Scheduling Dashboard: Student Notes
Show all students notes in a new Notes tab when a student is clicked, including time stamp and the name of the user who set the note.
-
Advisor Course Recommendations: Custom Warnings
Added the same warnings that the student would see using the custom course validation provider.
-
Advisor Course Recommendations: Read-Only Use
A few small improvements for users with read-only access to the Advisor Course Recommendations page.
Show student status and PIN correctly (with the PIN toggle disabled).
Degree Plan button works without the Student Advisor permission (Advisor Course Request permission works as well).
Advisor Course Recommendations appears in the menu even when there is no Students menu.
-
Course Requests Validation: Free Times
Added a warning message when free time is requested (regardless of its priority)
The Free Time request will be considered a time block during the preregistration process.
If the Free Time request is placed higher than a traditional course, you may not receive a full schedule.
Also added a warning on a free time request that is above a course
High priority free time
-
Online Student Scheduling Dashboard: Change Log
A few changes have been made to make the Change Log load faster, namely
Only parse the action proto message when an item is clicked.
Message field updated to contain a message generated from the action so that the same message gets shown on the dashboard without the needed to parse the action proto.
-
Batch Student Scheduling: Backtracking phase
Ensure that the solver does not get stuck (as it repeatedly adds requests that failed) by setting a limit on the number of iterations (2x the initial size of the request queue).
Event Management
-
Event Detail: Email Students
Added ability to email students of a class, an examination or a course related event.
Requires permission Event Detail Email Students (not enabled by default).
When enabled, Send Email button appears on the top of the Enrollments table.
Either all students that have an email on file can be emailed, or just those that are selected.
One email is sent with all the (selected) students in BCC.
CC defaults to the user's email, but it can be changed in the Send email dialog.
Email subject defaults to the event's name, but it can be changed in the Send email dialog.
-
Event Timetable: Curriculum
Fixed an issue caused by a recent changes in curriculum reservations (curriculum reservation can now list multiple academic areas).
Other
-
CSV Files
When reading CSV file, consider line breaks inside of cells -- do not import as multiple lines.
This fixes an issue with the validation and enrollment logs on the Student Sectioning Solver Reports page (the table gets disordered after a student with multiple curricula).
-
Spring libraries updated due to security issues
Spring core libraries updated to version 4.3.30 (was 4.3.18) to fix CVE-2018-15756 issue (high severity).
Spring integration is updated to version 4.3.24 (was 4.3.18) to fix CVE-2020-5413 issue (high severity).
Spring security is updated to version 4.2.20 (was 4.2.9) to fix CVE-2020-5408, CVE-2019-11272, and CVE-2019-3795 issues (moderate to high severities).
4.5.154
Wed, 17 Mar 2021
Course Timetabling
-
Student Academic Area Classification Major Weight
Added ability to add a weight to each (area, classification, major) combination that a student has.
It defaults to 1.0 and can be used to avoid double counting a student with two or more majors.
Added optional weight parameter in Students XML and Student Course Requests XML import and export.
-
Course Timetabling Solver: Student Course Demands
Fixed an issue where a first-choice course is marked as alternative to each other, making the solver to ignore student conflicts within the course.
This was only a problem when student course demands are used and alternatives are enabled (StudentCourseRequests.IncludeAlternatives is true).
-
Course Timetabling Solver: Automatic Same Students Constraint
When creating a same student constraint, consider all subparts that have just one class (not just those that do not have a parent).
This fixes an issue when there is Lec 1 - Lec 1a chain and Lab 1 - Lab 1a chain which are not in a parent-child relation.
Before, only constraints between Lec 1 - Lec 1a - Lab 1 and Lab 1 - Lab 1a - Lec 1 were created, allowing Lec 1a to overlap with Lab 1a.
-
Class Assignment: Projected Student Conflicts
When student conflict pre-fetching is enabled (tmtbl.classAssign.prefetchConflicts),
ensure that only committed classes from the current academic session are considered.
This fixes an issue when a combination of last-like and real students are being used
(e.g., Course Requests With Projected Last Likes) as the pre-fetch was getting conflict
between the current and the last-like session.
-
Distribution Preferences
Added ability to export the distribution preferences in CSV format.
Student Scheduling
-
Advisor Course Recommendations: Last Additional Notes
Added ability to select from the previous 50 notes that the advisor has used in the given term.
Student PIN is automatically replaced (same message with different PIN does not list multiple times).
Ordered by the last time the note was used.
-
Student Scheduling Dashboards (Both Online and Batch)
Added optional Conc (major concentration) and Degr (student degree) columns.
Added ability to filter by concentration and/or degree.
Examination Timetabling
-
Examination Distribution Preferences
Added ability to export the distribution preferences in CSV format.
Other
-
UniTime Login Page
Include global info/warn/error messages on the UniTime login screen.
Properties tmtbl.global.info, tmtbl.global.warn, and tmtbl.global.error
Added ability to add info/warn/error messages just on the login screen.
Properties tmtbl.page.info.login, tmtbl.page.warn.login, tmtbl.page.error.login
-
Student Curriculum Information
Added ability to include an optional concentration and degree field on a student, with academic area, major, and classification.
Included in Student XML and Course Requests XML exports and imports.
4.5.141
Tue, 9 Feb 2021
Batch Student Scheduling
-
Past Sections
Added ability to mark sections that are in the past, that is sections that start before the General.ClassesPastDate date.
The use of past sections can be minimized (using StudentWeights.PastFactor student weight).
-
Student Accommodations
Besides of students requiring short distances, additional criteria based on student accommodations were created:
Students requiring short distances (SD accommodation, there is a conflict when classes are back-to-back and distance in minutes is above zero)
Students needing some time free (FT accommodation, a higher penalization for free-time conflicts)
Students needing back-to-back classes (BTB accommodation, a penalization for classes that are more than 30 minutes of each other)
Students needing breaks between classes (BBC accommodation, a penalization for classes that are back-to-back, or within 30 minutes of each other)
Please note that these accommodations are only enabled when the new Student Schedule Quality extension is being used (StudentSct.ScheduleQuality = true).
-
Curriculum Reservations
Added ability for a curriculum reservation and overrides to have multiple majors.
Added ability for the curriculum reservations and overrides to match on student minors.
When a reservation has both majors and minors, a student must have at least one matching minor OR one matching major.
Added ability to further divide majors by using the optional concentrations.
-
Batch Student Solver Dashboard
Student Sectioning Dashboard renamed to Batch Student Solver Dashboard.
Enrollments tab: when the mouse is hovering over course/class available space, show existing reservations in a tooltip popup (as they were loaded into the solver).
Online Student Scheduling
-
Wait-Listing
Status Check: Follow the status fall-backs when checking for wait-list option.
-
Deadlines
Added ability to avoid classes that are past the deadline when computing an online schedule or suggestions.
To be enabled by FindAssignment.CheckDeadlines solver configuration property (defaults to false).
Deadlines are not checked when extended adds are allowed by the special registration and student agrees to explore conflicting schedule.
-
Past Sections
Added ability to mark sections that are in the past.
When enabled (FindAssignment.AvoidPastSections is true), the Scheduling Assistant will try to minimize the use of sections that are in the past.
That is before today, possibly adjusted by the number of days in FindAssignment.AvoidPastOffset.
-
Advisor Course Recommendations
Added ability to set a default advisor note.
Application property unitime.acrf.note, defaults to no note.
To be used to pre-populate the Additional Notes field on the Advisor Course Recommendations page.
-
Course Finder
Instead of allowing advisors and administrators to see all courses (ignore course type check),
there is now a new permission StudentSchedulingCanLookupAllCourses that the user role must have.
Automatically set for roles with StudentSchedulingAdvisor permission.
-
Online Student Scheduling Dashboard
Added tooltips for Area, Clasf, Major, Concentration, Minor and Accommodation columns (showing full name when available).
Enrollments tab: when the mouse is hovering over course/class available space, show existing reservations in a tooltip popup.
Examination Timetabling
-
Overlapping Periods
Added ability to check for direct (student or instructor) conflicts between two examination periods that overlap in time.
This is only enabled when solver configuration parameter Exams.CheckForPeriodOverlaps is set to true (defaults to false).
-
Examination Events
Added ability generate event's allocated time based on the examination length instead of the examination period length.
When enabled, a one hour long exam will only allocate one hour (plus the offsets) even when placed in a period of two hours.
To be enabled (for an examination problem) by unitime.examEvent.allocatesTimeBasedExamLength.REF application property, where REF is the examination problem reference.
Administration
-
Contact Us
Contact Us Email: Set reply-to email address to the email recipient.
-
Spring Integration
Spring Integration is now disabled by default (to avoid issues with data/unitime/import folder).
To enable Spring Integration, set unitime.spring.context.integration=no-integration.xml in catalina.properties.
This will enable the data exchange imports in the data/unitime/import folder as well as the ability to configure receiving Event Management email responses.
4.5.124
Sat, 5 Dec 2020
Student Scheduling
-
Advisor Course Recommendations
A page for the advisor to fill with a student while advising him/her on what courses to take the next term.
It looks a lot like the Student Course Requests page, with a few fields added (credits per course, notes, etc.).
When opened, the advisor can look up a student and the page gets pre-populated with the existing data.
The page automatically offers course suggestions (but it is possible to put in a free text too), fills in credits, count the credit totals, etc.
When submitted, there is a PDF version generated that can be printed and signed by the student.
Allows for student status change when submitted; no need for the advisor to use the dashboard to change the student status.
UniTime keeps record of these advisor course requests for possible auditing/reporting (what students requested versus what they have been advised, list students that have been already advised that did not fill their course requests in, etc.).
Student Course Requests page can be pre-populated with these courses, or a student can review the courses filled in by the advisor.
Optionally, course recommendation may contain wait-listing toggles (based on unitime.acr.waitlist parameter).
-
Important Course Requests
Added ability to put a multiple levels to critical courses: Critical > Important > Normal.
Critical course request are assigned first, then important requests, then the rest.
More levels can be defined in the future, if needed.
-
Alternative Majors
Added ability to load critical courses and degree plans from an alternative major.
Alternative majors are identified by a student group of a particular type a student is in.
By default group type is "1st Choice", and the group abbreviation is area abbv - major code.
Custom class CriticalCoursesExplorers makes use of these (implementing both CriticalCoursesProvider and DegreePlansProvider interfaces).
-
Priority Students
Added ability to identify priority students (to be assigned first) by a filter query.
Improved handling of priority students by the solver.
Up to 5 priority tiers can be defined (Priority, Senior, Junior, Sophomore, and Frehmen).
-
Reservation Restrictions
Added ability to define on a reservation whether it is inclusive or not.
There is a new mode field when editing a reservation (that is not an override) which can be:
Default: using unitime.reservations.restrictionsInclusive which defaults to true.
Reservation: the currently default mode (restrictions are applied at all levels).
Restriction: not-inclusive mode (restrictions are only applied on the selected level).
-
Grade Mode / Variable Credit Customization
Added ability to show course credit information on a particular section (not just the first one).
Gradable subpart (on which the credit is shown) can be provided using the ExternalClassNameHelperInterface interface, implementing HasGradableSubpart sub-interface.
Banner Integration: Show credit information on the gradable section.
Banner Integration: For variable credit courses, display assigned credit returned by XE API.
Special Registration: Added ability to request credit change on a variable credit course.
-
Online-Only Students / Courses
Added ability to identify some students as online-only (e.g., with a student group) and restrict them to certain courses or course configurations.
The restriction can be on courses (using regular expression for course name), or on course configurations (using regular expression on instructional method reference).
Added ability to hide courses that do not have an online-only option from the online-only students and vice versa (students can not look them up on the Course Requests or Scheduling Assistant page).
Added ability for the solver to keep out students from courses or course configurations they cannot take.
-
Minimal Perturbation Problem Improvements
Improved ability to re-section not-assigned course requests while the rest is kept untouched.
Existing enrollments can be fixed and left unchanged, even when they are not consistent.
Single Course MPP: Added ability to re-section only students in the given course or courses, while everything else is left untouched.
-
Other Changes & Improvements
Scheduling Dashboard: Added an ability to filter by instructional method.
Custom integration with a custom student attendance planning tool, showing additional meeting information on a class that a student has enrolled.
Added ability to save/validate only a subset of students loaded in the student scheduling solver.
Added ability to put a small penalization on online sections.
That is sections that do not have a time, that have time and no room, or that have time but the room does not check for conflicts (like the ONLINE room).
-
No Substitutions
Added ability to reuse the wait-listing toggle as No-Subs (no substitutions) when wait-listing is disabled.
Course requests that are marked as No-Subs cannot be replaced by a substitute course.
There is a new parameter of student schedule status (students may or may not be allowed to mark courses as No-Subs).
It is also possible to only allow advisor recommendations to mark courses as No-Subs (students are not allow to see/set No-Subs or Wait-List toggles).
In this case, solver parameter Load.UseAdvisorWaitLists must be set to true to check for these during the data load.
Course Timetabling
-
Room Sharing
More precise computation of allowed room sharing (how much space is needed in a room).
This is to avoid issues when three or more classes can share a room and some of these classes do not overlap.
For example, no more than two classes overlap when there is a Monday class, a Wednesday class, and a Monday-Wednesday class.
-
Fixed Time MPP
A new ability to assign new rooms while the existing time assignments are left unchanged.
Fixed Times: all assigned classes have only the assigned time in the domain (time preferences are completely ignored).
Weakened Distributions: allow hard distribution preferences to be weakened (strongly discouraged instead of prohibited etc.)
Instructor Conflicts: instructor conflicts can be allowed but penalized.
Prohibited Rooms: allowed prohibited rooms in the domain (except of rooms that are too small, or not being available for the department).
-
Other Changes & Improvements
Class Assignment: When checking for event conflicts, ignore conflicts for rooms that have the conflict checking disabled.
Instructional Offering Cross Lists: Added ability to edit Reserved space (course limit) even when there is only a single course in the cross-list.
Course Timetabling Save & Commit: when saving & committing two or more problems together, do not check for conflicts between problems that are being committed.
Instructor Availability: When checking instructor availability based on events (and possibly classes from other academic sessions), also check for distance conflicts between the class and the unavailability.
Examination Timetabling
-
Other Changes & Improvements
Added support for rooms that do not check for conflicts (e.g., the ONLINE room).
Allow for examination periods to run over midnight.
Event Management
-
Other Changes & Improvements
Added ability to make the Expected Attendance a required field.
Other
-
Right-to-Left Support
Basic support for right-to-left languages.
Enable by using ar locale.
-
APIs
HQL Reports: Added ability to export HQL reports in JSON format using the API.
Data Exchange: Course Offerings XML import and export extended to include number of rooms of a class.
Data Exchange: Include export and import of advisor recommendations with the Student Course Requests XML.
-
Other Changes & Improvements
People Lookup: Added ability to search the whole subtree in the LDAP search.
Task Scheduler: make sure current month is included if it is within 12 months before session start or after session end.