Skip to main content

Version 9.1.230 (25 May 2026)

Imports

Resolve the incorrect import of org level 9. Correct import of reporting lines and company dates after materialisation migration (#149114)

Problem

Problem

Org level 9 name and code imported in the incorrect order. The Reporting line import fails due to a mapping issue with the record in the Dapper query. StartDateInCompany cannot be imported due to missing aliases. The job profile import starts before the user materialisation completes, then appointments, reporting lines, and company dates are only partially imported. 

 Solution

Solution

Reorder OrgLevel9Name/OrgLevel9Code across models, DTOs and gRPC mapping so field positions are consistent (UserDetails, BasicUserDetailsData, PaySpace export, ImportManagementService). Fix a tuple return in UserDetails to return OrgLevel1Name instead of OrgLevel1Code. Correct SQL in UserQueries: reference ud and muser aliases explicitly, use the proper JOIN for UserCompanyDates, and fix KnownAs column alias formatting. Also, remove a stray blank line. These changes ensure correct mapping of org/job fields and correct user date update logic. Add a short delay before starting the job profile import

 


Data Warehouse

Updated insert step for PAYU tables (#142732)

Problem

Problem

New SchemaIDs need to be added for the Insert step for PAYU tables

The step needs to be adjusted to execute the original SP within the DWH staging insert step 

 Solution

Solution

Added new SchemaIDs for the insert step for PAYU tables

Updated the insert staging step to execute the original SP to ensure consistency

 


People Management

Improved performance on Company tab query (#149132)

Problem

Problem

When selecting the Company tab, and there are a lot of employees, it can take a very long time 

 Solution

Solution

Optimised and improved query

Toggle compression view when clicking the modal cancel button (#148107)

Problem

    When uploading a profile image and clicking the Cancel button, reopening the modal still displays the previously uploaded image in the compression preview sections.

     

    Solution

      Updated the cancel functionality to also reset the compression previews, ensuring previously uploaded images are cleared when the modal is closed.

       

      Resolved people group import to v8 returning 0 users (#149113)

      Problem

        When an empty list is sent from v8, it has an empty string within that, which causes the extra where condition that returns no users

         

        Solution

          Added logic check to only take items that are not empty or null

           


          Master Data

          Disable the Evaluation Master Data scheduled import. Improve handling on Bulk Import handler for evaluation master data (#148480)

          Problem

          Problem

          Errors occur on the Bulk Evaluation Master Data Handler. Currently, this runs for ALL rulesets, even those that do not utilise PM or that have invalid or inaccessible api endpoints.

           Solution

          Solution

          Since this Master Data is only used during specific periods, we don't need to fetch it daily. Will now only trigger when requested ad hoc from the front end. Disabled the schedule on all rulesets for EvaluationMasterData import (import type 13). Improved handling of the bulk evaluation master data handler. Note that technically this will no longer be called technically since the schedule is disabled, but it will still addedinclude the improvements in case the schedule is re-enabled from the front end.

          Implemented paging within master data (#149206)

          Problem

            No paging exists on the Master Data Items page 

             

            Solution

              Implemented paging on the table for master data items

               


              Identity and Authorisation

              Adjusted user registration flow email confirmation (#148426)

              Problem

              Problem

              Business rule flow is missing. Once a user submits a user request and the ruleset has confirmed registrations, a userthe request is loggedlogged, whereand the manager can go to accept or reject this.it. The flow missed a part where it first needs to send a confirmation email to the newly created registration to confirm the email address, then only submit for the manager to accept or reject the request. There was a restriction that an email confirmation code could only be generated from an identity profile that was created 

               Solution

              Solution

              Implemented new properties to indicate which part of creation it needs to do with CreateUser in Identity and within Account. Once a user registers, it sends a new email template with the email confirmation link. Once the user has confirmed the link, only then are the original templates triggered to the manager and user for submission. The manager can only then accept or reject the request; it will see the dependency that awaits email confirmation. Once accepted, the account user is created; if rejected, the identity user is then deleted


              People Groups

              Fix for duplicate insert into MaterialisedPeopleGroupUserMatches and grouped condition calculation fix (#149213 & #148485)

              Problem

                Full people group refresh failing due to duplicate insert into MaterialisedPeopleGroupUserMatches. It looks like this is due to not having a distinct on the Job people group condition type, which may occur when the condition resolves the same job profile ID twice Grouped conditions calculated incorrectly - it required a user to satisfy ALL configured grouped conditions, meaning it worked like an AND, instead of working like an OR

                 

                Solution

                  Ensure distinct is used, and also use an edited date variable to ensure the distinct works correctly. Ensure that a user forms part of a people group when they satisfy ANY of the configured grouped conditions. Also, a bit of cleanup. There was a dangling RN = 1 for the latest appointments, which is not required. Also changed LatestAppointments to be CurrentAppointments to be more semantically correct

                   


                  Learning Management

                  Remove Duplicates and add unique indexes to Marks (#147342)

                  Problem

                    The system was allowing duplicate mark entries for the same student, subject, and mark type - meaning a student could have two "final marks" for the same class, causing data inconsistencies and incorrect reporting.

                     

                    Solution

                      The database was updated to enforce a rule that prevents duplicates from being saved in the future. Before applying that rule, any existing duplicate entries were cleaned up automatically (keeping the most recently edited one per student). A safety backup of the marks' data was also taken before any changes were made

                       


                      Event Scheduler

                      Fixing the save error caused by disabled form fields (#148927)

                      Problem

                        User is unable to save the newly created or edited virtual tour. This was due to language being disabled on the form when submitting, and disabled form fields are not added to the payload submitted. After the tour is saved, the 'View Tour' button is still missing

                         

                        Solution

                          Toggle the disabled property to false when clicking the save button. Toggle back to disabled after callback. Adding product code for event scheduling in the spa controller to ensure that the user guide can find the existing virtual tour on the event scheduling page

                           

                          Bug fixes on event details page (#149130, #149109 & 149107)

                          Problem

                            The global flatpickr date input handler still did not properly set the values when entering manually and when selecting via the date picker. The first session was selected only when there was a single session An error appears when the system loads the Attendance Register

                             

                            Solution

                              Updated the global flatpickr date input handler so both manual typing and date picker selection write the parsed ISO value back to the original input and notify the owning framework correctly. For React-owned inputs, the handler now calls the React change/input callback directly after syncing the real input value. For normal jQuery/plain JavaScript inputs, it continues to dispatch standard input and change events. Also ensured the shared Day.js setup is loaded before datepickers, so custom display formats continue to parse correctly. Ensure that the first session is always selected, regardless of the number of sessions Solution had a syntax error with regards to a CTE (WITH), ensure CTE statement begins with a semi-colon ';'