Skip to content

@tomas-muller tomas-muller released this Apr 26, 2021

Student Scheduling

Online Student Scheduling Dashboard: Student Notes

  • Show all students' notes in a new Notes tab when a student is clicked, including timestamp and the name of the user who set the note.

Advisor Course Recommendations: Custom Warnings

  • Added the same warnings that the student would see using the custom course validation provider.

Advisor Course Recommendations: Read-Only Use

  • A few small improvements for users with read-only access to the Advisor Course Recommendations page.
    • Show student status and PIN correctly (with the PIN toggle disabled).
    • Degree Plan button works without the Student Advisor permission (Advisor Course Request permission works as well).
    • Advisor Course Recommendations appear in the menu even when there is no Students menu.

Course Requests Validation: Free Times

  • Added a warning message when free time is requested (regardless of its priority)
    • The Free Time request will be considered a time block during the preregistration process. If the Free Time request is placed higher than a traditional course, you may not receive a full schedule.
  • Also added a warning on a free time request that is above a course
    • High priority free time

Online Student Scheduling Dashboard: Change Log

  • A few changes have been made to make the Change Log load faster, namely
    • Only parse the action proto message when an item is clicked.
    • Message field updated to contain a message generated from the action so that the same message gets shown on the dashboard without the needed to parse the action proto.

Batch Student Scheduling: Backtracking phase

  • Ensure that the solver does not get stuck (as it repeatedly adds requests that failed) by setting a limit on the number of iterations (2x the initial size of the request queue).

Event Management

Event Detail: Email Students

  • Added ability to email students of a class, an examination, or a course-related event.
  • Requires permission Event Detail Email Students (not enabled by default).
    • When enabled, Send Email button appears on the top of the Enrollments table.
  • Either all students that have an email on file can be emailed, or just those that are selected.
  • One email is sent with all the (selected) students in BCC.
  • CC defaults to the user's email, but it can be changed in the Send email dialog.
  • Email subject defaults to the event's name, but it can be changed in the Send email dialog.

Event Timetable: Curriculum

  • Fixed an issue caused by a recent change in curriculum reservations (curriculum reservation can now list multiple academic areas).

Other

CSV Files

  • When reading CSV file, consider line breaks inside of cells -- do not import as multiple lines.
  • This fixes an issue with the validation and enrollment logs on the Student Sectioning Solver Reports page (the table gets disordered after a student with multiple curricula).

Spring libraries updated due to security issues

  • Spring core libraries updated to version 4.3.30 (was 4.3.18) to fix CVE-2018-15756 issue (high severity).
  • Spring integration is updated to version 4.3.24 (was 4.3.18) to fix CVE-2020-5413 issue (high severity).
  • Spring security is updated to version 4.2.20 (was 4.2.9) to fix CVE-2020-5408, CVE-2019-11272, and CVE-2019-3795 issues (moderate to high severities).
Assets 3

@tomas-muller tomas-muller released this Mar 19, 2021

Course Timetabling

Student Academic Area Classification Major Weight

  • Added ability to add a weight to each (area, classification, major) combination that a student has.
  • It defaults to 1.0 and can be used to avoid double counting a student with two or more majors.
  • Added optional weight parameter in Students XML and Student Course Requests XML import and export.

Course Timetabling Solver: Student Course Demands

  • Fixed an issue where a first-choice course is marked as alternative to each other, making the solver to ignore student conflicts within the course.
    • This was only a problem when student course demands are used and alternatives are enabled (StudentCourseRequests.IncludeAlternatives is true).

Course Timetabling Solver: Automatic Same Students Constraint

  • When creating a same student constraint, consider all subparts that have just one class (not just those that do not have a parent).
  • This fixes an issue when there is Lec 1 - Lec 1a chain and Lab 1 - Lab 1a chain which are not in a parent-child relation.
    • Before, only constraints between Lec 1 - Lec 1a - Lab 1 and Lab 1 - Lab 1a - Lec 1 were created, allowing Lec 1a to overlap with Lab 1a.

Class Assignment: Projected Student Conflicts

  • When student conflict pre-fetching is enabled (tmtbl.classAssign.prefetchConflicts), ensure that only committed classes from the current academic session are considered.
  • This fixes an issue when a combination of last-like and real students are being used (e.g., Course Requests With Projected Last Likes) as the pre-fetch was getting conflict between the current and the last-like session.

Distribution Preferences

  • Added ability to export the distribution preferences in CSV format.

Student Scheduling

Advisor Course Recommendations: Last Additional Notes

  • Added ability to select from the previous 50 notes that the advisor has used in the given term.
    • Student PIN is automatically replaced (same message with different PIN does not list multiple times).
    • Ordered by the last time the note was used.

Student Scheduling Dashboards (Both Online and Batch)

  • Added optional Conc (major concentration) and Degr (student degree) columns.
  • Added ability to filter by concentration and/or degree.

Examination Timetabling

Examination Distribution Preferences

  • Added ability to export the distribution preferences in CSV format.

Other

UniTime Login Page

  • Include global info/warn/error messages on the UniTime login screen.
    • Properties tmtbl.global.info, tmtbl.global.warn, and tmtbl.global.error
  • Added ability to add info/warn/error messages just on the login screen.
    • Properties tmtbl.page.info.login, tmtbl.page.warn.login, tmtbl.page.error.login

Student Curriculum Information

  • Added ability to include an optional concentration and degree field on a student, with academic area, major, and classification.
  • Included in Student XML and Course Requests XML exports and imports.
Assets 3

@tomas-muller tomas-muller released this Feb 9, 2021

Batch Student Scheduling

Past Sections

  • Added ability to mark sections that are in the past, that is sections that start before the General.ClassesPastDate date.
  • The use of past sections can be minimized (using StudentWeights.PastFactor student weight).

Student Accommodations

  • Besides of students requiring short distances, additional criteria based on student accommodations were created:
    • Students requiring short distances (SD accommodation, there is a conflict when classes are back-to-back and distance in minutes is above zero)
    • Students needing some time free (FT accommodation, a higher penalization for free-time conflicts)
    • Students needing back-to-back classes (BTB accommodation, a penalization for classes that are more than 30 minutes of each other)
    • Students needing breaks between classes (BBC accommodation, a penalization for classes that are back-to-back, or within 30 minutes of each other)
  • Please note that these accommodations are only enabled when the new Student Schedule Quality extension is being used (StudentSct.ScheduleQuality = true).

Curriculum Reservations

  • Added ability for a curriculum reservation and overrides to have multiple majors.
  • Added ability for the curriculum reservations and overrides to match on student minors.
    • When a reservation has both majors and minors, a student must have at least one matching minor OR one matching major.
  • Added ability to further divide majors by using the optional concentrations.

Batch Student Solver Dashboard

  • Student Sectioning Dashboard renamed to Batch Student Solver Dashboard.
  • Enrollments tab: when the mouse is hovering over course/class available space, show existing reservations in a tooltip popup (as they were loaded into the solver).

Online Student Scheduling

Wait-Listing

  • Status Check: Follow the status fall-backs when checking for wait-list option.

Deadlines

  • Added ability to avoid classes that are past the deadline when computing an online schedule or suggestions.
  • To be enabled by FindAssignment.CheckDeadlines solver configuration property (defaults to false).
  • Deadlines are not checked when extended adds are allowed by the special registration and student agrees to explore conflicting schedule.

Past Sections

  • Added ability to mark sections that are in the past.
  • When enabled (FindAssignment.AvoidPastSections is true), the Scheduling Assistant will try to minimize the use of sections that are in the past.
    • That is before today, possibly adjusted by the number of days in FindAssignment.AvoidPastOffset.

Advisor Course Recommendations

  • Added ability to set a default advisor note.
    • Application property unitime.acrf.note, defaults to no note.
    • To be used to pre-populate the Additional Notes field on the Advisor Course Recommendations page.

Course Finder

  • Instead of allowing advisors and administrators to see all courses (ignore course type check), there is now a new permission StudentSchedulingCanLookupAllCourses that the user role must have.
    • Automatically set for roles with StudentSchedulingAdvisor permission.

Online Student Scheduling Dashboard

  • Added tooltips for Area, Clasf, Major, Concentration, Minor and Accommodation columns (showing full name when available).
  • Enrollments tab: when the mouse is hovering over course/class available space, show existing reservations in a tooltip popup.

Examination Timetabling

Overlapping Periods

  • Added ability to check for direct (student or instructor) conflicts between two examination periods that overlap in time.
  • This is only enabled when solver configuration parameter Exams.CheckForPeriodOverlaps is set to true (defaults to false).

Examination Events

  • Added ability generate event's allocated time based on the examination length instead of the examination period length.
    • When enabled, a one hour long exam will only allocate one hour (plus the offsets) even when placed in a period of two hours.
  • To be enabled (for an examination problem) by unitime.examEvent.allocatesTimeBasedExamLength.REF application property, where REF is the examination problem reference.

Administration

Contact Us

  • Contact Us Email: Set reply-to email address to the email recipient.

Spring Integration

  • Spring Integration is now disabled by default (to avoid issues with data/unitime/import folder).
  • To enable Spring Integration, set unitime.spring.context.integration=no-integration.xml in catalina.properties.
    • This will enable the data exchange imports in the data/unitime/import folder as well as the ability to configure receiving Event Management email responses.
Assets 3

@tomas-muller tomas-muller released this Dec 7, 2020

Student Scheduling

Advisor Course Recommendations

  • A page for the advisor to fill with a student while advising him/her on what courses to take the next term.
  • It looks a lot like the Student Course Requests page, with a few fields added (credits per course, notes, etc.).
  • When opened, the advisor can look up a student and the page gets pre-populated with the existing data.
  • The page automatically offers course suggestions (but it is possible to put in a free text too), fills in credits, count the credit totals, etc.
  • When submitted, there is a PDF version generated that can be printed and signed by the student.
  • Allows for student status change when submitted; no need for the advisor to use the dashboard to change the student status.
  • UniTime keeps record of these advisor course requests for possible auditing/reporting (what students requested versus what they have been advised, list students that have been already advised that did not fill their course requests in, etc.).
  • Student Course Requests page can be pre-populated with these courses, or a student can review the courses filled in by the advisor.
  • Optionally, course recommendation may contain wait-listing toggles (based on unitime.acr.waitlist parameter).

Important Course Requests

  • Added ability to put a multiple levels to critical courses: Critical > Important > Normal.
  • Critical course request are assigned first, then important requests, then the rest.
  • More levels can be defined in the future, if needed.

Alternative Majors

  • Added ability to load critical courses and degree plans from an alternative major.
  • Alternative majors are identified by a student group of a particular type a student is in.
    • By default group type is "1st Choice", and the group abbreviation is area abbv - major code.
  • Custom class CriticalCoursesExplorers makes use of these (implementing both CriticalCoursesProvider and DegreePlansProvider interfaces).

Priority Students

  • Added ability to identify priority students (to be assigned first) by a filter query.
  • Improved handling of priority students by the solver.
  • Up to 5 priority tiers can be defined (Priority, Senior, Junior, Sophomore, and Frehmen).

Reservation Restrictions

  • Added ability to define on a reservation whether it is inclusive or not.
  • There is a new mode field when editing a reservation (that is not an override) which can be:
    • Default: using unitime.reservations.restrictionsInclusive which defaults to true.
    • Reservation: the currently default mode (restrictions are applied at all levels).
    • Restriction: not-inclusive mode (restrictions are only applied on the selected level).

Grade Mode / Variable Credit Customization

  • Added ability to show course credit information on a particular section (not just the first one).
  • Gradable subpart (on which the credit is shown) can be provided using the ExternalClassNameHelperInterface interface, implementing HasGradableSubpart sub-interface.
  • Banner Integration: Show credit information on the gradable section.
  • Banner Integration: For variable credit courses, display assigned credit returned by XE API.
  • Special Registration: Added ability to request credit change on a variable credit course.

Online-Only Students / Courses

  • Added ability to identify some students as online-only (e.g., with a student group) and restrict them to certain courses or course configurations.
  • The restriction can be on courses (using regular expression for course name), or on course configurations (using regular expression on instructional method reference).
  • Added ability to hide courses that do not have an online-only option from the online-only students and vice versa (students can not look them up on the Course Requests or Scheduling Assistant page).
  • Added ability for the solver to keep out students from courses or course configurations they cannot take.

Minimal Perturbation Problem Improvements

  • Improved ability to re-section not-assigned course requests while the rest is kept untouched.
  • Existing enrollments can be fixed and left unchanged, even when they are not consistent.
  • Single Course MPP: Added ability to re-section only students in the given course or courses, while everything else is left untouched.

Other Changes & Improvements

  • Scheduling Dashboard: Added an ability to filter by instructional method.
  • Custom integration with a custom student attendance planning tool, showing additional meeting information on a class that a student has enrolled.
  • Added ability to save/validate only a subset of students loaded in the student scheduling solver.
  • Added ability to put a small penalization on online sections.
    • That is sections that do not have a time, that have time and no room, or that have time but the room does not check for conflicts (like the ONLINE room).

No Substitutions

  • Added ability to reuse the wait-listing toggle as No-Subs (no substitutions) when wait-listing is disabled.
    • Course requests that are marked as No-Subs cannot be replaced by a substitute course.
    • There is a new parameter of student schedule status (students may or may not be allowed to mark courses as No-Subs).
  • It is also possible to only allow advisor recommendations to mark courses as No-Subs (students are not allow to see/set No-Subs or Wait-List toggles).
    • In this case, solver parameter Load.UseAdvisorWaitLists must be set to true to check for these during the data load.

Course Timetabling

Room Sharing

  • More precise computation of allowed room sharing (how much space is needed in a room).
  • This is to avoid issues when three or more classes can share a room and some of these classes do not overlap.
    • For example, no more than two classes overlap when there is a Monday class, a Wednesday class, and a Monday-Wednesday class.

Fixed Time MPP

  • A new ability to assign new rooms while the existing time assignments are left unchanged.
  • Fixed Times: all assigned classes have only the assigned time in the domain (time preferences are completely ignored).
  • Weakened Distributions: allow hard distribution preferences to be weakened (strongly discouraged instead of prohibited etc.)
  • Instructor Conflicts: instructor conflicts can be allowed but penalized.
  • Prohibited Rooms: allowed prohibited rooms in the domain (except of rooms that are too small, or not being available for the department).

Other Changes & Improvements

  • Class Assignment: When checking for event conflicts, ignore conflicts for rooms that have the conflict checking disabled.
  • Instructional Offering Cross Lists: Added ability to edit Reserved space (course limit) even when there is only a single course in the cross-list.
  • Course Timetabling Save & Commit: when saving & committing two or more problems together, do not check for conflicts between problems that are being committed.
  • Instructor Availability: When checking instructor availability based on events (and possibly classes from other academic sessions), also check for distance conflicts between the class and the unavailability.

Examination Timetabling

Other Changes & Improvements

  • Added support for rooms that do not check for conflicts (e.g., the ONLINE room).
  • Allow for examination periods to run over midnight.

Event Management

Other Changes & Improvements

  • Added ability to make the Expected Attendance a required field.

Other

Right-to-Left Support

  • Basic support for right-to-left languages.
  • Enable by using ar locale.

APIs

  • HQL Reports: Added ability to export HQL reports in JSON format using the API.
  • Data Exchange: Course Offerings XML import and export extended to include number of rooms of a class.
  • Data Exchange: Include export and import of advisor recommendations with the Student Course Requests XML.

Other Changes & Improvements

  • People Lookup: Added ability to search the whole subtree in the LDAP search.
  • Task Scheduler: make sure current month is included if it is within 12 months before session start or after session end.
Assets 3
Pre-release

@tomas-muller tomas-muller released this Nov 2, 2020

UniTime 4.5.108 release notes

Student Scheduling

Advisor Course Recommendations

  • A page for the advisor to fill with a student while advising him/her on what courses to take the next term.
  • It looks a lot like the Student Course Requests page, with a few fields added (credits per course, notes, etc.).
  • When opened, the advisor can look up a student and the page gets pre-populated with the existing data.
  • The page automatically offers course suggestions (but it is possible to put in a free text too), fills in credits, count the credit totals, etc.
  • When submitted, there is a PDF version generated that can be printed and signed by the student.
  • Allows for student status change when submitted; no need for the advisor to use the dashboard to change the student status.
  • UniTime keeps record of these advisor course requests for possible auditing/reporting (what students requested versus what they have been advised, list students that have been already advised that did not fill their course requests in, etc.).
  • Student Course Requests page can be pre-populated with these courses, or a student can review the courses filled in by the advisor.
  • Optionally, course recommendation may contain wait-listing toggles (based on unitime.acr.waitlist parameter).

Important Course Requests

  • Added ability to put a multiple levels to critical courses: Critical > Important > Normal.
  • Critical course request are assigned first, then important requests, then the rest.
  • More levels can be defined in the future, if needed.

Alternative Majors

  • Added ability to load critical courses and degree plans from an alternative major.
  • Alternative majors are identified by a student group of a particular type a student is in.
    • By default group type is "1st Choice", and the group abbreviation is area abbv - major code.
  • Custom class CriticalCoursesExplorers makes use of these (implementing both CriticalCoursesProvider and DegreePlansProvider interfaces).

Priority Students

  • Added ability to identify priority students (to be assigned first) by a filter query.
  • Improved handling of priority students by the solver.
  • Up to 5 priority tiers can be defined (Priority, Senior, Junior, Sophomore, and Frehmen).

Reservation Restrictions

  • Added ability to define on a reservation whether it is inclusive or not.
  • There is a new mode field when editing a reservation (that is not an override) which can be:
    • Default: using unitime.reservations.restrictionsInclusive which defaults to true.
    • Reservation: the currently default mode (restrictions are applied at all levels).
    • Restriction: not-inclusive mode (restrictions are only applied on the selected level).

Grade Mode / Variable Credit Customization

  • Added ability to show course credit information on a particular section (not just the first one).
  • Gradable subpart (on which the credit is shown) can be provided using the ExternalClassNameHelperInterface interface, implementing HasGradableSubpart sub-interface.
  • Banner Integration: Show credit information on the gradable section.
  • Banner Integration: For variable credit courses, display assigned credit returned by XE API.
  • Special Registration: Added ability to request credit change on a variable credit course.

Online-Only Students / Courses

  • Added ability to identify some students as online-only (e.g., with a student group) and restrict them to certain courses or course configurations.
  • The restriction can be on courses (using regular expression for course name), or on course configurations (using regular expression on instructional method reference).
  • Added ability to hide courses that do not have an online-only option from the online-only students and vice versa (students can not look them up on the Course Requests or Scheduling Assistant page).
  • Added ability for the solver to keep out students from courses or course configurations they cannot take.

Minimal Perturbation Problem Improvements

  • Improved ability to re-section not-assigned course requests while the rest is kept untouched.
  • Existing enrollments can be fixed and left unchanged, even when they are not consistent.
  • Single Course MPP: Added ability to re-section only students in the given course or courses, while everything else is left untouched.

Other Changes & Improvements

  • Scheduling Dashboard: Added an ability to filter by instructional method.
  • Custom integration with a custom student attendance planning tool, showing additional meeting information on a class that a student has enrolled.
  • Added ability to save/validate only a subset of students loaded in the student scheduling solver.
  • Added ability to put a small penalization on online sections.
    • That is sections that do not have a time, that have time and no room, or that have time but the room does not check for conflicts (like the ONLINE room).

No Substitutions

  • Added ability to reuse the wait-listing toggle as No-Subs (no substitutions) when wait-listing is disabled.
    • Course requests that are marked as No-Subs cannot be replaced by a substitute course.
    • There is a new parameter of student schedule status (students may or may not be allowed to mark courses as No-Subs).
  • It is also possible to only allow advisor recommendations to mark courses as No-Subs (students are not allow to see/set No-Subs or Wait-List toggles).
    • In this case, solver parameter Load.UseAdvisorWaitLists must be set to true to check for these during the data load.

Course Timetabling

Room Sharing

  • More precise computation of allowed room sharing (how much space is needed in a room).
  • This is to avoid issues when three or more classes can share a room and some of these classes do not overlap.
    • For example, no more than two classes overlap when there is a Monday class, a Wednesday class, and a Monday-Wednesday class.

Fixed Time MPP

  • A new ability to assign new rooms while the existing time assignments are left unchanged.
  • Fixed Times: all assigned classes have only the assigned time in the domain (time preferences are completely ignored).
  • Weakened Distributions: allow hard distribution preferences to be weakened (strongly discouraged instead of prohibited etc.)
  • Instructor Conflicts: instructor conflicts can be allowed but penalized.
  • Prohibited Rooms: allowed prohibited rooms in the domain (except of rooms that are too small, or not being available for the department).

Other Changes & Improvements

  • Class Assignment: When checking for event conflicts, ignore conflicts for rooms that have the conflict checking disabled.
  • Instructional Offering Cross Lists: Added ability to edit Reserved space (course limit) even when there is only a single course in the cross-list.
  • Course Timetabling Save & Commit: when saving & committing two or more problems together, do not check for conflicts between problems that are being committed.
  • Instructor Availability: When checking instructor availability based on events (and possibly classes from other academic sessions), also check for distance conflicts between the class and the unavailability.

Examination Timetabling

Other Changes & Improvements

  • Added support for rooms that do not check for conflicts (e.g., the ONLINE room).
  • Allow for examination periods to run over midnight.

Event Management

Other Changes & Improvements

  • Added ability to make the Expected Attendance a required field.

Other

Right-to-Left Support

  • Basic support for right-to-left languages.
  • Enable by using ar locale.

APIs

  • HQL Reports: Added ability to export HQL reports in JSON format using the API.
  • Data Exchange: Course Offerings XML import and export extended to include number of rooms of a class.
  • Data Exchange: Include export and import of advisor recommendations with the Student Course Requests XML.

Other Changes & Improvements

  • People Lookup: Added ability to search the whole subtree in the LDAP search.
  • Task Scheduler: make sure current month is included if it is within 12 months before session start or after session end.
Assets 3
Pre-release

@tomas-muller tomas-muller released this Oct 17, 2020

Student Scheduling

Advisor Course Recommendations

  • A page for the advisor to fill with a student while advising him/her on what courses to take the next term.
  • It looks a lot like the Student Course Requests page, with a few fields added (credits per course, notes, etc.).
  • When opened, the advisor can look up a student and the page gets pre-populated with the existing data.
  • The page automatically offers course suggestions (but it is possible to put in a free text too), fills in credits, count the credit totals, etc.
  • When submitted, there is a PDF version generated that can be printed and signed by the student.
  • Allows for student status change when submitted; no need for the advisor to use the dashboard to change the student status.
  • UniTime keeps record of these advisor course requests for possible auditing/reporting (what students requested versus what they have been advised, list students that have been already advised that did not fill their course requests in, etc.).
  • Student Course Requests page can be pre-populated with these courses, or a student can review the courses filled in by the advisor.

Important Course Requests

  • Added ability to put a multiple levels to critical courses: Critical > Important > Normal.
  • Critical course request are assigned first, then important requests, then the rest.
  • More levels can be defined in the future, if needed.

Alternative Majors

  • Added ability to load critical courses and degree plans from an alternative major.
  • Alternative majors are identified by a student group of a particular type a student is in.
    • By default group type is "1st Choice", and the group abbreviation is area abbv - major code.
  • Custom class CriticalCoursesExplorers makes use of these (implementing both CriticalCoursesProvider and DegreePlansProvider interfaces).

Priority Students

  • Added ability to identify priority students (to be assigned first) by a filter query.
  • Improved handling of priority students by the solver.

Reservation Restrictions

  • Added ability to define on a reservation whether it is inclusive or not.
  • There is a new mode field when editing a reservation (that is not an override) which can be:
    • Default: using unitime.reservations.restrictionsInclusive which defaults to true.
    • Reservation: the currently default mode (restrictions are applied at all levels).
    • Restriction: not-inclusive mode (restrictions are only applied on the selected level).

Grade Mode / Variable Credit Customization

  • Added ability to show course credit information on a particular section (not just the first one).
  • Gradable subpart (on which the credit is shown) can be provided using the ExternalClassNameHelperInterface interface, implementing HasGradableSubpart sub-interface.
  • Banner Integration: Show credit information on the gradable section.
  • Banner Integration: For variable credit courses, display assigned credit returned by XE API.
  • Special Registration: Added ability to request credit change on a variable credit course.

Online-Only Students / Courses

  • Added ability to identify some students as online-only (e.g., with a student group) and restrict them to certain courses or course configurations.
  • The restriction can be on courses (using regular expression for course name), or on course configurations (using regular expression on instructional method reference).
  • Added ability to hide courses that do not have an online-only option from the online-only students and vice versa (students can not look them up on the Course Requests or Scheduling Assistant page).
  • Added ability for the solver to keep out students from courses or course configurations they cannot take.

Minimal Perturbation Problem Improvements

  • Improved ability to re-section not-assigned course requests while the rest is kept untouched.
  • Existing enrollments can be fixed and left unchanged, even when they are not consistent.
  • Single Course MPP: Added ability to re-section only students in the given course or courses, while everything else is left untouched.

Other Changes & Improvements

  • Scheduling Dashboard: Added an ability to filter by instructional method.
  • Custom integration with a custom student attendance planning tool, showing additional meeting information on a class that a student has enrolled.
  • Added ability to save/validate only a subset of students loaded in the student scheduling solver.
  • Added ability to put a small penalization on online sections.
    • That is sections that do not have a time, that have time and no room, or that have time but the room does not check for conflicts (like the ONLINE room).

Course Timetabling

Room Sharing

  • More precise computation of allowed room sharing (how much space is needed in a room).
  • This is to avoid issues when three or more classes can share a room and some of these classes do not overlap.
    • For example, no more than two classes overlap when there is a Monday class, a Wednesday class, and a Monday-Wednesday class.

Fixed Time MPP

  • A new ability to assign new rooms while the existing time assignments are left unchanged.
  • Fixed Times: all assigned classes have only the assigned time in the domain (time preferences are completely ignored).
  • Weakened Distributions: allow hard distribution preferences to be weakened (strongly discouraged instead of prohibited etc.)
  • Instructor Conflicts: instructor conflicts can be allowed but penalized.
  • Prohibited Rooms: allowed prohibited rooms in the domain (except of rooms that are too small, or not being available for the department).

Other Changes & Improvements

  • Class Assignment: When checking for event conflicts, ignore conflicts for rooms that have the conflict checking disabled.
  • Instructional Offering Cross Lists: Added ability to edit Reserved space (course limit) even when there is only a single course in the cross-list.
  • Course Timetabling Save & Commit: when saving & committing two or more problems together, do not check for conflicts between problems that are being committed.
  • Instructor Availability: When checking instructor availability based on events (and possibly classes from other academic sessions), also check for distance conflicts between the class and the unavailability.

Examination Timetabling

Other Changes & Improvements

  • Added support for rooms that do not check for conflicts (e.g., the ONLINE room).
  • Allow for examination periods to run over midnight.

Event Management

Other Changes & Improvements

  • Added ability to make the Expected Attendance a required field.

Other

Right-to-Left Support

  • Basic support for right-to-left languages.
  • Enable by using ar locale.

APIs

  • HQL Reports: Added ability to export HQL reports in JSON format using the API.
  • Data Exchange: Course Offerings XML import and export extended to include number of rooms of a class.
  • Data Exchange: Include export and import of advisor recommendations with the Student Course Requests XML.

Other Changes & Improvements

  • People Lookup: Added ability to search the whole subtree in the LDAP search.
  • Task Scheduler: make sure current month is included if it is within 12 months before session start or after session end.
Assets 3
Pre-release

@tomas-muller tomas-muller released this Oct 4, 2020

Student Scheduling

Advisor Course Recommendations

  • A page for the advisor to fill with a student while advising him/her on what courses to take the next term.
  • It looks a lot like the Student Course Requests page, with a few fields added (credits per course, notes, etc.).
  • When opened, the advisor can look up a student and the page gets pre-populated with the existing data.
  • The page automatically offers course suggestions (but it is possible to put in a free text too), fills in credits, count the credit totals, etc.
  • When submitted, there is a PDF version generated that can be printed and signed by the student.
  • Allows for student status change when submitted; no need for the advisor to use the dashboard to change the student status.
  • UniTime keeps record of these advisor course requests for possible auditing/reporting (what students requested versus what they have been advised, list students that have been already advised that did not fill their course requests in, etc.).
  • Student Course Requests page can be pre-populated with these courses, or a student can review the courses filled in by the advisor.

Important Course Requests

  • Added ability to put a multiple levels to critical courses: Critical > Important > Normal.
  • Critical course request are assigned first, then important requests, then the rest.
  • More levels can be defined in the future, if needed.

Alternative Majors

  • Added ability to load critical courses and degree plans from an alternative major.
  • Alternative majors are identified by a student group of a particular type a student is in.
    • By default group type is "1st Choice", and the group abbreviation is area abbv - major code.
  • Custom class CriticalCoursesExplorers makes use of these (implementing both CriticalCoursesProvider and DegreePlansProvider interfaces).

Priority Students

  • Added ability to identify priority students (to be assigned first) by a filter query.
  • Improved handling of priority students by the solver.

Reservation Restrictions

  • Added ability to define on a reservation whether it is inclusive or not.
  • There is a new mode field when editing a reservation (that is not an override) which can be:
    • Default: using unitime.reservations.restrictionsInclusive which defaults to true.
    • Reservation: the currently default mode (restrictions are applied at all levels).
    • Restriction: not-inclusive mode (restrictions are only applied on the selected level).

Grade Mode / Variable Credit Customization

  • Added ability to show course credit information on a particular section (not just the first one).
  • Gradable subpart (on which the credit is shown) can be provided using the ExternalClassNameHelperInterface interface, implementing HasGradableSubpart sub-interface.
  • Banner Integration: Show credit information on the gradable section.
  • Banner Integration: For variable credit courses, display assigned credit returned by XE API.
  • Special Registration: Added ability to request credit change on a variable credit course.

Online-Only Students / Courses

  • Added ability to identify some students as online-only (e.g., with a student group) and restrict them to certain courses or course configurations.
  • The restriction can be on courses (using regular expression for course name), or on course configurations (using regular expression on instructional method reference).
  • Added ability to hide courses that do not have an online-only option from the online-only students and vice versa (students can not look them up on the Course Requests or Scheduling Assistant page).
  • Added ability for the solver to keep out students from courses or course configurations they cannot take.

Minimal Perturbation Problem Improvements

  • Improved ability to re-section not-assigned course requests while the rest is kept untouched.
  • Existing enrollments can be fixed and left unchanged, even when they are not consistent.
  • Single Course MPP: Added ability to re-section only students in the given course or courses, while everything else is left untouched.

Other Changes & Improvements

  • Scheduling Dashboard: Added an ability to filter by instructional method.
  • Custom integration with a custom student attendance planning tool, showing additional meeting information on a class that a student has enrolled.
  • Added ability to save/validate only a subset of students loaded in the student scheduling solver.
  • Added ability to put a small penalization on online sections.
    • That is sections that do not have a time, that have time and no room, or that have time but the room does not check for conflicts (like the ONLINE room).

Course Timetabling

Room Sharing

  • More precise computation of allowed room sharing (how much space is needed in a room).
  • This is to avoid issues when three or more classes can share a room and some of these classes do not overlap.
    • For example, no more than two classes overlap when there is a Monday class, a Wednesday class, and a Monday-Wednesday class.

Fixed Time MPP

  • A new ability to assign new rooms while the existing time assignments are left unchanged.
  • Fixed Times: all assigned classes have only the assigned time in the domain (time preferences are completely ignored).
  • Weakened Distributions: allow hard distribution preferences to be weakened (strongly discouraged instead of prohibited etc.)
  • Instructor Conflicts: instructor conflicts can be allowed but penalized.
  • Prohibited Rooms: allowed prohibited rooms in the domain (except of rooms that are too small, or not being available for the department).

Other Changes & Improvements

  • Class Assignment: When checking for event conflicts, ignore conflicts for rooms that have the conflict checking disabled.
  • Instructional Offering Cross Lists: Added ability to edit Reserved space (course limit) even when there is only a single course in the cross-list.
  • Course Timetabling Save & Commit: when saving & committing two or more problems together, do not check for conflicts between problems that are being committed.
  • Instructor Availability: When checking instructor availability based on events (and possibly classes from other academic sessions), also check for distance conflicts between the class and the unavailability.

Examination Timetabling

Other Changes & Improvements

  • Added support for rooms that do not check for conflicts (e.g., the ONLINE room).
  • Allow for examination periods to run over midnight.

Event Management

Other Changes & Improvements

  • Added ability to make the Expected Attendance a required field.

Other

Right-to-Left Support

  • Basic support for right-to-left languages.
  • Enable by using ar locale.

APIs

  • HQL Reports: Added ability to export HQL reports in JSON format using the API.
  • Data Exchange: Course Offerings XML import and export extended to include number of rooms of a class.
  • Data Exchange: Include export and import of advisor recommendations with the Student Course Requests XML.

Other Changes & Improvements

  • People Lookup: Added ability to search the whole subtree in the LDAP search.
  • Task Scheduler: make sure current month is included if it is within 12 months before session start or after session end.
Assets 3

@tomas-muller tomas-muller released this Oct 4, 2020

Course Timetabling

Learning Management System Integration Partner Code

  • Added the ability to store the Learning Management System Integration Partner Code (LMS) on classes.
  • LMSs are session specific.
  • If an LMS is designated as the default for session, all classes with no LMS set will default to the designated default LMS.
  • If no LMS is defined for a term, then the LMS data field is not visible on classes.
  • Classes can be assigned an LMS using the Class Setup page from the Instructional Offering Detail page.

Timetable Grid: Curriculum, Student Groups

  • Fixed "ORA-00932: inconsistent datatypes" error when using Curriculum or Student Group resource (when showing the selected or committed solution).

Timetable Grid: Show All Committed

  • Added ability to show all committed classes when there is no solution loaded or selected (regardless of the user's department).
  • To enable set unitime.timeGrid.showAllCommitted to true (defaults to false).

Student Scheduling

Online Student Scheduling Dashboard: Confirmations

  • Added a change status, a change note, and a send email confirmations.
  • The confirmation does not show when:
    • only 1 student is selected,
    • all selected students are advised by the advisor using the page.

Student Scheduling Dashboard: Filter

  • Added ability to filter by Assigned Critical and by Not Assigned Critical (listing only critical course requests that are assigned or not-assigned respectively).

Course Requests: Custom Validation

  • Admin can use the Course Requests page even when Spec Reg returns not eligible, but cannot request a new override.
  • Show a warning when a critical course is being removed.

Online Student Scheduling: Critical Courses

  • Added ability to check for critical courses when there is an enrollment change.
  • Controlled by the application property unitime.enrollment.checkCritical, set to false by default.
    • That is, by default, critical courses are tracked only during pre-registration.

Scheduling Assistant: Critical Courses

  • Show a warning when a critical course is being dropped (only when drop warnings are enabled).

Course Requests / Scheduling Assistant: Course Finder

  • Added ability to select multiple courses on alternatives.

Online Student Scheduling Dashboard: Student Notes

  • Corrected the logic computing the last note of a student.
    • This fixes the issue of showing an older note instead of the last one.
Assets 3

@tomas-muller tomas-muller released this Dec 3, 2019

Student Scheduling

Course Requests: Submit Requests

  • Ensure that the save-requests action gets logged when the online student scheduling is disabled (no online student scheduling server is running).

Course Requests: Custom Validation

  • When updating request note, do not check the scheduling status of the session.
    • Course request changes may be done at a time when the online student scheduling is not accepting scheduling changes.

Online Student Scheduling: Asynchronous Execution

  • Added ability to use multiple threads for asynchronous execution.
    • Set unitime.enrollment.server.asyncPoolSize for the thread pool size (defaults to 10).

Reservations: Start Date

  • Added ability to provide start date on a reservation.
    • A reservation is also considered expired (does not reserve any space) when today is BEFORE the start date.

Student Scheduling Assistant: Inactive Course Requests

  • A course request is marked as inactive when it is saved in the database, but the student (that has a class schedule) is not enrolled in the course.
  • Inactive courses are NOT listed as not-assigned on the Class List page.
  • Inactive courses are indicated on the Course Requests table (as dark red color, line-through, and italic font).
    • A course can be activated by using the finder dialog or making changes to it (including just selecting on amoung suggestions).
    • There is a new icon for reactivating an inactive course (universal recycling symbol).
  • When a new schedule is built (Build Schedule button), inactive courses are ignored (left not-assigned).
    • Unless the Rearrange Schedule button is clicked.
    • Also, do not consider inactive courses when computing suggestions.
  • Using + New Course will always put the new course at the bottom (even if it was present on among course requests as inactive before).
  • It is possible to add a new course without removing inactive (having a course listed two times would not trigger an error if one of them is not active).
  • These "inactive" course requests are not detected/indicated by default, but this feature must be enabled with the following property
    • unitime.enrollment.inactiveUnassignedRequests=true (students)
    • unitime.enrollment.inactiveUnassignedRequests.manager (advisors and admins).

Online Scheduling Dashboard: Change Log

  • Unless the filter checks for operation:
    • Do not show validate-overrides, banner-update, and critical-courses actions that did not make any changes (the result is False).
    • Do not show reload-student, reload-offering, and check-offering actions with no result filled in.
  • Order the results by log unique id (instead of timestamp; a little less precise, but much faster).
  • Message column: set white-space to pre-wrap to improve the display of multi-line messages.

Online Student Scheduling Dashboard: Filter

  • Fixed an issue with hiding students that only have free time requests.
  • Improved boolean query capabilities of the filter, for instance
    • (group:PREREG and not group:ENH-3)
  • Will return all students from the PREREG group that are NOT in the ENH-3 group.

Online Student Scheduling: Check Assignment

  • When counting unreserved space: only check reservations that are set directly on the configuration/section in question.

Online Student Scheduling: Not-Assigned Course Request Message

  • Besides the course availability and time conflicts, also check the max credit hours.
  • Display "Exceeds maximum of X credit hours." when the not-assigned course request would get the student over the max credit limit (where X is the current max credit for the student).

Batch Student Scheduling: Curriculum Reservations

  • Fixed a problem with curriculum reservations not counting matching students that are already enrolled and that are excluded from the run.

Published Schedule Runs: Config & Notes

  • Added solver configuration on the published run.
  • Added ability to put in a note.

Online Student Scheduling: Change Log

  • Student Email: improved logging (include recipient email address, show more details in the Change Log, etc.).
    • Also, do not fail when CC address is incorrect (log a warning instead).
  • Status Change: improved logging (remember both the old and the new status reference), show status change in the Change Log (Message column).

Course Timetabling

Class Assignment: Student Conflicts

  • Added ability to change the default of how the student conflicts are computed.
  • Application configuration tmtbl.classAssign.studentConflicts with the possible values:
    • auto: show the actual student conflicts when there are student class enrollments, show projected (solution) conflicts otherwise (this is the default)
    • actual: always show the actual student conflicts
    • solution: always show the projected (solution) student conflicts
    • none: do not show student conflicts in the Available Times table
  • It is now possible to switch between the two modes (actual/projected) student conflicts by clicking the note at the bottom of the Student Conflicts table, which now reads:
    • Showing the actual student class enrollments, click here to change to projected student conflicts.
  • or
    • Showing projected student conflicts, click here to change to the actual class enrollments.

Examination Timetabling

Examination Assignment: Same Days

  • Added Same Days constraint checking.
  • Fixed an issue with the DistributionConflict comparator (when two constraints with a different number of exams are compared).

Examination Name: T for course title

  • Added ability to include course title in the examination name (using %T).

CPSolver updated to version 1.3.189 (was 1.3.185)

Examination Timetabling: More Than One Exam A Day

  • Added the ability to set a penalty when a student has two exams or more a day.
    • To enable add org.cpsolver.exam.criteria.additional.StudentMoreThan1ADayConflicts to Exam Additional Criteria.
    • More than one exam a day student conflict weight can be set by problem property Exams.MoreThanOneADayWeight.

Course Timetabling: Back-To-Back/Following Weeks

  • Added Back-To-Back Weeks distribution constraint.
    • Given classes must be taught on weeks that are back-to-back (the gap between the two assigned date patterns is less than a week).
    • When prohibited or (strongly) discouraged: any two classes must have at least a week gap in between.
  • Added Following Weeks distribution constraint.
    • Given classes must be taught on weeks that are back-to-back and in the given order.
    • When prohibited or (strongly) discouraged: given classes must be taught on weeks in the given order with at least one week between any two following classes.

Online Student Scheduling: Suggestions

  • Consider the order of the courses within a course request when comparing two suggestions.

Administration

Chameleon: Session Administrators

  • When the chameleon page is used by session dependent users (e.g., session admins), only allow authorities from the academic session(s) for which the original user has Chameleon permission.
  • This is to prevent a session admin to chameleon into another session admin from a different academic session.

HQL Reports: Export XLS

  • Added ability to export HQL reports to XLS format.

Other

PostgreSQL

Assets 3

@tomas-muller tomas-muller released this Oct 7, 2019

Student Scheduling

Student Scheduling: Advisors

  • Show student's advisor(s) on the dashboard page (Students tab) and in the Enrollments tables.
  • Added ability to filter by advisor on the dashboard page.
  • People Lookup: Added ability to check advisors when looking up a person. Added ability to use people lookup to fill in advisor details.

Course Finder: Select All

  • Added Select All button.
  • Only visible when there is a match on UCC attribute (custom course lookup).
  • When clicked, all courses are selected (limited to 10) in a random order favoring courses with more available space.
  • It is possible to choose the selection mode (availability, limit, or snapshot).
  • It is possible to define whether a random selection will be used (or the courses will be just listed in the given order).
  • It is possible to define the maximal number of returned courses.
  • The following application properties are used:
    • unitime.enrollment.listOfferings.selectionMode=availability|limit|snapshot (defaults to availability)
    • unitime.enrollment.listOfferings.rouletteWheel=true
    • unitime.enrollment.listOfferings.limit=10
  • If not all courses are going to be selected, rename the button to Pick {N} where N is the number of courses that will be selected.

Course Finder: List of Classes

  • Do not list classe for users that have no role (students) during pre-registration when the class schedule has not been published yet.

Course Requests: Custom Course Request Validation

  • Request Overrides: added ability to provide request note.
  • Course request validation (when submitting the Course Requests page): for all new registration errors, check if the override is allowed.
    • Using the response message (response.overrides) and prohibited overrides on the course that is being requested.
  • Created a simplified implementation that can be used while the class schedule has not been published yet (eligiblity checking but no course request validation).

Course Requests: Critical Course Override

  • Added ability to override critical course flag on the Online Student Scheduling Dashboard.
  • Permission Student Scheduling Change Critical Override is needed.

Batch Student Scheduling: XE Save

  • Enroll students with CLOS overrides last (students with an override reservation that allows over the limit).
  • This is to make sure some other student would not get a CLOS error.

Batch Student Scheduling: Solver Dashboard

  • A few changes (mostly caching) to make the search on the dashboard work faster, especially when returning a lot of data.

Grade Modes: Disclaimer

  • Added ability to put in a custom disclaimer for each grade mode change.
  • Application property purdue.specreg.gradeModeDisclaimer.X, where X is the code of the grade mode change.
  • Fixed Null exception when the student has a teaching assignment.

Student Status: Message

  • For statuses with an effective period, added ability to configure whether the automatically generated message (Your time window is between...) is to be automatically appended at the end of the status message.
  • Sgit settings unitime.enrollment.studentStatus.timeWindowMessage, defaults to true (include the message).

Student Scheduling: Student Emails

  • Added ability to send student emails (from the online dashboard) even when the automatic notifications are disabled.
  • Include course requests table on the email (when student can access Course Requests page).
  • Include List of Classes and Timetable only when the student can access the Scheduling Assistant page.
  • When the email is send from the online dashboard:
    • Ignore the student status (email flag)
    • Added checkboxes: include course requests and include class schedule
    • Remember the last used settings in the cookie (subject, cc, includes)

Online Student Scheduling: Customizations

  • Customization holder classes rewritten to use the same sub-class (Holder).
  • Property changes are monitored and a new provider instance is created when needed.
  • Ensure that session-dependent application properties are considered when needed.

Student Scheduling Dashboard: Request Student Update

  • Do not limit the ability to request students updates to online student scheduling.

Student Scheduling: Critical Course Requests

  • Added ability to load critical courses from a CSV file (containing area, major, subject area, and course number).
    • All courses with matching academic area and major are considered critical for the student.
  • Added ability to use the file-based critical courses as a fallback to using degree plans.

Batch Student Scheduling: Priority Students

  • Added ability to mark some students as priority students.
  • Priority students are scheduled first (after the critical course assignments), improving their chance of getting the courses they need.
  • Priority students are identified by student group (Load.PriorityStudentGroupReference parameter).

Batch Student Scheduling: Projected Students

  • Added ability to filter projected students with a query (Load.ProjectedStudentQuery parameter).

Course Requests: Custom Validation

  • Display student provided notes for the requested overrides.
  • Added ability to change these notes.
  • Allow note changes even when the student cannot update course requests.

Student Scheduling: Special Registration

  • Display student provided notes for the requested overrides.
  • Added ability to change these notes.

Student Scheduling: Solver Reports

  • Export CSV: do not pritify exported reports unless explicitly stated in the report definition (changing the default value of the pritify parameter to false).

Student Scheduling Dashboard: Set Student Status

  • When a status is changed, update information on whether the user can use the scheduling assistant / course requests.
  • No need to use Refresh to open the Course Requests / Scheduling Assistant dialog after the status change.

Published Schedule Runs: Solution Details

  • To remove flickering when showing mouse-over information (solution details):
    • No mouse-over information (solution info is too long for this).
    • Show the solution information in a dialog instead (when a row is clicked).

Student Scheduling Link (UniTime/studentScheduling.do): Default Session / Prefer Course Requests

  • When unitime.studentScheduling.useDefaultSession is set to false (defaults to true), the student scheduling link will not match on the default academic session. This means that it will:
    • Open Scheduling Assistant page if there is a session for which the student can use the page.
    • Open Course Requests page if there is a session for which the student can use the page.
  • When unitime.studentScheduling.preferCourseRequests is set to true (defaults to false), the course request page take precedence.
  • When selecting the current role, also check the sessions for which course requests are enabled (not just the ones with student scheduling enabled).

Course Timetabling

Multiple Class Setup: Snapshot Limits

  • Added ability to edit class-level snapshot limits.
  • When tmtbl.class_setup.edit_snapshot_limits is set to true, defaults to false.
  • Snapshot limits are only editable after thare have been snapshots taken (offering has a snapshot timestamp).
  • Also update snapshot limit timestamp (Class_.snapshotLimitDate) when a snapshot limit on a class is changed.
  • Only users with Multiple Class Setup Snapshot Limits permission can edit snapshot limits.

Class Edit/Detail: No Date Pattern

  • Avoid null exception when there is no date pattern (there is no default date pattern defined and there is no date pattern set on the subpart or the class).

CPSolver updated to version 1.3.185 (was 1.3.179)

Examination Timetabling: Availability

  • When instructor or student direct conflicts are not allowed, also do not allow for availability violations.

Student Scheduling: Solution Info

  • Added information about full sections and offerings.
  • Added information about students with time overlaps (number of students, average overlapping minutes).

Student Scheduling: Advisors

  • Added support for student's advisor(s).

Student Scheduling: Priority Students

  • Added ability to mark some students as priority students.
  • Priority students are scheduled first (after the critical course assignments), improving their chance of getting the courses they need.

Student Scheduling: Dummy Students

  • Improved handling of projected students.

Event Management

Events: Display Conflicts

  • Avoid a "No data type for node Xm" exception when display conflicts are enabled in a non-English locale.

Other Changes

JavaScript Cache Filter

  • Ensure that chain.doFilter does not get called two times.
  • This fixes issue #50 (multiple menu bars and fields) when UniTime is deployed on Windows.
Assets 3