UniTime 4.1 build 218
tomas-muller
released this
12 Jan 13:37
·
2992 commits
to master
since this release
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 not allow an academic area, a classification, or a major to be deleted when it is being used
(there is a curriculum associated with it). - When an academic area is deleted, delete all orphaned majors and minors as well.
GWT-based Administration Pages
- Show the page loading (page grayed out, a blue message in the middle) when working.
- In some cases, the function is wrapped in a deferred command to ensure that the page loading
widget is shown immediately. - This is to ensure that no button is pressed multiple times.