<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/css" href="Release-Notes.css"?>
<!DOCTYPE release-history PUBLIC "-//UniTime//UniTime Release Notes DTD/EN" "Release-Notes.dtd">
<!--
 * Licensed to The Apereo Foundation under one or more contributor license
 * agreements. See the NOTICE file distributed with this work for
 * additional information regarding copyright ownership.
 *
 * The Apereo Foundation licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 -->

<release-history>

<doc-title>UniTime 4.2 Release Notes</doc-title>
<release>
	<version>4.2.204</version>
	<release-date>Sat, 22 Sep 2018</release-date>
	<category>
		<title>Administration</title>
		<item>
			<name>Data Exchange: Preferences XML</name>
			<description>
				<line>Fixed the SQLException: ORDER BY clause is not in SELECT list exception when using MySQL.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Instructor Assignment</title>
		<item>
			<name>Classes: Need Instructor Assignment</name>
			<description>
				<line>Corrected the "Show only classes that need instructor assignment" filter (fixes the could not resolve property: teachingLoad error).</line>
			</description>
		</item>
	</category>	
	<category>
		<title>Other</title>
		<item>
			<name>HQL Reports: Export CSV</name>
			<description>
				<line>Fixed the ability to export an HQL report to CSV when the query contains a single-choice parameter (like SUBJECT or DEPARTMENT).</line>
			</description>
		</item>
	</category>
</release>
<release>
	<version>4.2.201</version>
	<release-date>Wed, 16 May 2018</release-date>
	<category>
		<title>Event Management</title>
		<item>
			<name>Personal Schedule: Meeting Contacts</name>
			<description>
				<line>Include meetings where the user is filled in as a meeting contact in the personal schedule.</line>
			</description>
		</item>
		<item>
			<name>Rooms: Event Message</name>
			<description>
				<line>Do not copy event room note from the &lt;event department, room type&gt; pair over to the room when editing a room.</line>
			</description>
		</item>
		<item>
			<name>Events API: Resource Timetable</name>
			<description>
				<line>Added ability to lookup the subject, course, curriculum, department and student group by name (using name parameter).</line>
			</description>
		</item>
		<item>
			<name>Event Export: Personal Schedule Permissions</name>
			<description>
				<line>When exporting events of another person, the following permissions are used to filter the role:
					<line>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).</line>
					<line>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).</line>
					<line>Can Lookup Event Contacts is needed for the Contact role (person is listed among contacts of the event).</line>
				</line>
			</description>
		</item>
		<item>
			<name>Room Availability: Include Events From Other Academic Sessions</name>
			<description>
				<line>Course/Examination Timetabling: Added ability to include events (of the same type) from other academic sessions.</line>
				<line>To enable this, set tmtbl.room.availability.includeOtherTerms to true on the Application Configuration page.</line>
				<line>Rooms of the overlapping academic sessions must have the same permanent id.
					<line>This can be achieved, e.g., by rolling forward the rooms from one academic session to the next.</line>
					<line>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).</line>
				</line>
			</description>
		</item>
		<item>
			<name>Event Detail: Enrollments</name>
			<description>
				<line>Conflicts: Make sure that cancelled class or examination meetings do not show up as conflicts in the Enrollments table.</line>
				<line>Export CSV: Added ability to export the Enrollments table into a CSV file.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Course Timetabling</title>
		<item>
			<name>Room Sharing Grid, Instructor Availability Table</name>
			<description>
				<line>Corrected table splitting when more than 48 possible times are displayed horizontally.</line>
				<line>Slightly increase cell width to make sure all cells are of the same width.</line>
			</description>
		</item>
		<item>
			<name>Room Sharing Grid: Add Department</name>
			<description>
				<line>Added ability to filter available departments by a given text (department code or name).</line>
			</description>
		</item>
		<item>
			<name>Date Pattern: Name</name>
			<description>
				<line>Date pattern name changed to fit 100 characters.</line>
				<line>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).</line>
			</description>
		</item>
		<item>
			<name>Timetable Grid</name>
			<description>
				<line>Export PDF: Print one table per each day of week when in the &quot;In Row [horizontal]&quot; mode (instead showing one table very wide table with all the days of the week inside).</line>
				<line>Show Course Title: It is now possible to show course titles on the timetable grid.
					<line>There is a new toggle in the Filter named Show Course Titles.</line>
				</line>
				<line>Split Class Name: Added ability to split class label into two lines.
					<line>Subject and course number on the first line,</line>
					<line>itype and section number (and the optional suffix and/or configuration name) on the second line.</line>
					<line>Enable by setting the application property unitime.timeGrid.classNameTwoLines to true (defaults to false).</line>
				</line>
			</description>
		</item>
		<item>
			<name>Instructional Offering Detail: Enrollments Table</name>
			<description>
				<line>Allow schedule managers from non-controlling departments to see the enrollments.</line>
			</description>
		</item>
		<item>
			<name>Instructional Offering Cross Lists: Keep Course Requests</name>
			<description>
				<line>Added an ability to keep course requests on the course that is added to or dropped from a cross-list.
					<line>Enable this feature by setting unitime.crossList.keepCourseRequests to true (default is false).</line>
				</line>
			</description>
		</item>
	</category>
	<category>
		<title>Examination Timetabling</title>
		<item>
			<name>Examination Distribution Preferences: HQL Fix</name>
			<description>
				<line>Fixed a query syntax exception when Subject is set to All, but a Course Number is filled in.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Online Student Scheduling</title>
		<item>
			<name>Generic Updater: Check For Multiple Masters</name>
			<description>
				<line>If multiple masters are detected, release all master locks and reload the new master.</line>
			</description>
		</item>
		<item>
			<name>Student Scheduling Assistant</name>
			<description>
				<line>List of Classes: do not include course note in the section note.</line>
				<line>Course Suggestions: when showing individual classes include subpart and section note in the hint.</line>
				<line>Filter Box: limit the height of the suggestions / filter popup when on mobile (allow for vertical scroll).</line>
				<line>Alternatives: allow for the Alternatives dialog to be wider if needed (up to 90% of viewport width).</line>
			</description>
		</item>
		<item>
			<name>Course Reservations</name>
			<description>
				<line>Corrected checking whether a student is meeting course reservation (using the requested course, not stored course requests).</line>
			</description>
		</item>
		<item>
			<name>No Alternate Course Requests</name>
			<description>
				<line>Added an ability to hide Alternate Course Requests table (unless the student has some alternatives already).</line>
				<line>To do this, set the StudentSectioningConstants.numberOfAlternatives constant to zero.</line>
			</description>
		</item>
		<item>
			<name>Email Notification</name>
			<description>
				<line>Added ability to use the CourseUrlProvider to make the Subject and Course clickable.</line>
				<line>When the unitime.custom.CourseUrlProvider application property is configured.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Administration</title>
		<item>
			<name>Scripts: Send email when finished</name>
			<description>
				<line>Added ability for a script to send an email (including the log and the generated file if there is any) when it is finished.</line>
				<line>If there is an error, include stack trace in the log.</line>
			</description>
		</item>
		<item>
			<name>Add/Edit Timetable Manager</name>
			<description>
				<line>Maximal length of the External ID field corrected (40 characters).</line>
			</description>
		</item>
		<item>
			<name>Session Roll Forward: Instructor Attributes</name>
			<description>
				<line>Fixed TransientObjectException when rolling instructor attributes (with parent-child relation) forward.</line>
			</description>
		</item>
		<item>
			<name>HQL Reports: SESSIONS</name>
			<description>
				<line>Added %SESSIONS% parameter listing unique IDs of available academic sessions.</line>
				<line>These are academic sessions for which the user has the current role.</line>
			</description>
		</item>
		<item>
			<name>Data Exchange: Course Requests XML Import</name>
			<description>
				<line>Added ability to only add / drop certain requests of a student.</line>
				<line>Use the new addCourseRequests and dropCourseRequests elements instead of the updateCourseRequests element.
					<line>These elements have the same format as the updateCourseRequests element.</line>
				</line>
			</description>
		</item>
		<item>
			<name>OpenStreetMap</name>
			<description>
				<line>Added ability to switch to OpenStreetMap (using Leaflet library, https://leafletjs.com).</line>
				<line>Set unitime.coordinates.googlemap to false, unitime.coordinates.leafletmap to true.</line>
				<line>Map tiles template URL and attribution can be changed (defaults to OpenStreetMap tiles).</line>
				<line>See http://help.unitime.org/OpenStreetMap for more details.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Constraint Solver (1.3.124)</title>
		<item>
			<name>Course Timetabling: Max Half-Days Constraint</name>
			<description>
				<line>The MaxHalfDays constraint limits the number of half-days of week during which the given set of classes are taught.</line>
				<line>It has one parameter: a maximal number of week half-days during which the given set of classes can be placed.</line>
				<line>A day is split by noon (which can be changed using General.HalfDaySlot parameter).</line>
				<line>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.</line>
				<line>For instance, a reference MaxHalfDays:4 translates to a maximum number of 4 half-days a week.</line>
			</description>
		</item>
		<item>
			<name>Course Timetabling: added MaxHoles distribution constraint</name>
			<description>
				<line>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).</line>
				<line>It has one parameter: a maximal amount of free time that an instructor can have on a day in minutes.</line>
				<line>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:
					<line>if required, having more free time is prohibited</line>
					<line>if preferred or strongly preferred, the excessive free time is penalized</line>
				</line>
			</description>
		</item>
		<item>
			<name>Course Timetabling: Student Conflicts</name>
			<description>
				<line>Added a naive, yet effective approach for minimizing holes in student schedule.
					<line>The new StudentMinimizeScheduleHoles criterion penalizes all cases where a student has two classes taught on the same day that are not back-to-back.</line>
					<line>The penalization is based on the time distance between the two classes, computed in hours.</line>
					<line>These penalties are weighted by Comparator.MinimizeStudentScheduleHolesWeight, which defaults to 1/20 of the Comparator.StudentConflictWeight.</line>
					<line>To enable this criterion, add org.cpsolver.coursett.criteria.additional.StudentMinimizeScheduleHoles to General.AdditionalCriteria.</line>
				</line>
				<line>Added a naive, yet effective approach for minimizing number of days in student schedule.
					<line>The new StudentMinimizeDaysOfWeek criterion penalizes all cases where a student has two classes taught on different days.</line>
					<line>These penalties are weighted by Comparator.MinimizeStudentScheduleDaysWeight, which defaults to 1/20 of the Comparator.StudentConflictWeight.</line>
					<line>To enable this criterion, add org.cpsolver.coursett.criteria.additional.StudentMinimizeDaysOfWeek to General.AdditionalCriteria.</line>
				</line>
				<line>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.</line>
			</description>
		</item>
		<item>
			<name>Course Timetabling: Week Start/End</name>
			<description>
				<line>Added ability to define when a work week starts (General.FirstWorkDay) and when it ends (General.LastWorkDay).</line>
				<line>It is possible that General.LastWorkDay &lt; General.FirstWorkDay, e.g., General.FirstWorkDay = 6 (Sunday) and General.LastWorkDay = 3 (Thursday).</line>
				<line>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).</line>
			</description>
		</item>
		<item>
			<name>Examination Timetabling: Period Preferences</name>
			<description>
				<line>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).</line>
			</description>
		</item>
		<item>
			<name>Examination Timetabling: Room Split Penalty</name>
			<description>
				<line>Increased the limit on the maximal number of rooms that an exam can take to 30.</line>
			</description>
		</item>
		<item>
			<name>Examination Timetabling: Save XML</name>
			<description>
				<line>Corrected examination period penalty value.</line>
			</description>
		</item>
		<item>
			<name>Examination Timetabling: Criteria</name>
			<description>
				<line>Changed the value update type to after unassigned after assigned.</line>
				<line>This corrects the direct conflict computations when a student is assigned to three or more exams on a day.</line>
				<line>This corrects the more than two exams on a day computation when a student is assigned to four or more exams on a day.</line>
			</description>
		</item>
		<item>
			<name>Student Scheduling: Scheduling Assistant Weights</name>
			<description>
				<line>Corrected precision on the selected choices criterion as the result is a % of the selected classes.</line>
				<line>Put selected sections higher in the list.</line>
				<line>Minimize class penalties: divide penalty by the number of sections (counting average section penalty of the enrollment).
					<line>This is to avoid penalization of enrollments with more/fewer sections.</line>
				</line>
				<line>Prefer sections that are available (there is space in them).
					<line>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).</line>
				</line>
			</description>
		</item>
		<item>
			<name>Student Scheduling: Student Conflict Constraint</name>
			<description>
				<line>Checking whether a student already has a complete schedule corrected.
					<line>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.</line>
				</line>
				<line>Ensure that completeness of a student schedule is properly checked during the assignment.
					<line>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.</line>
					<line>This was causing troubles for the IFS phase.</line>
				</line>
			</description>
		</item>
	</category>
</release>

<release>
	<version>4.2.185</version>
	<release-date>Sat, 7 Oct 2017</release-date>
	<category>
		<title>Online Student Scheduling</title>
		<item>
			<name>Student Scheduling Assistant: Degree Plan</name>
			<description>
				<line>Fixed a ClassCastException thrown when a course is selected that was introduced in commit c3e4935 (UniTime 4.2).</line>
				<line>This fixes the issue of the Details and the List of classes tabs not being populated when a course is selected.</line>
			</description>
		</item>
		<item>
			<name>Confirmation Dialog: Accessibility</name>
			<description>
				<line>Improved accessibility by adding the info / confirmation message to the ARIA status.</line>
				<line>When in confirmation mode, also include the Enter to accept and Escape to reject the status message.</line>
			</description>
		</item>
		<item>
			<name>Student Scheduling Assistant: Minor Accessibility Improvements</name>
			<description>
				<line>Course Finder dialog: corrected course selection ARIA status message when going through the list of courses.</line>
				<line>List of Classes: vertical scroll disabled in the List of Classes table (the page is already as big as the table).</line>
			</description>
		</item>
		<item>
			<name>Online Student Scheduling Server: Reload All Data</name>
			<description>
				<line>Fixed an exception when a controlling course of a cross-list is not allowed for student scheduling (via departmental settings),
					but the other course (or courses) of the cross-list is allowed.</line>
			</description>
		</item>
		<item>
			<name>Course Requests: Find Courses</name>
			<description>
				<line>Only include offered courses in the list.</line>
				<line>Return all matching courses when the given limit is negative.</line>
			</description>
		</item>
		<item>
			<name>Default Alternative Course Offering</name>
			<description>
				<line>Fixed a Null exception when there is a new free time request (during the enroll action).</line>
			</description>
		</item>
	</category>
	<category>
		<title>Event Management</title>
		<item>
			<name>Event Confirmation Emails</name>
			<description>
				<line>Room Capacity: Include room capacity in the event confirmation emails.</line>
				<line>Note: Highlight current note (additional information) with a light-blue background.</line>
				<line>Event Link: Make sure that the Event Detail page gets opened when the link (from the event confirmation email) is clicked.
					<line>Term parameter has academic session reference instead of unique id.</line>
					<line>Events page checks that the event properties for the academic session have been loaded (and it waits for a little bit if not).</line>
				</line>
			</description>
		</item>
		<item>
			<name>Event Status: Automatic Approval</name>
			<description>
				<line>Added the following automatic approval event statuses:
					<line>Authenticated Users Can Request Events Automatically Approved</line>
					<line>Departmental Users Can Request Events Automatically Approved</line>
					<line>Event Managers Can Request Events Automatically Approved</line>
				</line>
				<line>Special and course related events requested in rooms with this status will get automatically approved.</line>
				<line>It is also possible to delete an automatically approved meeting (meetings that require approval can be only cancelled).</line>
			</description>
		</item>
		<item>
			<name>Event Management: Services</name>
			<description>
				<line>Added Event Service Providers: each provider has a name, a description, and an email.</line>
				<line>An event can request multiple services.</line>
				<line>If a service provider has an email, event confirmation is sent to the email address when there is a meeting approved or cancelled.</line>
				<line>Service providers are global (for all the sessions), session-dependent (for a particular session), and departmental (for a particular department).</line>
				<line>It is also possible to define available services only for particular rooms: Available services can be defined on the Event Statuses page or on the Edit/Add Room page.
					<line>Only applicable services will appear on the Add/Edit Event page for the user to request.</line>
					<line>Session-dependent and departmental service providers roll forward (with the session configuration). Available services of a room also roll forward, with the rooms.</line>
				</line>
			</description>
		</item>
		<item>
			<name>Academic Session Status: Event Management</name>
			<description>
				<line>Added Event Management status toggle.</line>
				<line>By default, all session statues have the Event Management enabled, except of test sessions, Initial Data Load and Session Finished statuses.</line>
				<line>When not set, all rooms are treated as with No Event Management status.
					<line>Academic session in the Initial Data Load and/or Session Finished Status does not show in the list of academic sessions on the Event pages, regardless the event statuses on individual rooms.</line>
				</line>
			</description>
		</item>
		<item>
			<name>Event Note: Event Text Note / Additional Information</name>
			<description>
				<line>Increase size of the event note to 2000 characters.</line>
				<line>Concatenate the note when it is too long (to avoid an SQL exception).</line>
				<line>Add/Edit Event: check the event note, show an error when it is too long.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Course Timetabling</title>
		<item>
			<name>Class Detail, Scheduling Subpart Detail, Instructor Detail, Examination Detail: Room Preferences</name>
			<description>
				<line>Show room tool-tip when the mouse is over a room preference.</line>
			</description>
		</item>
		<item>
			<name>Solver Info: HTML</name>
			<description>
				<line>When showing solver info (the mouse is over the solver status just below the page name), solver properties can contain HTML tags.</line>
				<line>For example, the Period&amp;times;Size Penalty.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Administration</title>
	    <item>
	        <name>Data Exchange: Student Course Requests Export</name>
	        <description>
	        	<line>Corrected endTime attribute of a freeTime element.</line>
	        </description>
	    </item>
	</category>
	<category>
		<title>Other</title>
		<item>
			<name>GWT getAbsoluteLeft/Top incorrect in Chrome 61</name>
			<description>
				<line>Corrected implementation of document.getScrollTop and document.getScrollLeft.</line>
				<line>See https://github.com/gwtproject/gwt/issues/9542 for more details.</line>
			</description>
		</item>
	</category>
</release>

<release>
	<version>4.2.175</version>
	<release-date>Sat, 9 Sep 2017</release-date>
	<category>
		<title>Course Timetabling</title>
		<item>
			<name>Room Edit: Google Map</name>
			<description>
				<line>When user cannot edit room coordinates: show marker that cannot be moved around.</line>
				<line>When user cannot edit room coordinates and there are no coordinates: do not show the map at all.</line>
			</description>
		</item>
		<item>
			<name>Longer Class Suffix and Configuration Name</name>
			<description>
				<line>Class suffix and configuration name fields are now up to 20 characters long (instead of 10).</line>
			</description>
		</item>
		<item>
			<name>Configuration Names</name>
			<description>
				<line>When the application property unitime.solver.showConfigurationNames is set to true (defaults to false), configuration name is added to the class name when the data are being loaded into the course timetabling solver.</line>
				<line>This is only done when the course has two or more configurations.</line>
			</description>
		</item>
		<item>
			<name>Reservations</name>
			<description>
				<line>Added ability to consider reservations that are set on other problems (on committed classes).</line>
				<line>To enable this feature, set solver parameter General.LoadCommittedReservations to true.</line>
			</description>
		</item>
		<item>
			<name>Instructional Offering Detail, Class Detail: Class/Offering Conflicts</name>
			<description>
				<line>If an instructor is assigned to a class two (or more) times with different responsibility, do not show that as an instructor conflict.</line>
				<line>Only show an instructor conflict between two classes, if the instructor is lead on both classes.</line>
			</description>
		</item>
		<item>
			<name>Last-Like Student Course Demands</name>
			<description>
				<line>Added ability to consider last-like student course demand priorities.</line>
				<line>Enable using solver parameter LastLikeStudentCourseDemands.UsePriorities = true (defaults to false).</line>
				<line>Enrollment importance is computed as base ^ priority.
					<line>Where base is defined using solver parameter LastLikeStudentCourseDemands.BasePriorityWeight, defaults to 0.9.</line>
					<line>Priority 0 has importance of 1.0, priority 1 of 0.9, priority 2 of 0.9^2 = 0.81, etc.</line>
				</line>
			</description>
		</item>
		<item>
			<name>Solver Page</name>
			<description>
				<line>Parameters: Recognize &quot;on&quot; as a true value for boolean parameters.</line>
				<line>Interactive: When an interactive configuration is used (the solver was loaded on the Timetables page),
					make sure that the configuration that is being used is available in the Solver Configuration drop down.
					<line>This also fixes an issue of an unwanted configuration change when the solver is reloaded on the Solver page.</line>
				</line>
			</description>
		</item>
		<item>
			<name>Solver, Solver Log: Page Navigation</name>
			<description>
				<line>New GWT-based solver pages: Mark the visited solver / solver log page in navigation so that if a link is followed (e.g., to see Class Detail page),
					Back button appears and goes back to the solver / solver log page.</line>
			</description>
		</item>
		<item>
			<name>Menu: Course Audit</name>
			<description>
				<line>Link the new Solver and Solver Log pages from the Course Audit menu (unless unitime.legacy.solver is set to true).</line>
			</description>
		</item>
		<item>
			<name>Instructional Offering Configuration: Delete Incompatible Time Preferences</name>
			<description>
				<line>Added an ability to delete incompatible time preferences after a class duration change.</line>
				<line>Set application property unitime.instrOfferingConfig.deleteIncompatibleTimePrefs to true (defaults to false).</line>
			</description>
		</item>
		<item>
			<name>Solver: Group Constraint</name>
			<description>
				<line>Do not use forward-checking when checking for hard conflicts during an assignments.</line>
				<line>This fixes an issue on the Suggestion page (a conflict may not be shown) and during solution restore.</line>
			</description>
		</item>
		<item>
			<name>Solver: Student Groups</name>
			<description>
				<line>When computing Student Groups solution info, avoid a Null exception when there is a class with no configuration.</line>
			</description>
		</item>
		<item>
			<name>Add/Edit Department: Departmental Status</name>
			<description>
				<line>Added Delete All button that clears the table of Controlling Department Statuses.</line>
				<line>Added Department Limited Edit permission that can be used for users (External Schedule Managers) that are only allowed to edit Controlling Department Statuses.</line>
			</description>
		</item>
		<item>
			<name>Assigned / Not-Assigned Classes</name>
			<description>
				<line>Subject Area: added &quot;All Subjects&quot; option.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Online Student Scheduling</title>
		<item>
			<name>Custom Student Enrollment Provider: Enroll Student</name>
			<description>
				<line>Avoid creating additional course requests for the same course when the custom student enrollment provider refuses to drop a course.</line>
			</description>
		</item>
		<item>
			<name>Online Student Scheduling Server: Release Master Lock</name>
			<description>
				<line>When there is no solver cluster (online student scheduling server runs within the Tomcat and there is no master lock), reload the server when requested.</line>
				<line>This fixes an issue on the Manage Solvers page where the online scheduling server cannot be reloaded when the server is running locally (there is no cluster).</line>
			</description>
		</item>
		<item>
			<name>Teaching Assignments</name>
			<description>
				<line>Instructor assignments that do not check conflicts (Check Conflicts toggle is not checked) can overlap with class enrollments.</line>
			</description>
		</item>
		<item>
			<name>Course Requests: Eligibility Check</name>
			<description>
				<line>Allow for collecting registrations when the academic status does not have any default student status selected (all should be enabled).</line>
			</description>
		</item>
		<item>
			<name>Online Student Scheduling Server: Generic Updater</name>
			<description>
				<line>Check for new servers: when the best node refuses to load the online student scheduling server for some reason
					(typically because canCreateSolver(sessionId) returns false), continue with the next available server.</line>
				<line>This change fixes the case when the generic updater thread keeps on trying the same node over and over, never leaving the loop.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Batch Student Scheduling</title>
		<item>
			<name>Student Scheduling Solver: Save</name>
			<description>
				<line>There is a new permission named Student Sectioning Solver Save that can be used to restrict who can save the student class enrollments.</line>
				<line>By default, the Student Sectioning Solver Save permission is given to the role that have Student Sectioning Solver permission (that is all the roles, that can use the solver page).</line>
			</description>
		</item>
	</category>
	<category>
		<title>Instructor Scheduling</title>
		<item>
			<name>Setup Teaching Requests</name>
			<description>
				<line>Do not show course title if it is not set (null).</line>
				<line>Show Include Subparts section even when there is only one subpart to show (it may be still important to set percentage share etc.).</line>
			</description>
		</item>
	</category>
	<category>
		<title>Event Management</title>
		<item>
			<name>Rooms: Export PDF/CSV</name>
			<description>
				<line>Event status may contain line breaks -- change &lt;br&gt; to a new line.</line>
			</description>
		</item>
		<item>
			<name>Room Pictures: Sorting</name>
			<description>
				<line>Compare room pictures with the same time stamp by name and/or unique id.
					<line>This fixes an issue of not showing some pictures if they have the same time stamp.</line>
				</line>
			</description>
		</item>
		<item>
			<name>Curriculum Timetable: Multiple Majors</name>
			<description>
				<line>Include inherited courses when showing a multiple-major curriculum, do not show courses with zero percent share.</line>
			</description>
		</item>
		<item>
			<name>Add/Edit Event: Add Meetings</name>
			<description>
				<line>Fixed room availability check when the room filter returns more than 1000 rooms.</line>
				<line>This fixes the ORA-00936: missing expression and SQLGrammarException: could not extract ResultSet.</line>
			</description>
		</item>
	</category>
	<category>
	    <title>Administration</title>
	    <item>
	        <name>Data Exchange: Academic Session Setup</name>
	        <description>
	            <line>Added and XML import/export that can
	                <line>Create or update academic session (dates and holidays)</line>
	                <line>Import or update departments, subject areas, managers, solver groups, date patterns, time patterns, examination periods,
	                    academic areas, academic classifications, majors, minors, student groups, and/or student accomodations.</line>
	                <line>The import can contain only certain sections (e.g., only date and time patterns).</line>
	                <line>All items can be imported in an incremental mode (entities that are not present in the file are ignored). By default, entities that are not present in the file are deleted.</line>
	            </line>
	        </description>
	    </item>
	    <item>
	    	<name>Data Exchange: Course Offering Import</name>
	    	<description>
	    		<line>In the incremental mode (incremental=&quot;true&quot;), do not delete configurations, subparts, or classes when there are no config, subpart, or class elements present.</line>
	    		<line>Also, do not change credit or consent information when the course has no courseCredit or consent element respectively.</line>
	    		<line>Staff lookup: avoid exceptions when the same person is listed under multiple departments, lookup under the controlling department first.</line>
	    	</description>
	    </item>
	    <item>
	    	<name>Data Exchange: Course Timetable/Offerings XML Export</name>
	    	<description>
	    		<line>Added ability to export student group assignments with the assignment (enable by setting tmtbl.export.studentGroups to true, defaults to false).</line>
	    	</description>
	    </item>
	    <item>
	    	<name>HQL Reports: Navigation</name>
	    	<description>
	    		<line>Show Previous/Next buttons at the bottom of the page (below the table) too.</line>
	    	</description>
	    </item>
	    <item>
	    	<name>User Settings: Primary Academic Initiative</name>
	    	<description>
	    		<line>Added ability to define a primary academic initiative as a user settings (Preferences > Settings).</line>
	    		<line>When a user has access to multiple initiatives (campuses), primary academic initiative can be used to determine the default academic session.</line>
	    		<line>To enable this, define a new manager setting (Administration > Defaults > User Settings) with reference primaryAcademicInitiative,
	    			default value Not Set, and allowed values containing &quot;Not Set&quot; and the existing academic initiatives that users can choose from.</line>
	    	</description>
	    </item>
	</category>
</release>
<release>
	<version>4.2.154</version>
	<release-date>Wed, 21 Jun 2017</release-date>
	<category>
		<title>First Release of UniTime 4.2 (planned June 2017)</title>
		<item>
			<name>Release Notes</name>
			<description>
				<line>See https://goo.gl/4g1XQV for more details.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Instructor Scheduling</title>
		<item>
			<name>Description</name>
			<description>
				<line>In UniTime 4.2, a new component for automatic assignment of instructors to classes or courses has been created.</line>
				<line>The instructors (e.g., teaching assistants) are expected to be assigned after the course timetabling and student
					scheduling are done, using information from both course timetabling (course timetable) and student scheduling
					(student availability).</line>
				<line>See https://goo.gl/Zb2aES for more details.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Responsive Design</title>
		<item>
			<name>Description</name>
			<description>
				<line>All the existing new (GWT-based) pages have been made more mobile friendly.</line>
				<line>This means that page closely follows the width of the window, making all the tables to fit or to have individual horizontal scroll bars.</line>
				<line>A few changes have been also made to the common components that are used on the (old) Struts-based pages to increase their mobile friendliness.</line>
				<line>When the page with is 800 pixels or less, there is also a new menu, which shows on top of the page.</line>
				<line>The page takes the full page width (no surrounding blue box), and the page header and footers are reformatted to fit the screen.</line>
				<line>Also, the GWT-based page notifications take the whole bottom part of the page (and disappear after a few seconds or when clicked on).</line>
			</description>
		</item>
	</category>
	<category>
		<title>Course Timetabling</title>
		<item>
			<name>Solver, Solver Log</name>
			<description>
				<line>All UniTime solvers are now based on the same common interface and there have been a number of redundancies removed.</line>
				<line>With that, there is also a new GWT-based version of the Solver and the Solver Log page.</line>
				<line>Old solver pages can be enabled by setting unitime.legacy.solver to true.</line>
				<line>The solver can now be stopped during load, save, or student sectioning.</line>
			</description>
		</item>
		<item>
			<name>Teaching Responsibilities</name>
			<description>
				<line>Both instructors and coordinators can have a teaching responsibility defined (optional).</line>
				<line>The teaching responsibilities are academic session independent and can be defined on Administration > Other > Teaching Responsibilities page.</line>
				<line>Beside of reference, name, and abbreviation, there is a flag defining whether the responsibility can be used on an instructor (Instructor column), on a coordinator (Coordinator column), whether the assignment should be visible in the reports (Auxiliary), not visible in the event management (Hide in Events) or not exported / sent to an external system (No Export).</line>
				<line>With this change, an instructor can be assigned to a class or to an offering (as course coordinator) multiple times, but with different responsibilities.</line>
				<line>It is also possible to setup a default teaching responsibility (one for instructors and one for coordinators, see the Default column above), in which case there has to be a teaching responsibility selected for all the new instructor or coordinator assignments.</line>
			</description>
		</item>
		<item>
			<name>Highlight Class-level Preferences</name>
			<description>
				<line>Since UniTime 4.1, it is possible to highlight preferences that are set directly on classes with the unitime.preferences.highlightClassPrefs application property.</line>
				<line>It is now possible to set whether class preferences are to be highlighted on a user level (using user settings). There is a new settings (named highlightClassPrefs) with the following values:
					<line>yes (class preferences are to be highlighted)</line>
					<line>no (class preferences are not to be highlighted)</line>
					<line>not set (use the system default, as it is set using unitime.preferences.highlightClassPrefs application property)</line>
				</line>
				<line>For the users to be able to use this feature, the highlightClassPrefs user property needs to be created on the Administration > Defaults > User Settings page.</line>
			</description>
		</item>
		<item>
			<name>Departmental Status</name>
			<description>
				<line>Added ability to provide a different status for each controlling and external department pair.</line>
				<line>This is to be able to change access to LLR classes for departments that are already done.</line>
			</description>
		</item>
		<item>
			<name>Show Class Suffixes</name>
			<description>
				<line>Added ability to show class external ids (class suffixes) in the course timetabling solver (next to the class section number).</line>
				<line>To enable this, set the application configuration property unitime.solver.showClassSuffixes to true (defaults to false).</line>
			</description>
		</item>
		<item>
			<name>Student Group Scheduling</name>
			<description>
				<line>Added ability to keep students of a certain student group or curriculum classification together as much as possible.</line>
				<line>For this, there is a new resource on the Timetable grid page (Student Groups), a new criterion (Student Groups), and two new sectioning algorithms.</line>
				<line>Also, student group reservations are now considered during the course timetabling.</line>
				<line>It is also possible to use last-like enrollments for student group reservations, assuming that there is a student group with the same abbreviation (code) in the last-like data.</line>
				<line>Student group can also have an expected size now, which can be used by the solver to make up student group course demands.</line>
				<line>There is a new solver parameter General.StudentSectioning that allows the users to choose one of our student sectioning algorithm.</line>
			</description>
		</item>
		<item>
			<name>Instructional Offering Note</name>
			<description>
				<line>Added a note to the instructional offering, much like the requests / notes to schedule manager on the classes.</line>
				<line>To be edited on the Edit Course Offering page of the controlling course.</line>
				<line>Displayed on the Instructional Offering Detail page and in the Instructional Offerings table.</line>
				<line>When application property unitime.offering.showClassNotes is set to true (which is also the default), class notes are also displayed on the Instructional Offering Detail page, showing all the notes and requests for an offering on one place.</line>
			</description>
		</item>
		<item>
			<name>Timetable Grid</name>
			<description>
				<line>Timetable grid page has been rewritten in GWT, with the following improvements:
					<line>the page is now fully localizable, it is responsive and prints nicely</line>
					<line>the Days and Times selections can be changed using application properties (see unitime.timeGrid.times and unitime.timeGrid.days properties)</line>
					<line>it is now possible to include cross-listed names (by setting unitime.timeGrid.crossList to true)</line>
					<line>when showing solver data, instructors of committed classes can be shown (by setting unitime.timeGrid.fixInstructors to true)</line>
					<line>the view can start on any day of week (by setting unitime.timeGrid.startDay to a number between 0 for Monday and 6 for Sunday)</line>
					<line>when there is no solution loaded or selected, the committed solution(s) of the user are shown instead</line>
				</line>
			</description>
		</item>
		<item>
			<name>Assigned / Not-Assigned Classes</name>
			<description>
				<line>Assigned Classes, Not-Assigned Classes pages have been rewritten in GWT, with the following improvements:
					<line>the page is now fully localizable, it is responsive and prints nicely</line>
					<line>it is now possible to include cross-listed names (by setting unitime.timeGrid.crossList to true)</line>
					<line>when there is no solution loaded or selected, the committed solution(s) of the user are shown instead</line>
					<line>multiple subject areas can be selected</line>
					<line>when solver is not loaded in memory, show Class Detail page on click</line>
				</line>
			</description>
		</item>
	</category>
	<category>
		<title>Student Scheduling</title>
		<item>
			<name>Default Alternative Course Offering</name>
			<description>
				<line>An ability to provide a (default) alternative course offering (Add/Edit Course Offering page) has been added.</line>
				<line>When a course is requested without any alternatives provided, the default alternative course offering can be used as an alternative.</line>
				<line>Set the application property unitime.sectioning.alternativeCourse to true to enable this feature (default is false).</line>
			</description>
		</item>
		<item>
			<name>Student Groups</name>
			<description>
				<line>In the batch student scheduling, the ability to keep students of the same student group together has been greatly improved.</line>
				<line>The feature can be enabled by setting the solver parameter solver parameter Load.RequestGroups to true (defaults to false).</line>
				<line>There is also a new solver parameter Load.RequestGroupRegExp, containing a regular expression to be matched with student group name (when present).</line>
			</description>
		</item>
		<item>
			<name>Choice of Instructional Method or Individual Section(s)</name>
			<description>
				<line>Note: Instructional methods can be defined on Administration > Other > Instructional Metods page and can be used on the Instructional Offering Configuration page (each configuration can have an instructional method indicated).</line>
				<line>On the Student Scheduling Assistant, it is now possible to select instructional method (Online, Hybrid, etc.) and/or the individual section.</line>
				<line>The selection can be done through the Course Finder dialog or by typing in additional information in the course selection text field.</line>
				<line>The selection of an instructional method and/or individual sections work as a preference.</line>
				<line>If a student cannot be enrolled in the configuration or sections indicated, he/she may get some other available enrollment (not meeting the selected preference) instead.</line>
				<line>These preferences can be also collected during the Course Requests phase (when student course requests are being collected, but the scheduling is not available yet, e.g., because the timetable is not finalized).</line>
				<line>Both online and batch solvers do consider these preferences.</line>
			</description>
		</item>
		<item>
			<name>Responsive Design</name>
			<description>
				<line>The Student Scheduling Assistant is now more responsive.</line>
				<line>This means that page closely follows the width of the window, making all the tables to fit or to have individual horizontal scroll bars.</line>
				<line>Also, the component has been changed to better fit a smaller screen.</line>
				<line>Course Requests table no longer show alternative course requests (the two extra text-boxes on each line), but they can be added if needed by pressing the + button (or Ctrl+A).</line>
				<line>There is now more space for course request preferences (the course request component is much wider).</line>
				<line>It is now possible to reorder the course with its alternatives.</line>
				<line>With this change, there is no longer any limit on how many alternatives a course request can have.</line>
			</description>
		</item>
		<item>
			<name>Student Note</name>
			<description>
				<line>A note can be set on a student.</line>
				<line>This note is only available and can be edited on the Student Scheduling Dashboard page.</line>
			</description>
		</item>
		<item>
			<name>Student Availability</name>
			<description>
				<line>A student may not be available during a particular time because he/she is teaching some other class.</line>
				<line>Both batch and online solvers now consider this student/instructor availability.</line>
				<line>A student can now see his/her teaching assignments in the Scheduling Assistant too.</line>
			</description>
		</item>
		<item>
			<name>No Arrows</name>
			<description>
				<line>Course Requests, Student Scheduling Assistant: added an option to hide the up and down arrows and the trash bin in the Course Requests table.</line>
				<line>The buttons can be removed by setting the application property unitime.enrollment.hideCourseRequestArrows to true (defaults to false).</line>
				<line>The remaining components are made larger when the buttons are not shown to fill in the gap.</line>
				<line>When the X is clicked in the Course Request Box and there is nothing filled in, the line is removed and the courses below are shifted up (just like when the trash bin was clicked).</line>
			</description>
		</item>
		<item>
			<name>Logging</name>
			<description>
				<line>Additional columns have been added to the online scheduling log
					<line>message (last message with the highest log level)</line>
					<line>wall time (total execution time of the action)</line>
					<line>cpu time (total cpu time of the action)</line>
					<line>api get and post times (total execution times of the API calls)</line>
					<line>api exception (last API exception)</line>
				</line>
				<line>The total execution time has been added on the Change Log tab of the Online Student Scheduling Dashboard.</line>
				<line>The other new properties are listed in the Change message dialog, General section.</line>
				<line>It is possible to filter change log message by execution time (over:seconds or under:seconds), api time or exception (api:min_seconds or api:message_substring) or by message (message:substring).</line>
			</description>
		</item>
	</category>
	<category>
		<title>Event Management</title>
		<item>
			<name>Academic Sessions</name>
			<description>
				<line>Added ability to list the academic sessions in the drop-down in the reverse order (latest session first).</line>
				<line>This does not changes the order of the navigation arrows.</line>
				<line>Change the order by setting unitime.events.listSessionsLatestFirst to true (defaults to false).</line>
			</description>
		</item>
		<item>
			<name>Meeting Contacts</name>
			<description>
				<line>Added ability to associate contacts with individual meetings (Meeting Contacts, many-to-many relation).</line>
				<line>The following two permissions are needed to enable this feature:
					<line>Event Can View Meeting Contacts (Meeting Contact column is made visible in the Events)</line>
  					<line>Event Can Edit Meeting Contacts (Add/Remove Meeting Contact operations are available on the Add/Edit Event page)</line>
  				</line>
			</description>
		</item>
	</category>
	<category>
		<title>Rooms</title>
		<item>
			<name>Room Display Name</name>
			<description>
				<line>Events: Show display name (if exists) next to the room name.</line>
				<line>Room Filter can search by display name, and the display name shows in suggestions.</line>
				<line>Also include display name in the event confirmation email and in the PDF/CSV/iCalendar exports.</line>
				<line>Room display name is now also shown in the Examination PDF Reports and in the Scheduling Assistant.</line>
			</description>
		</item>
		<item>
			<name>Room Feature Description</name>
			<description>
				<line>Room feature has a new description field of up to 1000 characters.</line>
				<line>Room feature and group descriptions now show in the room mouse-over and in the room filter.</line>
			</description>
		</item>
		<item>
			<name>Delete Room / Non-University Location</name>
			<description>
				<line>It is now possible to delete a room when all the meetings in it are either cancelled or rejected.</line>
				<line>Cancelled / rejected meetings are also deleted with the room.</line>
				<line>This change makes it possible to delete such a room as it is not possible to delete meetings that are cancelled or rejected otherwise.</line>
			</description>
		</item>
	</category>
	<category>
		<title>Point in Time Reports</title>
		<item>
			<name>Point In Time Data Snapshots</name>
			<description>
				<line>UniTime now allows taking a snapshot of current state of students and their registration, class limits, and some other data.</line>
				<line>Such a snapshot, e.g., taken at the census date, can be used for reporting, data analysis, and roll forward.</line>
				<line>Multiple snapshots can be created for a term.</line>
				<line>The Point in Time Data snapshots can be created (exported) and saved (imported) using the Data Exchange page.</line>
				<line>There is a new administration page Point In Time Data Snapshots, which can be used to maintain imported snapshots.</line>
			</description>
		</item>
		<item>
			<name>Point In Time Data Reports</name>
			<description>
				<line>Point In Time Data Reports page contains a set of standard reports that are calculated from the static Point In Time Data snapshots for a session.</line>
				<line>The following reports can be run from the Point In Time Data Reports Page:
					<line>Weekly Student Class Hour Report For Department By Class
						<line>This report lists organized, not organized and total class hours for each class that occur between the session start date and the session class end date for the selected department.</line>
					</line>
					<line>Weekly Student Class Hour Report For Department By Instructor Position
						<line>This report lists organized, not organized and total class hours and student class hours for instructor position that occur between the session start date and the session class end date for the selected departments.</line>
					</line>
					<line>Weekly Student Class Hour Report For Department By Instructor
						<line>This report lists organized, not organized and total class hours and student class hours for instructor that occur between the session start date and the session class end date for the selected departments.</line>
					</line>
					<line>Departmental Weekly Student Class Hour Report
						<line>This report lists organized, not organized and total class and student class hours for each department that occur between the session start date and the session class end date.</line>
					</line>
					<line>Room Utilization
						<line>This report lists organized, not organized and total room and student class hours for each location that is used between the session start date and the session class end date.</line>
					</line>
					<line>Weekly Student Enrollment by Day Of Week and Period
						<line>This report lists organized, not organized and total student enrollments for each period collectively for all classes that meet the report criteria that fall between the session start date and the session class end date.</line>
					</line>
					<line>Organized Weekly Student Class Hours by Day Of Week and Hour of Day
						<line>This report lists organized student class hours for each hour in the day collectively for all classes that fall between the session start date and the session class end date.</line>
					</line>
					<line>Organized Weekly Student Class Hours by Building by Day Of Week and Hour of Day
						<line>This report lists organized student class hours by building for each hour in the day collectively for all classes that fall between the session start date and the session class end date.</line>
					</line>
					<line>Weekly Student Class Hours by Instructional Type by Day Of Week and Hour of Day
						<line>This report lists student class hours by instructional type for each hour in the day collectively for all classes that fall between the session start date and the session class end date.</line>
					</line>
					<line>Organized Weekly Student Class Hours by Department by Day Of Week and Hour of Day
						<line>This report lists organized student class hours by department for each hour in the day collectively for all classes that fall between the session start date and the session class end date.</line>
					</line>
					<line>Organized Weekly Student Class Hours by Subject Area by Day Of Week and Hour of Day
						<line>This report lists organized student class hours by subject area for each hour in the day collectively for all classes that fall between the session start date and the session class end date.</line>
					</line>
				</line>
			</description>
		</item>
	</category>
	<category>
		<title>Other Changes</title>
		<item>
			<name>Page Flow</name>
			<description>
				<line>For JSP-based pages, when showing the (old) loading icon in the page header, also use the GWT-like &quot;Loading page...&quot; notification (page grayed out with the blue message in the middle).</line>
				<line>For all pages, when leaving the page (e.g., a button requesting a different page or submitting a button was pressed), show the &quot;Please wait...&quot; notification (page grayed out with the blue message in the middle).</line>
				<line>This is to prevent the users from clicking on the same button (or on different buttons) multiple times and causing UniTime to respond even slower.</line>
			</description>
		</item>
		<item>
			<name>Export CSV</name>
			<description>
				<line>Export CSV capabilities have been added to Instructors page and to Student Scheduling Dashboard page.</line>
			</description>
		</item>
		<item>
			<name>Data Exchange</name>
			<description>
				<line>Added ability to import and export course timetabling preferences.</line>
				<line>Added ability to include individual class meeting in the course timetabling and course timetable exports.
						<line>This feature can be enabled by setting the tmtbl.export.classMeetings application property to true (defaults to false).</line>
				</line>
				<line>Unify the use of suffix attribute of a class element across all the imports and exports.</line>
				<line>Suffix attribute is set to class suffix, if it is not null and not empty class section number string (e.g., 1a) is used otherwise.</line>
			</description>
		</item>
		<item>
			<name>Data Model: Student Curriculum Information</name>
			<description>
				<line>Improving the student curriculum information data model to have a single table listing quaternions
					<line>(student, academic area, classification, major) and</line>
					<line>(student, academic araa, classification, minor)</line>
				</line>
				<line>instead of having three separate tables for
					<line>(student, academic area, classification),</line>
					<line>(student, major), and</line>
					<line>(student, minor).</line>
				</line>
				<line>This is to overcome a problem when student has two majors from the same academic area.</line>
				<line>The new tables are named student_area_clasf_major and student_area_clasf_minor, and they are replacing tables student_acad_area, student_major, and student_minor.</line>
				<line>It is no longer possible for a student to have an academic area and classification without also having a major or a minor (a dummy No Major major is created during data update and imports when needed).</line>
			</description>
		</item>
		<item>
			<name>Roll Forward</name>
			<description>
				<line>Added ability to define which of the distribution preferences (that are set between classes and subparts) are going to be rolled forward.</line>
				<line>This is to avoid cases where a distribution preference is only partially rolled, e.g., because preferences are rolled on subparts, but not on classes.</line>
				<line>There are the following options:
					<line>roll forward all distribution preferences</line>
					<line>roll forward all distribution preferences, except those that are put solely on classes (this is the default)</line>
					<line>roll forward only distribution preferences that are put solely on subparts</line>
					<line>do not roll forward distribution preferences</line>
				</line>
				<line>Added ability to preserve class suffixes and external ids.
					<line>Class suffix and external id is reset to null (not copied over to the next academic session) only when unitime.rollforward.resetClassSufix is set to true (defaults to false).</line>
				</line>
				<line>Roll configuration, subparts, and classes forward in their natural order (as they are displayed in UniTime).
					<line>This is done in an attempt to preserve class labels (section numbers) as much as possible.</line>
				</line>
				<line>Added the ability to roll student class enrollments from point in time snapshots to the last like demand data roll forward.</line>
				<line>Instructor attributes and instructor teaching preferences are rolled forward together with the instructors. There is a new option to roll forward teaching requests for selected subject area(s)</line>
			</description>
		</item>
	</category>
</release>
</release-history>
