Releases: UniTime/unitime
Releases · UniTime/unitime
UniTime 4.2 build 146 (Beta 3)
Beta3 Release of UniTime 4.2
Release Notes
- See https://goo.gl/4g1XQV for more details.
Instructor Scheduling
Description
- In UniTime 4.2, a new component for automatic assignment of instructors to classes or courses
has been created. - 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). - See https://goo.gl/Zb2aES for more details.
Responsive Design
Description
- All the existing new (GWT-based) pages have been made more mobile friendly.
- This means that page closely follows the width of the window, making all the tables to fit or to
have individual horizontal scroll bars. - 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. - When the page with is 800 pixels or less, there is also a new menu, which shows on top of the
page. - The page takes the full page width (no surrounding blue box), and the page header and footers
are reformatted to fit the screen. - Also, the GWT-based page notifications take the whole bottom part of the page (and disappear
after a few seconds or when clicked on).
Course Timetabling
Solver, Solver Log
- All UniTime solvers are now based on the same common interface and there have been a number of
redundancies removed. - With that, there is also a new GWT-based version of the Solver and the Solver Log page.
- Old solver pages can be enabled by setting unitime.legacy.solver to true.
- The solver can now be stopped during load, save, or student sectioning.
Teaching Responsibilities
- Both instructors and coordinators can have a teaching responsibility defined (optional).
- The teaching responsibilities are academic session independent and can be defined on
Administration > Other > Teaching Responsibilities page. - 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). - With this change, an instructor can be assigned to a class or to an offering (as course
coordinator) multiple times, but with different responsibilities. - 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.
Highlight Class-level Preferences
- Since UniTime 4.1, it is possible to highlight preferences that are set directly on classes with
the unitime.preferences.highlightClassPrefs application property. - 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:- yes (class preferences are to be highlighted)
- no (class preferences are not to be highlighted)
- not set (use the system default, as it is set using unitime.preferences.highlightClassPrefs
application property)
- 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.
Departmental Status
- Added ability to provide a different status for each controlling and external department pair.
- This is to be able to change access to LLR classes for departments that are already done.
Show Class Suffixes
- Added ability to show class external ids (class suffixes) in the course timetabling solver (next
to the class section number). - To enable this, set the application configuration property unitime.solver.showClassSuffixes to
true (defaults to false).
Student Group Scheduling
- Added ability to keep students of a certain student group or curriculum classification together
as much as possible. - For this, there is a new resource on the Timetable grid page (Student Groups), a new criterion
(Student Groups), and two new sectioning algorithms. - Also, student group reservations are now considered during the course timetabling.
- 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. - Student group can also have an expected size now, which can be used by the solver to make up
student group course demands. - There is a new solver parameter General.StudentSectioning that allows the users to choose one of
our student sectioning algorithm.
Instructional Offering Note
- Added a note to the instructional offering, much like the requests / notes to schedule manager
on the classes. - To be edited on the Edit Course Offering page of the controlling course.
- Displayed on the Instructional Offering Detail page and in the Instructional Offerings table.
- 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.
Timetable Grid
- Timetable grid page has been rewritten in GWT, with the following improvements:
- the page is now fully localizable, it is responsive and prints nicely
- the Days and Times selections can be changed using application properties (see
unitime.timeGrid.times and unitime.timeGrid.days properties) - it is now possible to include cross-listed names (by setting unitime.timeGrid.crossList to
true) - when showing solver data, instructors of committed classes can be shown (by setting
unitime.timeGrid.fixInstructors to true) - 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) - when there is no solution loaded or selected, the committed solution(s) of the user are shown
instead
Assigned / Not-Assigned Classes
- Assigned Classes, Not-Assigned Classes pages have been rewritten in GWT, with the following
improvements:- the page is now fully localizable, it is responsive and prints nicely
- it is now possible to include cross-listed names (by setting unitime.timeGrid.crossList to
true) - when there is no solution loaded or selected, the committed solution(s) of the user are shown
instead - multiple subject areas can be selected
- when solver is not loaded in memory, show Class Detail page on click
Student Scheduling
Default Alternative Course Offering
- An ability to provide a (default) alternative course offering (Add/Edit Course Offering page)
has been added. - When a course is requested without any alternatives provided, the default alternative course
offering can be used as an alternative. - Set the application property unitime.sectioning.alternativeCourse to true to enable this feature
(default is false).
Student Groups
- In the batch student scheduling, the ability to keep students of the same student group together
has been greatly improved. - The feature can be enabled by setting the solver parameter solver parameter Load.RequestGroups
to true (defaults to false). - There is also a new solver parameter Load.RequestGroupRegExp, containing a regular expression to
be matched with student group name (when present).
Choice of Instructional Method or Individual Section(s)
- 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). - On the Student Scheduling Assistant, it is now possible to select instructional method (Online,
Hybrid, etc.) and/or the individual section. - The selection can be done through the Course Finder dialog or by typing in additional
information in the course selection text field. - The selection of an instructional method and/or individual sections work as a preference.
- 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. - 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). - Both online and batch solvers do consider these preferences.
Responsive Design
- The Student Scheduling Assistant is now more responsive.
- This means that page closely follows the width of the window, making all the tables to fit or to
have individual horizontal scroll bars. - Also, the component has been changed to better fit a smaller screen.
- 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). - There is now more space for course request preferences (the course request component is much
wider). - It is now possible to reorder the course with its alternatives.
- With this change, there is no longer any limit on how many alternatives a course request can
have.
Student Note
- A note can be set on a student.
- This note is only available and can be edited on the Student Scheduling Dashboard page.
Student Availability
- A student may not be available during a particu...
UniTime 4.2 build 141 (Beta 2)
Beta2 Release of UniTime 4.2
Release Notes
- See https://goo.gl/4g1XQV for more details.
Instructor Scheduling
Description
- In UniTime 4.2, a new component for automatic assignment of instructors to classes or courses
has been created. - 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). - See https://goo.gl/Zb2aES for more details.
Responsive Design
Description
- All the existing new (GWT-based) pages have been made more mobile friendly.
- This means that page closely follows the width of the window, making all the tables to fit or to
have individual horizontal scroll bars. - 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. - When the page with is 800 pixels or less, there is also a new menu, which shows on top of the
page. - The page takes the full page width (no surrounding blue box), and the page header and footers
are reformatted to fit the screen. - Also, the GWT-based page notifications take the whole bottom part of the page (and disappear
after a few seconds or when clicked on).
Course Timetabling
Solver, Solver Log
- All UniTime solvers are now based on the same common interface and there have been a number of
redundancies removed. - With that, there is also a new GWT-based version of the Solver and the Solver Log page.
- Old solver pages can be enabled by setting unitime.legacy.solver to true.
- The solver can now be stopped during load, save, or student sectioning.
Teaching Responsibilities
- Both instructors and coordinators can have a teaching responsibility defined (optional).
- The teaching responsibilities are academic session independent and can be defined on
Administration > Other > Teaching Responsibilities page. - 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). - With this change, an instructor can be assigned to a class or to an offering (as course
coordinator) multiple times, but with different responsibilities. - 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.
Highlight Class-level Preferences
- Since UniTime 4.1, it is possible to highlight preferences that are set directly on classes with
the unitime.preferences.highlightClassPrefs application property. - 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:- yes (class preferences are to be highlighted)
- no (class preferences are not to be highlighted)
- not set (use the system default, as it is set using unitime.preferences.highlightClassPrefs
application property)
- 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.
Departmental Status
- Added ability to provide a different status for each controlling and external department pair.
- This is to be able to change access to LLR classes for departments that are already done.
Show Class Suffixes
- Added ability to show class external ids (class suffixes) in the course timetabling solver (next
to the class section number). - To enable this, set the application configuration property unitime.solver.showClassSuffixes to
true (defaults to false).
Student Group Scheduling
- Added ability to keep students of a certain student group or curriculum classification together
as much as possible. - For this, there is a new resource on the Timetable grid page (Student Groups), a new criterion
(Student Groups), and two new sectioning algorithms. - Also, student group reservations are now considered during the course timetabling.
- 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. - Student group can also have an expected size now, which can be used by the solver to make up
student group course demands. - There is a new solver parameter General.StudentSectioning that allows the users to choose one of
our student sectioning algorithm.
Instructional Offering Note
- Added a note to the instructional offering, much like the requests / notes to schedule manager
on the classes. - To be edited on the Edit Course Offering page of the controlling course.
- Displayed on the Instructional Offering Detail page and in the Instructional Offerings table.
- 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.
Timetable Grid
- Timetable grid page has been rewritten in GWT, with the following improvements:
- the page is now fully localizable, it is responsive and prints nicely
- the Days and Times selections can be changed using application properties (see
unitime.timeGrid.times and unitime.timeGrid.days properties) - it is now possible to include cross-listed names (by setting unitime.timeGrid.crossList to
true) - when showing solver data, instructors of committed classes can be shown (by setting
unitime.timeGrid.fixInstructors to true) - 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) - when there is no solution loaded or selected, the committed solution(s) of the user are shown
instead
Assigned / Not-Assigned Classes
- Assigned Classes, Not-Assigned Classes pages have been rewritten in GWT, with the following
improvements:- the page is now fully localizable, it is responsive and prints nicely
- it is now possible to include cross-listed names (by setting unitime.timeGrid.crossList to
true) - when there is no solution loaded or selected, the committed solution(s) of the user are shown
instead - multiple subject areas can be selected
- when solver is not loaded in memory, show Class Detail page on click
Student Scheduling
Default Alternative Course Offering
- An ability to provide a (default) alternative course offering (Add/Edit Course Offering page)
has been added. - When a course is requested without any alternatives provided, the default alternative course
offering can be used as an alternative. - Set the application property unitime.sectioning.alternativeCourse to true to enable this feature
(default is false).
Student Groups
- In the batch student scheduling, the ability to keep students of the same student group together
has been greatly improved. - The feature can be enabled by setting the solver parameter solver parameter Load.RequestGroups
to true (defaults to false). - There is also a new solver parameter Load.RequestGroupRegExp, containing a regular expression to
be matched with student group name (when present).
Choice of Instructional Method or Individual Section(s)
- 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). - On the Student Scheduling Assistant, it is now possible to select instructional method (Online,
Hybrid, etc.) and/or the individual section. - The selection can be done through the Course Finder dialog or by typing in additional
information in the course selection text field. - The selection of an instructional method and/or individual sections work as a preference.
- 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. - 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). - Both online and batch solvers do consider these preferences.
Responsive Design
- The Student Scheduling Assistant is now more responsive.
- This means that page closely follows the width of the window, making all the tables to fit or to
have individual horizontal scroll bars. - Also, the component has been changed to better fit a smaller screen.
- 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). - There is now more space for course request preferences (the course request component is much
wider). - It is now possible to reorder the course with its alternatives.
- With this change, there is no longer any limit on how many alternatives a course request can
have.
Student Note
- A note can be set on a student.
- This note is only available and can be edited on the Student Scheduling Dashboard page.
Student Availability
- A student may not be available during a particu...
UniTime 4.1 build 231
Course Timetabling
Automatic Hierarchical Constraints
- Improved parsing of the General.AutomaticHierarchicalConstraints parameter.
- If there is a date pattern that is not used or that does not exist, do not skip parsing of the
rest of the parameter. - Check for English (not localized) versions of the preferences and for preference abbreviations.
- Flexible and other constraints (that are not implemented by the GroupConstraint class) are now
allowed as well. - Date patterns containing commas must use quotation marks, e.g., Preferred Same Start "Week
1,3,5".
Automatic Student Constraints
- Added ability to automatically post certain distribution constraints between classes that are
attended by the same students (the given constraints are posted between all classes of
a student). - This is only enabled when deterministic student sectioning is used.
- The list of constraints that are to be posted (together with their preferences) is given by
solver parameter General.AutomaticStudentConstraints.- Contains a comma delimited list of , for example:
- Preferred Max 1 Break, Strongly Preferred At Most 6 Hrs, Required 8h Work-Day
- By default, the given constraints are posted on every set of classes that are attended by at
least 5 students (must be all classes those 5 students are attending).- This can be changed by General.AutomaticStudentConstraints.StudentLimit solver parameter
(defaults to 5).
- This can be changed by General.AutomaticStudentConstraints.StudentLimit solver parameter
Timetable Grid
- Added room tooltip when resource is Room and when hovering over a room name (top left corner of
each table).
Curricula
- Last-Like Course Demands: Consider demand offering (Take Course Demands from Offering parameter
on a course) when showing last-like enrollments and when Curricula Last Like Course Demands are
used. - Multiple Majors: Fixed a null exception thrown when there are last-like or real students
matching multiple majors of a multi-major curriculum on Oracle.
Class Assignment
- Fixed a null exception thrown when there is a student conflict with a class event for a class
that is not assigned.- This can happen when the Class Assignment page is configured not to change the past and
a class is unassigned later in the term.
- This can happen when the Class Assignment page is configured not to change the past and
- Also, do now show student conflicts with canceled classes / meetings.
Time Pattern Icons
- Fixed an issue that was causing a "Coordinate out of bounds!" error when a time pattern icon for
a pattern with more than 7 day combinations was being rendered. - The issue was introduced by a recent change allowing Room Sharing and Instructor Time
Preferences grid to run over Sunday.
Curriculum Course Demands: Precision Fix
- Make sure that the computation of the curriculum-based student course demands does not get stuck
due to the floating point precision inaccuracy.
Instructor Preferences
- Added ability for an instructor to edit his/her preferences, using Courses > Input Data >
Instructor Detail page. - Permissions needed: Instructor Detail and Instructor Preferences, but NEVER HasRole permission
(which should be reserved for manager roles). - Session/department statuses needed: Owner View (to see the detail page) and Owner Edit (for the
ability to edit preferences). - If an instructor exists in two or more departments, there is a Department drop-down on the
Instructor Detail page allowing the user to switch departments.
Student Scheduling
Banner XE Interface
- When dropping a section and the DW action is not available, check for other D% action that can
be used. - Log all the exceptions and Banner messages as warnings. Also log all the exceptions when no
enrollment change is detected.- This fixes the issue of not seeing the "Section not available for student scheduling." in the
log.
- This fixes the issue of not seeing the "Section not available for student scheduling." in the
Course Requests, Student Scheduling Assistant
- Added ability to hide up and down arrows in the Course Requests table.
- This can be done by setting the application property unitime.enrollment.hideCourseRequestArrows
to true (defaults to false).
Event Management
Personal Schedule: Examinations and Course-Related Events
- Fixed an issue introduced by commit 8d552bf: OfferingCoordinator is not mapped error is shown
when looking up a coordinator schedule (role:Coordinator in the event filter).
Event Timetable: Arrange Hours Classes
- Do not show Arrange Hours classes on the week of January 1.
- That is, when a week containing January 1 is selected in the Filter, not All Weeks or All
Matching Weeks.
Examinations
PDF Reports: Period Chart
- Period Chart report: corrected breaking of the report over the week's end.
- This fixes an issue of not printing Monday periods in some cases.
Administration
Session Roll Forward: Fixed bug with Subject Area Roll Forward
- The roll forward has been updated to fail when rolling subject areas forward into a session that
does not have departments that match the departments the subject areas should be attached to.
Data Exchange: Course Offerings and Course Timetable Exports
- Added ability to include individual class meetings in the course offerings and course timetable
exports. - This feature can be enabled by setting the tmtbl.export.classMeetings application property to
true (defaults to false).
HQL Reports: Export HQL
- Improved the ability to download a particular HQL report, using
UniTime/export?output=hql-report.csv URL. - Academic session can be selected using term parameter.
- HQL appearance and admin-only permissions are checked (the user must have the appropriate
permissions to be able to get the report). - Report parameter can contain name of the report (instead of unique id).
- Individual report parameters can be looked up (no need to retrieve unique ids first), for
example: DEPARTMENT=, SUBJECT=, ROOM=, or RoomType=.
User Context: Default Academic Session
- Added ability to shift current date by a given number of days when computing default academic
session. - Application property unitime.session.defaultSessionShiftDays, defaults to 0.
- This could be used, e.g., to start showing users the next academic session two weeks before the
classes / events start.
UniTime 4.2 build 137 (Beta 1)
Beta1 Release of UniTime 4.2
Release Notes
- See https://goo.gl/4g1XQV for more details.
Instructor Scheduling
Description
- In UniTime 4.2, a new component for automatic assignment of instructors to classes or courses
has been created. - 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). - See https://goo.gl/Zb2aES for more details.
Responsive Design
Description
- All the existing new (GWT-based) pages have been made more mobile friendly.
- This means that page closely follows the width of the window, making all the tables to fit or to
have individual horizontal scroll bars. - 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. - When the page with is 800 pixels or less, there is also a new menu, which shows on top of the
page. - The page takes the full page width (no surrounding blue box), and the page header and footers
are reformatted to fit the screen. - Also, the GWT-based page notifications take the whole bottom part of the page (and disappear
after a few seconds or when clicked on).
Course Timetabling
Solver, Solver Log
- All UniTime solvers are now based on the same common interface and there have been a number of
redundancies removed. - With that, there is also a new GWT-based version of the Solver and the Solver Log page.
- Old solver pages can be enabled by setting unitime.legacy.solver to true.
- The solver can now be stopped during load, save, or student sectioning.
Teaching Responsibilities
- Both instructors and coordinators can have a teaching responsibility defined (optional).
- The teaching responsibilities are academic session independent and can be defined on
Administration > Other > Teaching Responsibilities page. - 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). - With this change, an instructor can be assigned to a class or to an offering (as course
coordinator) multiple times, but with different responsibilities. - 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.
Highlight Class-level Preferences
- Since UniTime 4.1, it is possible to highlight preferences that are set directly on classes with
the unitime.preferences.highlightClassPrefs application property. - 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:- yes (class preferences are to be highlighted)
- no (class preferences are not to be highlighted)
- not set (use the system default, as it is set using unitime.preferences.highlightClassPrefs
application property)
- 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.
Departmental Status
- Added ability to provide a different status for each controlling and external department pair.
- This is to be able to change access to LLR classes for departments that are already done.
Show Class Suffixes
- Added ability to show class external ids (class suffixes) in the course timetabling solver (next
to the class section number). - To enable this, set the application configuration property unitime.solver.showClassSuffixes to
true (defaults to false).
Student Group Scheduling
- Added ability to keep students of a certain student group or curriculum classification together
as much as possible. - For this, there is a new resource on the Timetable grid page (Student Groups), a new criterion
(Student Groups), and two new sectioning algorithms. - Also, student group reservations are now considered during the course timetabling.
- 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. - Student group can also have an expected size now, which can be used by the solver to make up
student group course demands. - There is a new solver parameter General.StudentSectioning that allows the users to choose one of
our student sectioning algorithm.
Instructional Offering Note
- Added a note to the instructional offering, much like the requests / notes to schedule manager
on the classes. - To be edited on the Edit Course Offering page of the controlling course.
- Displayed on the Instructional Offering Detail page and in the Instructional Offerings table.
- 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.
Timetable Grid
- Timetable grid page has been rewritten in GWT, with the following improvements:
- the page is now fully localizable, it is responsive and prints nicely
- the Days and Times selections can be changed using application properties (see
unitime.timeGrid.times and unitime.timeGrid.days properties) - it is now possible to include cross-listed names (by setting unitime.timeGrid.crossList to
true) - when showing solver data, instructors of committed classes can be shown (by setting
unitime.timeGrid.fixInstructors to true) - 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) - when there is no solution loaded or selected, the committed solution(s) of the user are shown
instead
Assigned / Not-Assigned Classes
- Assigned Classes, Not-Assigned Classes pages have been rewritten in GWT, with the following
improvements:- the page is now fully localizable, it is responsive and prints nicely
- it is now possible to include cross-listed names (by setting unitime.timeGrid.crossList to
true) - when there is no solution loaded or selected, the committed solution(s) of the user are shown
instead - multiple subject areas can be selected
- when solver is not loaded in memory, show Class Detail page on click
Student Scheduling
Default Alternative Course Offering
- An ability to provide a (default) alternative course offering (Add/Edit Course Offering page)
has been added. - When a course is requested without any alternatives provided, the default alternative course
offering can be used as an alternative. - Set the application property unitime.sectioning.alternativeCourse to true to enable this feature
(default is false).
Student Groups
- In the batch student scheduling, the ability to keep students of the same student group together
has been greatly improved. - The feature can be enabled by setting the solver parameter solver parameter Load.RequestGroups
to true (defaults to false). - There is also a new solver parameter Load.RequestGroupRegExp, containing a regular expression to
be matched with student group name (when present).
Choice of Instructional Method or Individual Section(s)
- 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). - On the Student Scheduling Assistant, it is now possible to select instructional method (Online,
Hybrid, etc.) and/or the individual section. - The selection can be done through the Course Finder dialog or by typing in additional
information in the course selection text field. - The selection of an instructional method and/or individual sections work as a preference.
- 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. - 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). - Both online and batch solvers do consider these preferences.
Responsive Design
- The Student Scheduling Assistant is now more responsive.
- This means that page closely follows the width of the window, making all the tables to fit or to
have individual horizontal scroll bars. - Also, the component has been changed to better fit a smaller screen.
- 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). - There is now more space for course request preferences (the course request component is much
wider). - It is now possible to reorder the course with its alternatives.
- With this change, there is no longer any limit on how many alternatives a course request can
have.
Student Note
- A note can be set on a student.
- This note is only available and can be edited on the Student Scheduling Dashboard page.
Student Availability
- A student may not be available during a particu...
UniTime 4.1 build 218
Course Timetabling
Class: Change Managing Department
- Do not delete the related class event if committed assignment is not deleted.
- This fixes an issue of changing a controlling course to another subject area that has the same
solver group (the related class event was incorrectly deleted).
- This fixes an issue of changing a controlling course to another subject area that has the same
- When a class event is being deleted, do not delete past meetings when
tmtbl.classAssign.changePastMeetings is false. - Update the class event name when the controlling course of the class has changed.
Back-to-Back Distribution Preference
- Avoid issues (especially ArrayIndexOutOfBoundsException) when classes that are in a back-to-back
constraint can partially overlap in time.
Max N Hours A Day Distribution Preference
- Conflict checking for the Max N Hours A Day group constraint corrected: do not return a constant
variable (i.e., a committed class of some other problem) as a conflict. - Also, return the evaluated placement as a conflict when there is not enough time on the day for
the class without unassigning a constant variable. - Fixed an issue in conflict checking of Max N Hours A Day group constraint to prevent the
constraint from returning null conflicts when there are too many committed classes on a day.
Timetable Grid: Subject Area Resource
- Added Subject Area as a Resource (showing all classes of a particular subject area in one
table). - When Department is selected as a Resource, show classes by (controlling) department even when
there is no departmental spread constraint created (solver mode).
Instructional Offering, Classes: Highlight Class Preferences
- Added ability to set whether preferences that are set directly on a class are to be highlighted
using user settings. - There is a new settings (named highlightClassPrefs) with the following values:
- yes ... class preferences are to be highlighted
- no ... class preferences are not to be highlighted
- not set ... use the system default, as it is set using unitime.preferences.highlightClassPrefs
application property
Room Sharing / Instructor Time Preferences Grid
- Room Sharing / Instructor Time Preferences grid changed to allow for the week to run over
Sunday. - For example unitime.room.sharingMode5=Su-Th 8am-9pm|6|3|96|252|6 would create a mode going from
Sunday till Thursday, in half-hours between 8am and 9pm.
Google Maps API Keys
- Google Maps Static API (used on Rooms, Room Detail, and in the mouseover popups):
- API key can be provided in the unitime.minimap.apikey configuration property.
- API secret for digital signatures can be provided in the unitime.minimap.secret configuration
property. - See https://developers.google.com/maps/documentation/static-maps/get-api-key for more details.
- Google Maps Standard API (used on Room Edit and Building Edit to enter/show coordinates):
- API key can be provided in the unitime.coordinates.googlemap.apikey configuration property.
- See https://developers.google.com/maps/documentation/javascript/get-api-key for more details.
- Also, use the Google Maps v3 API (maps.googleapis.com) instead of the Google Maps v2 API
(maps.google.com).
Instuctional Offerings, Classes, Examinations: Back
- Encode the entered course number to UTF-8 for the navigation / back.
- This fixes an issue with URL encoding when course number contains non-ASCII characters.
Add/Edit Curriculum
- Shared Students Tooltip: Computation of projected students that are shared between two or more
courses corrected.
Event Management
Event Timetable: Arrange Hours Classes
- Added ability to show Event Detail page for Arrange Hours classes (classes that are not assigned
in time and hence have no ClassEvent associated with). - This includes the Enrollments table (showing students enrolled in the class).
- The Event Detail page for an arrange hours class is only available to users with Event Detail
Arrange Hour Class permission. - The related permission check requires for the user to either also have the Class Detail
permission for the class in question, or that the user is listed among the course coordinators
or instructors of the class.
Events, Room Availability: Display Room Event Note
- Display the room note on the top of the room grid on the Events and Room Availability pages
(when showing a time grid for a single room). - Use white-space:pre-wrap for the room note (follow \n, but wrap the long lines if needed).
Events: Display of Class Events
- It is now possible to restrict departmental managers to only see class events of their
department(s) until the schedule is published. That is until the session status includes no-role
class schedule (e.g., Timetable Published). - Set unitime.events.hasRole.checkSessionStatusForClasses to true to enable this restriction
(default is false, i.e., work as before).
Personal Schedule
- Instructor: Added an option to include indirect examinations (that is cases where an instructor
is assigned to a class for which the exam is held).- To enable this, set unitime.events.exams.considerClassInstructors to true.
- If set to false, which is also the default, only exams that have the person assigned as
instructor would show.
- When showing an exam (or a course-related event) that is set on multiple classes, only show
classes that relates to the student (or instructor).- Show all owners when the person is also the instructor associated directly with the exam or
the contact of the course-related event. - Show all owners that the person is coordinating (if any).
- Show all owners when the person is also the instructor associated directly with the exam or
- Multiple Rooms Warning: The following warning has been added at the bottom of the page when
a student is looking at a personal schedule and there is at least one class or exam with two
meetings at the same date and time with different rooms (e.g., an exam is placed in two or more
rooms):- When multiple rooms are listed, please consult your instructor regarding your class or
examination room location.
- When multiple rooms are listed, please consult your instructor regarding your class or
Student Scheduling
Request Groups (Batch)
- Improved ability to keep students of the same request group together by shuffling students of
a request group that are spread over multiple sections into a single section or into a fewer
number of sections.
Reservations
- When enumerating possible enrollments for a course request, do not skip enrollments without
a reservation if there is a matching reservation that is not marked as must be used. - This change fixes an issue related to the server's capability to keep the student's current
enrollment by creating a dummy reservation for it.- A student was not able to move into a different section in certain cases.
Online Student Scheduling Reports
- Make sure each student is present only once in the student scheduling model that is used to
generate the online scheduling report. - This fixes an issue with showing wrong numbers on the Time & Availability Conflicts report.
Student Course Requests
- Student Course Requests page now checks for student eligibility to register.
- This means that student status can be used to determine whether the wait-listing is enabled, if
a student is allowed to make any changes, etc.
Online Student Scheduling Dashboard
- Allow student status change during assistant mode and during registration (when Student Course
Requests page can be used). - Classes for student dialog: Include Enrolled column containing student class enrollment date
when the student is enrolled and course request date when not enrolled.
Student Sectioning Solver Reports, Online Student Scheduling Reports
- Not-Assigned Course Requests: Added a new report showing individual course requests that are
left unassigned. - Added ability to show all classes of an individual student when a row containing student unique
id (in the first column named __Student) is clicked. - Export CSV: Do not export the first column when the column name starts with __ (contains unique
id of a class, offering, exam, student, etc.).
Student Scheduling Assistnat, Student Scheduling Dashboard, Enrollments tables
- Show room mouse-over tooltips on various pages, including
- Student Scheduling Assistant: Class Schedule tab
- Course Finder: List of Classes tab
- Class, Instructional Offering, Examination, Event, Instructor: Enrollments table
- Student Scheduling Dashboard: Enrollments tab, Enrollments of student table
API
Instructors API
- Added an instructors API that returns a list of instructors for the given department or academic
session. - Examples
- GET UniTime/api/instructors?id=<DEP_ID>
- GET UniTime/api/instructors?term=&code=<DEPT_CODE>
- GET UniTime/api/instructors?term=
- Permission Api Retrieve Instructors is required.
Student Groups API
- Added a student groups API that returns a list of student groups for the given academic session.
- Example: GET UniTime/api/student-groups?term=
- Permission Api Retrieve Student Groups is required.
Curricula API
- Added a curricula API that returns a list of curricula for the given academic session.
- Example: GET UniTime/api/curricula?term=
- Permission Api Retrieve Curricula is needed.
- Same filter parameters as on the Curricula page can be used to filter the results (with c:
prefix), examples:- GET UniTime/api/curricula?term&c:department=0101&c:area=A
- GET UniTime/api/curricula?term&c:text=A/M1+or+A/M2
- To retrieve more details about a particular curriculum, use:
- GET UniTime/api/curricula?id=<CURR_ID> (details about a particular curriculum)
- GET UniTime/api/curricula?term&c:text=A/M1+or+A/M2&details=1 (return more information
for all matching curricula)
Administration
Edit Roles: Fixed Delete
- Edit Roles (bulk edit page for user roles) did not delete roles that were marked for deletion.
Academic Areas, Classifications, Majors: Delete
- Do n...
UniTime 4.1 build 197
Course Timetabling
Reservations: Show Class Suffixes
- Added ability to show class suffixes (external ids) on the Reservations page and in the
Reservations table. - Enable by setting unitime.reservations.showClassSuffixes to true (defaults to false).
Class Duration Model
- Avoid NullPointerException when there is no date pattern (i.e., there is no default date pattern
defined for the term).
Edit Course Offering
- Fixed an issue that was causing a cross-listed offering to loose all coordinators when a not
controlling course was edited.
Student Scheduling
Distributions
- Linked Classes: Fixed computation of the Linked Classes constraint when it contains classes of
two or more configurations of a course. - Add / Edit / Delete Distribution Preference: Notify the online student scheduling about the
change, if needed.
Reservations (Online)
- Reservation Limit: Do not cap the reservation limit (by the size of its classes /
configurations) when the reservation allows for over the limit assignments. - Guess Reservation: Do not consider reservation limit when the reservation must be used.
- Improve server's capability to keep the student's current enrollment (e.g., when there is a new
reservation which the already enrolled students do not follow).- If there are reservations: allow user to keep the current enrollment by providing a dummy
reservation for it.
- If there are reservations: allow user to keep the current enrollment by providing a dummy
Request Groups (Batch)
- Added ability to filter which student groups will be used as request groups by the solver.
- Students of a "request group" are to be kept together as much as possible.
- Solver parameter Load.RequestGroupRegExp, containing a regular expression to be matched with
student group name (when present).
Examination Timetabling
Examination Reports: Unavailability Conflicts
- When counting conflicts from the database, do not create conflicts with no students.
- This fixes the Direct Student Conflicts report (Examination Reports page).
- Zero conflicts lines shown when the report is computed from the database and the "Show
classes/courses" toggle is unchecked.
- Zero conflicts lines shown when the report is computed from the database and the "Show
Examination Reports: Room Splits
- Show all the assigned rooms of an exam that is split between more than four rooms.
- With this change 3rd, 4th, 5th, ... room columns are added as needed (the report is no longer
limited to four rooms).
Required Room Group of Strongly Discouraged Rooms
- Database Load: If an exam is requiring a room group that contains strongly discouraged rooms,
allow the exam to use these rooms even if there is no direct preference on such rooms on the
exam.
Event Management
Email Notifications
- Event room messages are now included in the confirmation email.
Time Selector
- Fixed an issue showing 12:00 am instead of midnight in the end time of an interval selection
(e.g., when adding an event).
Room Management
Permissions
- Events: Fixed a JavaScript exception thrown when the user can edit event availability (has Room
Edit Event Availability permission) but cannot edit event department (does not have Room Edit
Change Event Properties permission). - Room Sharing: Do not allow a departmental manager to remove a department from the room sharing
table that does not belong to him/her (if the room is not being controlled by a department of
the manager). - Show room related properties (controlling department, room sharing, ignore distance conflicts,
etc.):- A user that is allowed to edit course related room properties does not need to have Classes or
Instructional Offerings permission. - That is, a user with RoomEditChangeRoomProperties, RoomEditChangeControll,
RoomDetailAvailability, or RoomEditAvailability permission can also see course related room
properties.
- A user that is allowed to edit course related room properties does not need to have Classes or
- Show examination related properties (examination capacity, examination problems, period
preferences):- A user that is allowed to edit examination related room properties does not need to have
Examinations permission. - That is, a user with RoomEditChangeExaminationStatus, or RoomDetailPeriodPreferences
permission can also see examination related room properties.
- A user that is allowed to edit examination related room properties does not need to have
- Show event related properties (event department, status, note, break time, event availability):
- a user that is allowed to edit event related room properties does not need to have Events
permission. - That is, a user with RoomEditChangeEventProperties, or RoomDetailEventAvailability, or
RoomEditEventAvailability cam also see event related room properties.
- a user that is allowed to edit event related room properties does not need to have Events
Room Pictures
- Rooms, Room Detail: added a mouse-over which shows a bigger picture (limited to 800 x 600
pixels). - Rooms API: fixed an issue with some pictures not being uploaded / deleted when the API is called
multiple times in a sequence for a particular room.
Other
Security: Possible SQL Injection Fixed
- Following features were corrected:
- Instructional Offerings: Search, Worksheet PDF (course number)
- Instructors: Manage Instructors List (department code)
- Buildings: Update Rooms (room classifications)
API: Buildings
- Added buildings API that can
- return list of buildings for an academic session (GET api/buildings?term= or GET
api/buildings?sessionId=) - creature or update a building (using POST request with the building as a payload)
- delete a building (DELETE api/buildings?id= or DELETE
api/buildings?term=&externalId= or DELETE
api/buildings?term=&building=)
- return list of buildings for an academic session (GET api/buildings?term= or GET
- Permissions:
- ApiRetrieveRooms to retrieve list of buildings (GET request)
- ApiRoomEdit to create, update, and delete a room, together with the appropriate BuildingAdd,
BuildingEdit and BuildingDelete permission (POST and DELETE requests)
UniTime 4.1 build 186
Event Management
Resource Lookup (Personal Timetable)
- Lookup people only be external id (People Lookup is configured to only return people with an
external id anyway). - This fixes an issue on the Personal Timetable: no schedule is displayed due to an instructor
record with matching email or career account but no external id.
Display of Arrange Hours Classes
- Improved event display of arranged hours classes:
- Only display required rooms as assigned room (Location column).
- Include effective date pattern in the display (Date column).
- Arrange Hours message moved to Published Time column when Date column shows the date pattern.
Student Scheduling
Course Finder: Details
- Default Course Detail Provider: added ability to include course catalog link in the course
details.
Scheduling Assistant: Display of Arrange Hours Classes
- Improved display of arranged hours classes:
- Include required room(s) as assigned room(s) (Room column).
- Include effective date pattern as assigned date (Date column).
Scheduling Assistant: Alternatives
- To avoid confusion, show No Dates (in the Date column) and/or No Room (in the Room column) for
a class with no date pattern and/or no room respectively. - If there are no alternatives, make sure that each course is mentioned in the conflict message
only once.
Student Scheduling: Distributions
- Do not skip same time sections when there is a Linked Classes constraint involved or when the
section is involved in an Ignore Student Conflicts constraint. - Linked Classes: Added ability to force students to use the linked classes when they are
requesting both courses.- There is a new solver parameter for this, named LinkedClasses.mustBeUsed, defaults to false.
- Batch Scheduling: In the database load, assign students only after the distribution constraints
has been loaded in.
Course Timetabling
Curricula Last-Like Course Demands, Curricula Requests Course Demands
- Fixed a null exception when there are made up students (and include other students is enabled).
Instructional Offering Detail: Permissions
- Class Delete No Enrollment Check split into the following permissions:
- Class Delete No Enrollment Check (only applies to classes -- allows to delete a class which
has students enrolled in it). - Offering Make Not Offered No Enrollment Check (allows to make an offering not offered when
there are students enrolled in it). - Course Offering Delete From Cross List No Enrollment Check (allows to remove a course from
a cross-list when it has students enrolled in it).
- Class Delete No Enrollment Check (only applies to classes -- allows to delete a class which
Course Offering: Show/Edit External Id
- Instructional Offering Detail: Added ability to show external ids of a course.
- Course external ids are shown when unitime.course.showExternalIds is set to true (defaults to
false).
- Course external ids are shown when unitime.course.showExternalIds is set to true (defaults to
- Add/Edit Course Offering: Added ability to edit external id of a course.
- Course external id is editable when unitime.course.editExternalIds is set to true (defaults to
false).
- Course external id is editable when unitime.course.editExternalIds is set to true (defaults to
Course Timetabling: N Hour Work Day
- Corrected the constraint check in the N Hour Work Day constraint.
Examination Timetabling
Examination Reports
- Room Splits: fixed PDF/CSV version of the Room Splits report.
- If an exam is split into 4 rooms, 3rd room is printed two times (as 3rd and 4th room) instead
of printing the 4th room.
- If an exam is split into 4 rooms, 3rd room is printed two times (as 3rd and 4th room) instead
Examination Rooms
- Fixed a JavaScript exception thrown when trying to edit an examination room for a problem with
no periods. - Do not show period preferences table for an examination problem with no periods.
- Make sure user cannot change examination types that are not visible to him/her.
Room Filter
- When showing examination rooms, make sure that rooms which have no room sharing (no room
departments) are also present in the list.
Other
Data Exchange: Academic Session Restore
- Fixed an IndexOutOfBoundsException when Class_.managingDept is not set in the imported file.
- Fixed an NullPointerException when Class_.managingDept is not set in the imported file.
UniTime Dialog Box: Enter To Submit
- When ENTER is clicked, stop propagation of the event before executing the submit handler.
- This is to prevent the confirmation to be clicked two times when ENTER is pressed and focus is
on the Yes button.
Application Configuration: Date Pattern Format
- Corrected extended variant of the unitime.pattern.format.useDates property (using extended
instead of external).
UniTime 4.1 build 175
Event Management
Events: List of Meetings
- Make sure all the lines of event name, section, and title are always displayed (e.g., when
sorting by date and looking at a cross-listed class). - Split instructors over multiple meeting lines (just like event name, section, title and note).
iCalendar Export
- Added ability to avoid setting the ORGANIZER of an event (using the ATTENDEE with the ORGANIZER
role instead).- This was done in an attempt to avoid receiving unsolicited accept/decline messages while
keeping the instructor (or the main contact) of the event visible. - This feature is driven by the application property unitime.events.ics_set_organizer, which
defaults to true (the existing behavior).
- This was done in an attempt to avoid receiving unsolicited accept/decline messages while
Event Detail: Examination Conflicts
- Enrollments table of an examination event: include more than two exams on a day and back-to-back
student conflicts.
Student Scheduling
Online Student Scheduling Dashboard during registration
- Fixed the ability to use the Online Student Scheduling Dashboard during student registration
phase (null exception when executing an action).- The issue was created in commit e486db4, with the ability to provide a custom action factory.
Class Detail: Enrollments
- Fixed a Null exception preventing the Enrollment table from showing on a class.
- The issue was introduced by commit 811bade, with the ability to exclude certain departments
from student scheduling.
- The issue was introduced by commit 811bade, with the ability to exclude certain departments
Rooms
Add/Edit Room: Data Validation
- Room must have at least one department check disabled.
Edit Room: Room X does not exist
- Corrected returned session information when the academic session is changed on the Rooms page
(event management).- When user did not have a matching role in the selected academic session, wrong session
information was returned. - This caused some issues when the user attempted to edit the room in such a case.
- When user did not have a matching role in the selected academic session, wrong session
Rooms: Sort
- Corrected sort by a number when there are Nulls in the table.
Rooms: All Departments
- When a room is being shared among all departments (and there are more than three departments),
display All instead of listing all the departments in the Departments column.
Room Features: Create/Update Room Feature
- Fixed an issue causing the page not to work when there are no room fetaure types defined in the
system.
Rooms: Permission Fixes
- Rooms, Room Detail: do not check for Events permission.
- This fixes the "Failed to load rooms: Access denied for Events" exception when the user is not
allowed to see the events for the selected term.
- This fixes the "Failed to load rooms: Access denied for Events" exception when the user is not
- Room Detail: show event properties after a room update if the uses has the
RoomEditChangeEventProperties permission (when Events permission is not given).
Localization
Class Detail: Instructors
- The small table with instructors now has localized headers.
Events
- Provided a separate label for person's name (as opposed to a room name or an event name).
- A few tweaks in the Czech translations.
Course Timetabling
Solution Commit / Uncommit
- When a solution is committed or uncommitted, force solution refresh along the cluster.
Other
Roll Forward: Room Preferences on Departments
- Neutral preference check corrected: do not roll or create Neutral room preferences on
departments.
Roll Forward: Examination Configuration
- Non-university location lookup: only lookup the location by its permanent id and session id
(just like for the ordinary rooms).- This fixes the issue of rolling forward examination room information when the non-university
location does not have a controlling department.
- This fixes the issue of rolling forward examination room information when the non-university
Anonymous User Context
- UserContext.setProperty: do not set user data for an anonymous user.
- This fixes the "ORA-01400: cannot insert NULL into (USER_DATA.EXTERNAL_UID)" exception when
using an ICS feed that was created for an unauthenticated user.
- This fixes the "ORA-01400: cannot insert NULL into (USER_DATA.EXTERNAL_UID)" exception when
Data Exchange: HQL Reports
- Changed the exported report XML to comply with the Reports.dtd (flag elements are directly under
report element). - Changed the importer to import both versions of the XML (flag elements are under report or under
flags element).
Edit Date Pattern: Navigation
- Added Previous and Next buttons on the Edit Date Pattern page.
Edit Time Pattern: Navigation
- Added Previous and Next buttons on the Edit Time Pattern page.
UniTime 4.1 build 164
UniTime 4.1 Release Notes
UniTime 4.1 Release Notes: https://goo.gl/uERUxR
UniTime 4.1 RESTful APIs: https://goo.gl/ikdOix
Course Timetabling
Class Duration Types
- Added ability to define different ways how class duration is entered and used in the system (to
extend the former Minutes per Week selection). - There is a new page (Administration > Other > Class Duration Types), where the class duration
types can be managed.- Permission ClassDurationTypes is needed to access the page, ClassDurationTypeEdit is needed to
make changes.
- Permission ClassDurationTypes is needed to access the page, ClassDurationTypeEdit is needed to
- Default duration type can be defined on an academic session, it can be overridden on the
instructional offering configuration level (Instructional Offering Configuration page).- Name of the default duration type is used in the column headers (Classes, Instructional
Offerings), abbreviations are used to suffix durations that are using a non-default duration
type.
- Name of the default duration type is used in the column headers (Classes, Instructional
- Following class duration types have been implemented:
- Minutes per Week (default): this is the existing behavior (minutes per week == number of
meetings in a week x minutes per meeting) - Average Weekly Minutes: average number of minutes a class takes during a week (weekly minutes
= number of meetings x minutes per meeting x number of weeks of the date pattern / number of
weeks in the term)- Parameter: number of weeks in the term (defaults to the number of weeks of the default date
pattern)
- Parameter: number of weeks in the term (defaults to the number of weeks of the default date
- Semester Minutes: number of minutes in the semester (semester minutes == number of meetings x
minutes per meeting x number of weeks of the date pattern) - Semester Hours: number of hours in the semester (semester hours == number of meetings x
minutes per meeting x number of weeks of the date pattern / minutes in an hour)- Parameter: number of minutes in an hour (defaults to 50); an hour is meant as a lesson or
"hour of instruction"
- Parameter: number of minutes in an hour (defaults to 50); an hour is meant as a lesson or
- Meetings Minutes: number of minutes of all the meetings, excluding vacations (meeting minutes
== number of meetings based on the date pattern x minutes per meeting)- Parameters: allowed variation of the meeting minutes, expressed as lower and upper bound
(defaults to 0.95,1.10 -- meaning a class can have 5% less time, combinations with 10% more
time will be also considered). - If the number of meetings based on the date pattern exceeds the desired number of meeting
minutes, only meetings covering the given number of meeting minutes are created.
- Parameters: allowed variation of the meeting minutes, expressed as lower and upper bound
- Meeting Hours: just like meeting minutes, but with hours (meeting hours == number of meetings
based on the date pattern x minutes per meeting / minutes in an hour)- Parameters: number of minutes in an hour and the allowed variation of the meeting minutes
(defaults to 50,0.95,1.10 -- 50 minutes in an hour, 5% less time allowed, combinations with
up to 10% excess time are considered).
- Parameters: number of minutes in an hour and the allowed variation of the meeting minutes
- Minutes per Week (default): this is the existing behavior (minutes per week == number of
- It is possible to hide class duration types that are not to be used by the users.
- If only one type is visible, there is no selection of the class duration type on the
Instructional Offering Configuration page.
- If only one type is visible, there is no selection of the class duration type on the
Cancelled Classes
- Added ability to cancel a class.
- Multiple Class Setup page: class with enrollments cannot be deleted, but it could be cancelled
instead. - Cancelled classes retain their committed assignment, but the appropriate class event is
cancelled. - Cancelled classes are not loaded into the course timetabling solver.
- Cancelled classes cannot be edited or re-assigned and they do not block the room or instructor.
- When a cancelled class is reopened, the appropriate event is also re-approved.
- This could cause conflicts, that have to be manually resolved.
- In student scheduling, cancelled classes are avoided (no valid enrollment can contain
a cancelled class). - In online student scheduling, it is possible to keep existing students in cancelled classes when
solver configuration parameter named Enrollment.CanKeepCancelledClass is set to true (defaults
to false). - New permissions:
- Class Delete: ability to delete a class (class cannot be deleted when there is a committed
solution and at least one student enrolled in the class) - Class Delete No Enrollment Check: this permission overrides the enrollment check from the
Class Delete permission (not given to any role by default) - Class Cancel: ability to cancel a class (there must be a committed solution)
- The Class Delete and Class Cancel permissions are by default given to all roles that have
Multiple Class Setup Class and / or Class Edit permissions.
- Class Delete: ability to delete a class (class cannot be deleted when there is a committed
- Added a new permission (named Class Delete No Enrollment Check) that overrides the enrollment
check from the Class Delete permission.- No role is given this permission by default.
- Make Not-Offered: It is allowed to make an offering not-offered only when there are no students
enrolled, there is no committed solution, or the user has the Class Delete No Enrollment Check
permission. - Cross Lists: it is allowed to remove a cross-listed course from an offering only when there are
no students enrolled, there is no committed solution, or the user has the Class Delete No
Enrollment Check permission.
Conflicting Classes
- Class Detail: Display conflicting classes.
- There is a new table called Conflicting Classes, just below the Timetable section.
- The table is only visible when the class is conflicting with some other class (or classes).
- The same checking as on the Class Assignment page is used.
- Instructional Offering Detail: Highlight conflicting classes with a light red background.
- Conflicting classes are listed in the tool-tip (more details are provided on the Class Detail
page, see above).
- Conflicting classes are listed in the tool-tip (more details are provided on the Class Detail
- Conflict checking: avoid showing conflicts between classes that can overlap because of the Can
Share Room or the Meet Together distribution.
Instructional Methods
- Added instructional methods lookup table. Each method has a reference and a label.
- Example instructional methods: Online, Hybrid, or Face-to-Face.
- Instructional offering configuration can have an instructional method set.
- If set, instructional method appears on various pages, including the Scheduling Assistant and
Events. - It is usually included in the Type column, next to the instructional type, e.g., Lecture
(Online).
Multiple-Major Curricula
- A curriculum has a new property named multiple majors (boolean, default to false).
- If a curriculum is marked as multiple-major: a student meets the curriculum only when he/she has
all the selected majors (not one of the selected). - A multiple-major curriculum will inherit course projections from curricula that have no or one
of the matching majors. - There can be multiple curricula that get combined together to form a multiple-major curriculum.
- If a course is on several curricula, the highest percent share (of the particular
classification) will be used. - These shares can be overridden on the multiple-major curriculum, but no courses can be deleted
(course projection must be set to zero instead). - The parent (single or no major curricula) can have zero requested students, only acting as
templates for the multiple-major curricula. - If there is no multiple-major curriculum, everything works like before.
Reservations
- Remember the last sort in the reservation cookie.
- Added Previous / Next buttons (Edit Reservation).
- Added confirmation message when deleting a reservation (Edit Reservation).
Rooms
Overview
- The room pages have been completely rewritten using the Google Web Toolkit.
- The new pages are localizable, they are using the same Room Filter as is used in the event
management, and they are allowing a change to propagate over to the future academic sessions as
well. - It is also possible for users that are not managers in UniTime (e.g., instructors) and/or that
have no relation to a particular department (e.g., students) to be allowed to use the new rooms
pages. - When accessed from the Events menu, the Rooms, Room Groups and Room Features pages contain the
selection of an academic session, just like the Events page. - It is possible to use the old pages by setting the application property unitime.legacy.rooms to
true (defaults to false).
Rooms
- The Rooms page now contains a Room Filter and a table with many features.
- The table of rooms can be sorted by a given column, can show pretty much any room property, and
it can be exported to PDF or CSV.
Add/Edit Room
- Add Room and Edit Room page now contains all the functionality of the various edit pages that
were accessible from the Room Detail page. - Moreover, it is now possible to make the update the room in the (selected) future academic
sessions as well. - Only selected groups of properties can be updated in a particular future session.
Edit Room Departments
- The page can be used to assign multiple rooms to a particular department or examination
problem). - The page is only accessible when a department or an examination problem is selected in the Room
Filter. - The page is now using the same table of rooms as the Rooms page and it is populated by all the
rooms matching the Room Filter (except the selected department / examination problem). - Rooms not matching the Room Filter are left unchanged.
Room Groups / Features
- The Room Groups and Room Features pages also use the Room Filter to list rooms (and matching
room features and groups). - The Add and Edit pages are also using the same table as on the Rooms page with the list of rooms
populated by all the rooms matching the Room Filter. - Rooms not matching the Room Filter are left unchanged.
- When creating / updating a room group or feature, it is possible to select one or more future
academic sessions that would be updated as well.- Besides of the properties of the group (or feature) like name, abbreviation department...
UniTime 4.1 build 157 (RC 3)
Course Timetabling
Class Duration Types
- Added ability to define different ways how class duration is entered and used in the system (to
extend the formal Minutes per Week selection). - There is a new page (Administration > Other > Class Duration Types), where the class duration
types can be managed.- Permission ClassDurationTypes is needed to access the page, ClassDurationTypeEdit is needed to
make changes.
- Permission ClassDurationTypes is needed to access the page, ClassDurationTypeEdit is needed to
- Default duration type can be defined on an academic session, it can be overridden on the
instructional offering configuration level (Instructional Offering Configuration page).- Name of the default duration type is used in the column headers (Classes, Instructional
Offerings), abbreviation is used to suffix durations that are using a non-default duration
type.
- Name of the default duration type is used in the column headers (Classes, Instructional
- Following class duration types have been implemented:
- Minutes per Week (default): this is the existing behavior (minutes per week == number of
meetings x minutes per meeting) - Average Weekly Minutes: average number of minutes a class takes during a week (weekly minutes
= number of meetings x minutes per meeting x number of weeks of the data pattern / number of
weeks in the term)- Parameter: number of weeks in the term (defaults to the number of weeks of the default date
pattern)
- Parameter: number of weeks in the term (defaults to the number of weeks of the default date
- Semester Minutes: number of minutes in the semester (semester minutes == number of meetings x
minutes per meeting x number of weeks of the data pattern) - Semester Hours: number of hours in the semester (semester hours == number of meetings x
minutes per meeting x number of weeks of the data pattern / minutes in an hour)- Parameter: number of minutes in an hour (defaults to 50)
- Meetings Minutes: number of minutes of all the meetings, excluding vacations (meeting minutes
== number of meetings based on the date pattern x minutes per meeting)- Parameters: allowed variation of the meeting minutes, expressed as lower and upper bound
(defaults to 0.95,1.10 -- meaning a class can have 5% less time, combinations with 10% more
time will be also considered). - If the number of meetings based on the date pattern exceeds the desired number of meeting
minutes, only meetings covering the given number of meeting minutes are created.
- Parameters: allowed variation of the meeting minutes, expressed as lower and upper bound
- Meeting Hours: just like meeting minutes, but with hours (semester hours == number of meetings
based on the date pattern x minutes per meeting / minutes in an hour)- Parameters: number of minutes in an hour and the allowed variation of the meeting minutes
(defaults to 50,0.95,1.10 -- 50 minutes in an hour, 5% less time allowed, combinations with
up to 10% excess time are considered).
- Parameters: number of minutes in an hour and the allowed variation of the meeting minutes
- Minutes per Week (default): this is the existing behavior (minutes per week == number of
- It is possible to hide class duration types that are not to be used by the users.
- If only one type is visible, there is no selection of the class duration type on the
Instructional Offering Configuration page.
- If only one type is visible, there is no selection of the class duration type on the
Cancelled Classes
- Added ability to cancel a class.
- Multiple Class Setup page: class with enrollments cannot be deleted, but it could be cancelled
instead. - Cancelled classes retain their committed assignment, but the appropriate class event is
cancelled. - Cancelled classes are not loaded into the course timetabling solver.
- Cancelled classes cannot be edited or re-assigned and they do not block the room or instructor.
- When a cancelled classes is reopened, the appropriate event is also re-approved.
- This could cause conflicts, that have to be manually resolved.
- In student scheduling, cancelled classes are avoided (no valid enrollment can contain
a cancelled class). - In online student scheduling, it is possible to keep existing students in cancelled classes when
solver configuration parameter named Enrollment.CanKeepCancelledClass is set to true (defaults
to false). - New permissions:
- Class Delete: ability to delete a class (class cannot be deleted when there is a committed
solution and at least one student enrolled in the class) - Class Delete No Enrollment Check: this permission overrides the enrollment check from the
Class Delete permission (not given to any role by default) - Class Cancel: ability to cancel a class (there must be a committed solution)
- The Class Delete and Class Cancel permissions are by default given to all roles that have
Multiple Class Setup Class and / or Class Edit permissions.
- Class Delete: ability to delete a class (class cannot be deleted when there is a committed
- Added a new permission (named Class Delete No Enrollment Check) that overrides the enrollment
check from the Class Delete permission.- No role is given this permission by default.
- Make Not-Offered: It is allowed to make an offering not-offered only when there are no students
enrolled, there is no committed solution, or the user has the Class Delete No Enrollment Check
permission. - Cross Lists: it is allowed to remove a cross-listed course from an offering only when there are
no students enrolled, there is no committed solution, or the user has the Class Delete No
Enrollment Check permission.
Conflicting Classes
- Class Detail: Display conflicting classes.
- There is a new table called Conflicting Classes, just below the Timetable section.
- The table is only visible when the class is conflicting with some other class (or classes).
- The same checking as on the Class Assignment page is used.
- Instructional Offering Detail: Highlight conflicting classes with light red background.
- Conflicting classes are listed in the tool-tip (more details are provided on the Class Detail
page, see above).
- Conflicting classes are listed in the tool-tip (more details are provided on the Class Detail
- Conflict checking: avoid showing conflicts between classes that can overlap because of the Can
Share Room or the Meet Together distribution.
Instructional Methods
- Added instructional methods lookup table. Each method has a reference and a label.
- Example instructional methods: Online, Hybrid, or Face-to-Face.
- Instructional offering configuration can have an instructional method set.
- If set, instructional method appear on various pages, including the Scheduling Assistant and
Events. - It is usually included in the Type column, next to the instructional type, e.g., Lecture
(Online).
Multiple-Major Curricula
- A curriculum has a new property named multiple majors (boolean, default to false).
- If a curriculum is marked as multiple-major: a student meets the curriculum only when he/she has
all the selected majors (not one of the selected). - A multiple-major curriculum will inherit course projections from curricula that have no or one
of the matching majors. - There can be multiple curricula that get combined together to form a multiple-major curriculum.
- If a course is on several curricula, the highest percent share (of the particular
classification) will be used. - These shares can be overridden on the multiple-major curriculum, but no courses can be deleted
(course projection must be set to zero instead). - The parent (single or no major curricula) can have zero requested students, only acting as
templates for the multiple-major curricula. - If there is no multiple-major curriculum, everything works like before.
Reservations
- Remember last sort in the reservation cookie.
- Added Previous / Next buttons (Edit Reservation).
- Added confirmation message when deleting a reservation (Edit Reservation).
Rooms
Overview
- The room pages have been completely rewritten using the Google Web Toolkit.
- The new pages are localizable, they are using the same Room Filter as is used in the event
management, and they are allowing a change to propagate over to the future academic sessions as
well. - It is also possible for users that are not managers in UniTime (e.g., instructors) and/or that
have no relation to a particular department (e.g., students) to be allowed to use the new rooms
pages. - When accessed from the Events menu, the Rooms, Room Groups and Room Features pages contain the
selection of an academic session, just like the Events page. - It is possible to use the old pages by setting the application property unitime.legacy.rooms to
true (defaults to false).
Rooms
- The Rooms page now contains a Room Filter and a table with many features.
- The table of rooms can be sorted by a given column, can show pretty much any room property, and
it can be exported to PDF or CSV.
Add/Edit Room
- Add Room and Edit Room page now contains all the functionality of the various edit pages that
were accessible from the Room Detail page. - Moreover, it is now possible to make the update the room in the (selected) future academic
sessions as well. - Only selected groups of properties can be updated in a particular future session.
Edit Room Departments
- The page can be used to assign multiple rooms to a particular department or examination
problem). - The page is only accessible when a department or an examination problem is selected in the Room
Filter. - The page is now using the same table of rooms as the Rooms page and it is populated by all the
rooms matching the Room Filter (except of the selected department / examination problem). - Rooms not matching the Room Filter are left unchanged.
Room Groups / Features
- The Room Groups and Room Features pages also use the Room Filter to list rooms (and matching
room features and groups). - The Add and Edit pages are also using the same table as on the Rooms page with the list of rooms
populated by all the rooms matching the Room Filter. - Rooms not matching the Room Filter are left unchanged.
- When creating / updated a room group or feature, it is possible to select one or more future
academic sessions that would be updated as well.- Besides of the properties of the group (or feature) like name, abbreviation department, etc.,
only rooms with a change are updated. - This means that the future group (or feature) is NOT reset to the rooms that are currently
selected on the group (or feature).
- Besides of the properties of the group (or feature) like name, abbreviation department, etc.,