<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" media="screen" href="git-log.css"?>

<log>
  <title>UniTime v4.9 build 108 change log (since the last release, build 102 on 16 Dec 2025 02:00)</title>
  <logentry revision="b2bce8b">
    <commit>b2bce8b4fd89a8ab1e9af9ac66174343283e2285</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>20-Feb-2026 9:13 PM</date>
    <subject>Class Detail: Timetable</subject>
    <msg>- fixed an exception thrown when showing an in-memory assignment with a partially-assigned violated distribution preference</msg>
  </logentry>
  <logentry revision="6832dd4">
    <commit>6832dd4d6661cce269335e6b1d573653eba87348</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>20-Feb-2026 9:13 PM</date>
    <subject>Enrollment Audit PDF Reports: Enrollments Violating Course Structure</subject>
    <msg>- corrected a case when the student is enrolled in the same course multiple times under different course names (e.g., different lab but the same lecture)</msg>
  </logentry>
  <logentry revision="3b8b48f">
    <commit>3b8b48fe7cfac274a0da7f2e04619610a335ba43</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>20-Feb-2026 9:13 PM</date>
    <subject>Course Finder: List Classes</subject>
    <msg>- when loading classes from the database, check the effective instructional method when evaluating student scheduling rules</msg>
  </logentry>
  <logentry revision="8a535b5">
    <commit>8a535b53b7cc450714d557a636e56406fd484432</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:48 PM</date>
    <subject>Student Scheduling Assistant: Custom Enrollment Provider</subject>
    <msg>- fixed an issue that occurs when a student is enrolled in the same class multiple times (under different courses), tries to drop a class, and the drop is not allowed/fails due to the external system</msg>
    <msg>- the student was removed from the section in UniTime, and Special Registration did not get triggered</msg>
  </logentry>
  <logentry revision="8a70152">
    <commit>8a70152d14c3dbe4ba7671871d536d452faff99e</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:48 PM</date>
    <subject>Menu</subject>
    <msg>- removed the old tmtbl.menu.displayxxx properties</msg>
    <msg>- adjusted permission checking for Lookup Classes, Lookup Exams, and Timetable for Anonymous role (Events permission is needed)</msg>
  </logentry>
  <logentry revision="5ba243f">
    <commit>5ba243f58cfc3ff2f75f4e7502302b65cbd17e99</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:48 PM</date>
    <subject>Online Student Scheduling: Course Details</subject>
    <msg>- avoid serialization of the CourseDetailProvider</msg>
  </logentry>
  <logentry revision="acfa899">
    <commit>acfa89967e0f599e558641256ee8e25b8755a3b8</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:48 PM</date>
    <subject>Course Catalog: added permission and release notes</subject>
    <msg>- create a simple page that shows information provided by the CourseDetailsProvider</msg>
    <msg>- to enable:</msg>
    <msg>- configure unitime.custom.CourseDetailsProvider (returning an HTML snippet)</msg>
    <msg>- set unitime.custom.CourseUrlProvider to org.unitime.timetable.server.courses.CourseCatalogBackend</msg>
    <msg>- set the Course Catalog permission for all the roles that should be able to see the catalog</msg>
    <msg>- possibly adjust the custom CSS to improve catalog page formatting</msg>
  </logentry>
  <logentry revision="f835e80">
    <commit>f835e80f89e75293097d4d65e1e2d24fe64a4ad2</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:48 PM</date>
    <subject>Room Preference Index: Various Fixes</subject>
    <msg>- Session Roll Forward: Copy room index for room-related preferences (room, room feature, room group, and building preferences)</msg>
    <msg>- also fixed in AcademicSessionMerge</msg>
    <msg>- Preferences XML: Include roomIndex attribute for room-related preferences</msg>
    <msg>- Multiple Class Setup: Copy room index when room-related preferences are being moved pushed to the class level due to the change of the subpart's managing department</msg>
  </logentry>
  <logentry revision="1615941">
    <commit>161594179fcfbbd8b55be8ce10e16b7e20cc2cc5</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:48 PM</date>
    <subject>Customization: Banner9 Course Details</subject>
    <msg>- a few more adjustments based on user feedback</msg>
    <msg>- sections now can be opened and closed (when shown on the Course Catalog page)</msg>
    <msg>- dotted lines between items in the first section</msg>
  </logentry>
  <logentry revision="7a24a6f">
    <commit>7a24a6fccee243b86e19b32869a3396256a3bb61</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:47 PM</date>
    <subject>Customization: Banner9 Course Details</subject>
    <msg>- a few adjustments</msg>
  </logentry>
  <logentry revision="5472df6">
    <commit>5472df6d05cbf8049e637ba8a8b5c483a9067900</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:47 PM</date>
    <subject>Customization: Banner9 Course Details</subject>
    <msg>- first implementation of a custom course details provider using the Ellucian's Ethos API</msg>
    <msg>- also created a Course Catalog page that just shows the data returned by the currently configured CourseDetailsProvider</msg>
  </logentry>
  <logentry revision="7f43105">
    <commit>7f43105fa1bff83eb3a6ac6ccb205c0ce52d512c</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:47 PM</date>
    <subject>Solver Reports: Course Request Alternatives Statistics</subject>
    <msg>- added Course Request Alternatives Statistics report, an experimental report comparing course requests and advisor recommendations with and without alternatives</msg>
    <msg>- only available to user roles with Student Sectioning Solver Admin Reports role</msg>
  </logentry>
  <logentry revision="cabce7e">
    <commit>cabce7e455bf09a10452f671154be387ef10d2d8</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:47 PM</date>
    <subject>Student Scheduling Solver Reports: Solution Statistics</subject>
    <msg>- updated the list of communication courses</msg>
  </logentry>
  <logentry revision="c995797">
    <commit>c995797cfe411fb2e22fee927a2e37f96f54f0c4</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>17-Feb-2026 6:47 PM</date>
    <subject>Default Course Details Provider: Default Template</subject>
    <msg>- the default template updated to display the credits correctly and to include indication that the course can be wait-listed</msg>
  </logentry>
  <logentry revision="54d5a64">
    <commit>54d5a64cf20424b7a6b2433a573322606365e443</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>9-Jan-2026 6:00 PM</date>
    <subject>Class/Scheduling Subpart Detail: Distribution Preferences</subject>
    <msg>- corrected the permission checking for the Add Distribution Preference button so that a Department Schedule Manager would see the button on an externally managed class or scheduling subpart</msg>
  </logentry>
  <logentry revision="c8f59d0">
    <commit>c8f59d0f832f2a6e368523d2e020112ab23b4000</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>8-Jan-2026 10:06 PM</date>
    <subject>Event Service Providers: HQL Bug Fix</subject>
    <msg>- fixed a query that loads all rooms for a service provider associated with a department, applying to all the department's event rooms</msg>
    <msg>- got broken with the Hibernate 6.x upgrade in commit b60f4a1</msg>
  </logentry>
  <logentry revision="324af16">
    <commit>324af1638b4c451054114ca072b0e8dc94664929</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>5-Jan-2026 3:00 PM</date>
    <subject>Dependencies</subject>
    <msg>Log4j updated to 2.25.3 (was 2.25.1)</msg>
    <msg>- this is to fix CVE-2025-68161 (Apache Log4j does not verify the TLS hostname in its Socket Appender)</msg>
  </logentry>
  <logentry revision="74b0bd6">
    <commit>74b0bd62deb24993762d5b78d76b432da4a728ba</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>5-Jan-2026 2:57 PM</date>
    <subject>Use 2026 in the copyright message</subject>
  </logentry>
  <logentry revision="b670c82">
    <commit>b670c82177953d19f320fc577ce0b8cefa717bca</commit>
    <author>tomas-muller &lt;muller@unitime.org&gt;</author>
    <date>23-Dec-2025 3:26 PM</date>
    <subject>Wait-Listing: Custom Validation</subject>
    <msg>- skip validation for a course that was made not offered (avoid null exception)</msg>
  </logentry>
</log>
