UniTime v4.2 build 204 change log (since the last release, build 185 on 07 Oct 2017 01:01)
909ffb22a4e6795bb4397d964d2f335166b33c8a
tomas-muller <muller@unitime.org>
21-Sep-2018 1:15 PM
HQL Reports: Export CSV
- fixed ability to export HQL report as CSV when the query contains a single-choice parameter (like SUBJECT or DEPARTMENT)
- this fixes an issue introduced in commit 0dd84a0, with the ability to provide individual report parameters
a9db41962317cb7751e94400b6fb6afd7e7e88d9
tomas-muller <muller@unitime.org>
18-Sep-2018 8:09 PM
Classes: Need Instructor Assignment
- corrected the "Show only classes that need instructor assignment" filter
(could not resolve property: teachingLoad)
6732d5536cd2849e86939314cea8339601de2dec
tomas-muller <muller@unitime.org>
6-Jun-2018 4:07 PM
Preferences XML Export/Import: Fixed SQLException
- fixed the SQLException: ORDER BY clause is not in SELECT list exception when using MySQL
ac94405e7d97a86384689ad021d03e3fba2210b5
tomas-muller <muller@unitime.org>
16-May-2018 1:18 PM
Instructional Offering Detail, Classes Detail: Enrollments Table
- always show Courses column when shown for a cross-listed course
- left justify Priority columm
416bc9600868bd2a9ed8c7411af9a5b9ea8a15c2
tomas-muller <muller@unitime.org>
16-May-2018 11:28 AM
Add/Edit Rooms, Add/Edit Building: Map
- added ability to switch to OpenStreetMap (using Leaflet library, https://leafletjs.com)
- set unitime.coordinates.googlemap to false, unitime.coordinates.leafletmap to true
- for more details, see http://help.unitime.org/OpenStreetMap
01ff3c9523f588c4cf1bf5843aae8e92d53a4b23
tomas-muller <muller@unitime.org>
15-May-2018 12:48 PM
Online Student Scheduling: Email Notification
- added ability to use the CourseUrlProvider to make the Subject and Course clickable
- when the unitime.custom.CourseUrlProvider application property is configured
c11786987649f39b0fd655acc5886f270d0e2f13
tomas-muller <muller@unitime.org>
15-May-2018 12:29 PM
Event Detail: Enrollments Export CSV
- added ability to export the Enrollments table into a CSV file
9dceff3b11d5077d4a16feb4840897914f3d90c9
tomas-muller <muller@unitime.org>
15-May-2018 12:28 PM
Event Management: Enrollment Conflicts
- make sure that cancelled class or examination meetings do not show up as conflicts in the Enrollments table
ab66d016b6cc13a3373418d9e948f7694267edfd
tomas-muller <muller@unitime.org>
8-Feb-2018 3:18 PM
Data Exchange: Course Requests XML Import
- fixed the Null exception when there is dropCourseRequests but no addCourseRequests element on a student
- fixed parsing of free time request when there is no length (using startTime and endTime)
0ff70677dca717ea4ff1012a28c55588eec3e0c8
tomas-muller <muller@unitime.org>
8-Feb-2018 3:18 PM
Copyright: 2018
- copyright message updated to include 2018
c9f541efcbbf0dfa9b2b7efe3054a723892c6ec3
tomas-muller <muller@unitime.org>
27-Jan-2018 2:27 PM
Data Exchange: Course Requests XML Import
- added ability to only add / drop certain requests of a student
- use addCourseRequests and dropCourseRequests elements instead of updateCourseRequests
- these elements have the same format as updateCourseRequests
For example:
<student key="1001">
<addCourseRequests>
<courseOffering subjectArea="C S" courseNumber="10100">
<class type="Lec" suffix="2"/>
<class type="Lab" suffix="4"/>
</courseOffering>
<courseOffering subjectArea="CHM" courseNumber="10100">
<alternative subjectArea="ECON" courseNumber="10100"/>
</courseOffering>
<freeTime days="TTh" startTime="0730" endTime="0830"/>
</addCourseRequests>
<dropCourseRequests>
<freeTime days="MWF" startTime="0730" endTime="0830"/>
<courseOffering subjectArea="ALG" courseNumber="10100"/>
</dropCourseRequests>
</student>
additional addCourseRequests notes:
- if there is already a course demand containing the primary course, it will be updated
- if there is already a free time request that overlaps with the given one, it will be updated
additional dropCourseRequests notes:
- the whole course demand containing the primary course will be dropped (not just the listed course/alternatives)
- any listed alternatives are ignored (the course demand that needs to be deleted is identified by the primary course)
- any free time request overlapping with the given one will be dropped
4cc010d0fa2f7dcc01f35266853e1caf82e2b96a
tomas-muller <muller@unitime.org>
27-Jan-2018 2:24 PM
HQL Reports: SESSIONS parameter
- added %SESSIONS% parameter listing unique ids of available academic sessions
- these are academic sessions for which the user has the current role
a400a224fe3984f535c0951e3b0f1b3a92c0768c
tomas-muller <muller@unitime.org>
27-Jan-2018 2:23 PM
Timetable Grid: Show Titles, Split Class Name
- added ability to show course titles on the timetable grid
- there is a new toggle in the Filter named Show Course Titles
- 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)
7a154fa504935ce63c249a2170a08639a6ff5ed3
tomas-muller <muller@unitime.org>
26-Jan-2018 7:50 AM
Course Requests / Student Scheduling Assistant: No Alternate Course Requests
- added an ability to hide Alternate Course Requests table (unless the student has some alternatives already)
- set the StudentSectioningConstants.numberOfAlternatives constant to zero
2419d781cdc49277d7aea9dc33d9c66694ab6f2c
tomas-muller <muller@unitime.org>
26-Jan-2018 7:48 AM
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)
258ca1ad49b3c9b6992e99225f996e0830b21121
tomas-muller <muller@unitime.org>
26-Jan-2018 7:44 AM
Instructional Offering Detail: Enrollments Table Permissions
- permission: allow schedule managers from non-controlling departments to see the enrollments
(Offering Enrollments permission)
110d2dfa68fb249193737ecf98903ebde1a7916a
tomas-muller <muller@unitime.org>
18-Jan-2018 8:20 AM
Course Timetabling: Timetable
- Export PDF: show 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)
d9f4cb2289f594e7d109b01b9404adeb2683d460
Stephanie Schluttenhofer <says@unitime.org>
8-Dec-2017 4:22 PM
Class external id (classSuffix) display / export change
When the classSuffix property (often call the external id) is set to a
six character string, UniTime places a ‘-‘ between the first three
characters and the last three characters of the string. A property has
been added to allow users to turn off this feature. When the setting
unitime.class.classSuffix.divSecDivider=false UniTime will not insert
the ‘-‘ into six character strings.
fd771abf7232ea96ed0b9f5de5d7ba092b0abb1a
tomas-muller <muller@unitime.org>
28-Nov-2017 4:09 PM
CPSolver: upgrade to version 1.3.124 (was 1.3.121)
Online Student Scheduling: Build Schedule
- prefer sections that are available: corrected Enrollment comparator
- this fixes the "Comparison method violates its general contract!" exception
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
d777693ad38c424824848503e3494b85cb323a38
tomas-muller <muller@unitime.org>
25-Nov-2017 8:52 PM
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)
2d2627839fe43a6c65163b5154b6b9d7e026ed5e
tomas-muller <muller@unitime.org>
25-Nov-2017 8:50 PM
Data Exchange: Course Offering Import
- lookup required preference by its reference value ('R') instead of its name which can be changed in the user interface
da1e2c733a775c02510058dbe7a87663726247c1
tomas-muller <muller@unitime.org>
25-Nov-2017 8:50 PM
Online Student Scheduling: Course Reservation
- corrected checking whether a student is meeting course reservation
(using the requested course, not stored course requests)
01bb9d6d98003e2685d3235647538bf9ac078848
tomas-muller <muller@unitime.org>
20-Nov-2017 8:28 PM
Session Roll Forward: Instructor Attributes
- fixed TransientObjectException when rolling instructor attributes forward
(caused by the parent-child relation between attributes when the attributes have been saved in a wrong order)
168165496f5ccdf8a7285501889c6b76b9d64e78
tomas-muller <muller@unitime.org>
9-Nov-2017 6:48 PM
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)
5f831fe3ab7226ebffc69a3cbda1432d2ad87227
tomas-muller <muller@unitime.org>
9-Nov-2017 6:45 PM
Events API: Resource Timetable
- added ability to lookup the subject, course, curriculum, department and student group by name (using name parameter)
869bd23f9f87386ff66260dcccfca295c9986fba
tomas-muller <muller@unitime.org>
6-Nov-2017 2:19 PM
CPSolver: upgrade to version 1.3.121 (was 1.3.111)
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
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
ddff57c49fa3e08b3cfadfb7c70270e3e696239c
tomas-muller <muller@unitime.org>
5-Nov-2017 8:36 AM
Add/Edit Timetable Manager
- maximal length of the External ID field corrected (40 characters)
c2a67eb4c75e8f2f4a6c72e6d939c17154b1e182
tomas-muller <muller@unitime.org>
25-Oct-2017 2:18 PM
Course Timetabling: 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)
18f37e2d72a16f64dcba26e186298d2c008af679
tomas-muller <muller@unitime.org>
25-Oct-2017 2:11 PM
Student Scheduling Assistant: Minor Changes
- 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)
a307a125ee8baaeac570a2946285cb310d7c3f7d
tomas-muller <muller@unitime.org>
20-Oct-2017 9:28 AM
Rooms: Event Message
- do not copy event room note from the <event department, room type> pair over to the room when editing a room
15f146b21e04afd8ed13dd58693bd79528cac11a
tomas-muller <muller@unitime.org>
19-Oct-2017 6:13 PM
Room Sharing Grid: Add Department
- added ability to filter available departments by a given text (department code or name)
04b3ee7c1fc9945b0d7ae42939d70c22886db4aa
tomas-muller <muller@unitime.org>
19-Oct-2017 1:56 PM
Examination Distribution Preferences: HQL Fix
- fixed a query syntax exception when Subject is set to All, but a Course Number is filled in
b164838d211f229efa2e7aa26ea2ede2cec386c6
tomas-muller <muller@unitime.org>
18-Oct-2017 8:34 PM
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
1828900097c55a47190add69b91ea4f87e2c070d
tomas-muller <muller@unitime.org>
18-Oct-2017 2:26 PM
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
4e7f3d5e6ab19512e7f9bb61769c6eba2fccd045
tomas-muller <muller@unitime.org>
17-Oct-2017 9:16 PM
Online Student Scheduling: Generic Updater -- Check For Multiple Masters
- if multiple masters are detected, release all master locks and reload the new master
(same as when MergeView message is recieved)
ae1a95ee81d2483f66b98f36c28368beccaff48f
tomas-muller <muller@unitime.org>
17-Oct-2017 6:20 PM
Scripts: Roll Forward Student Accommodations from Previous Term
- added a script that rolls forward student accommodations from the previous term into the current term
(including students if they already exist in the current term)
35301e378e06400763233a3b42a2586ea9130ee5
tomas-muller <muller@unitime.org>
17-Oct-2017 6:18 PM
Personal Schedule: Meeting Contacts
- include meetings where the user is filled in as a meeting contact in the personal schedule