Skip to main content

Version 9.1.220 (13 April 2026)

Event Scheduling

Make the loading indicator smoother (#145136)

Problem

  • On the Event Scheduling Calendar view, clicking an Event flashes the right-side modal. This was due to the loading indicator abruptly displaying and hiding instead of transitioning. 

Solution

  • Add a transition effect to the indicator, making its hiding and showing appear much smoother

Make event detail event clicking smoother (#145136)

Problem

  • When events are open on the right side of the calendar, and you click on other events, the screen flashes.

 

Solution

  • Cache event details so that they do not empty when loading the new details, which causes the empty details to be briefly rendered before rendering the new details, which results in the flashing.


Data Warehouse

Adjustments made within LearningManagementReport_ETL (#144417)

Problem

  • The Calculation for Pass or Fail did not calculate 100% for grades 10-12 due to missing subjects within the calculation
  • The latest ModeratedMarks were not updated within lmStudentSubjects 

 

Solution

  • Updated Step to calculate Pass or Fail for Grade 10-12 within lmTermResults by including two new subjects
  • Resolved issue where the 7 hours ago latest Moderated or Calculated Marks were not used within step "Update fields CalculatedMark and ModeratedMark within #ResultsTI" for StudentSubjects

Added the latest V9 DWH Package to the repo (#143176)

Problem

  • The latest V9 DWH Package needs to be added to the repo as backup after Live deployment

 

Solution

  • Added the latest V9 DWH Package to the repo

Removed Previous SQL Scripts that are not part of the Code Review Folder Structure (#145986)

Problem

  • There are previous SQL files that were used for the Code Review process before the new folder structure was added 

 

Solution

  • Removed Previous SQL Scripts that are not part of the Code Review Folder Structure

Added field Completed within pdmContractPeriodActionPlans (#146665)

Problem

  • Field Completed is required within pdmContractPeriodActionPlans 

 

Solution

  • Added field Completed within pdmContractPeriodActionPlans

Updated Existing DataSourceFields (#146665)

Problem

  • Field Progress needs to be renamed to Milestones within ContractPeriodActionPlans

 

Solution

  • Update FieldAlias "Progress" to "Milestones" for DataSource ContractPeriodActionPlans

Added field "CustomField" within lmStudentSubjects (#144417)

Problem

  • Field CustomField is required within lmStudentSubjects 

 

Solution

  • Added field "CustomField" within lmStudentSubjects


Communication Portal

Resolved extra column on file attachment (#146678)

Problem

  • Extra icon on the left-hand side when sending an attachment

 

Solution

  • Remove column

Resolved New discussions not shown first (#147067)

Problem

  • Discussions with new messages are not prioritised at the top

 

Solution

  • Add an order clause to correct the new message shown at the top

Removed Flags (#146682)

Problem

  • Flag Icons render within the library differently and return Unicode when the text is extracted

 

Solution

  • Removed Flag Category of Emojis

 

Remove inappropriate icons (#146683)

Problem

  • Certain icons are references in the library that can be used, which is not ideal for children who have access to the icon picker

 

Solution

  • Remove the few icons that could be identified

Added new Reload icon button (#146674)

Problem

  • V8 does not allow signal-R updates currently, so no way to refresh the views or indicate when the user is on a page 

 

Solution

  • Add a new reload button to refresh the discussions

Added loading indicator for external clients using package (#146681)

Problem

  • When within external service, there is no loading indicator that gets triggered, as this is the V9 reference loaders. 

 

Solution

  • Add a loading component to be used for external clients using the package(v8)

Corrected business rule on subject type ignores global setting for discussions disabled (#146739)

Problem

  • When the global setting of discussions is disabled, a user can not open or create any discussion 

 

Solution

  • Add a business rule that if it is of a certain subject type, it is allowed to continue

Resolved Text overlapping tone colours on emojionearea (#146680)

Problem

  • In the Emojione area, the tone colours and the first heading overlap one another

 

Solution

  • Added override styling to add margin to the tones to push content down

Problem

  • V9 colour is calculated from the site CSS with the current background colour lightened. Which V8 does not have

 

Solution

  • Add a new Model check if step type is of type topic, add the v8 background colour


Ruleset Management

Nullify client secret in payroll connector (#146732)

Problem

  • Client secret available in plain text on inspection of payroll connectors

 

Solution

  • Nullify client secret

Correct actions and delete on the payroll connector list (#146588)

Problem

  • Cannot open the kebab menu on the payroll connector list 
  • Cannot delete a payroll connector
  • PowerShell scripts are too lengthy in the list

 

Solution

  • This pull request improves the user interface and user experience for the Ruleset integration management page in both the backend view and the frontend JavaScript. The changes focus on enhancing usability, accessibility, and code maintainability, particularly around dropdown menus, script display, and modal confirmation behaviour.

Themes drop-down not loading for system menu items (#146750)

Problem

  • When a menu item is selected, the page content is loaded dynamically. The themes dropdown was not being initialised as part of that process, so clicking it had no effect. 

 

Solution

  • Added code to explicitly initialise the themes dropdown each time the page content is loaded, so it responds correctly when clicked.


Job Management

Resolved people group org unit selection in tree view modal (#145942)

Problem

  • Org Unit on tree view modal not rendering, and incorrect nodes are shown; no implementation done for the nodes, incorrect logic on the page 

 

Solution

  • Added new logic and handler events to handle the different selections

Resolved ordering on appointment history (#145442)

Problem

  • When no order has been identified by defaults it is ordered by the first column, which overrides the foreach on initial data order

 

Solution

  • Add the calculation to order by the correct start data

Duplicate subordinates returning (#146924)

Problem

  • The API endpoint ListManagerSubordinatesSimplified returns duplicate subordinates

 

Solution

  • Added a distinct keyword to ensure unique subordinates are returning.

Add position activation functionality and future planning (#139481)

Problem

  • A position cannot be reactivated from the front-end. Future planning cannot be captured

 

Solution

  • Add active switches to the position list page 
  • Add a future planning section to position creation 
  • As a People Management Administrator, I want to be able to set the status of each position (e.g., Planned, Budgeted, Unapproved, Approved), so that I can generate categorised reports for better workforce planning.
  • As a People Management Administrator, I want to be able to define the validity period of each position (e.g., Valid From and Valid To), so that I can track position timelines.
  • Helper text must show that it is for future use as well.
  • As a People Management Administrator, I want to be able to specify the Minimum and Maximum Budget for each position, so that I can analyse and report on budget allocations across positions.
  • As a People Management Administrator, I want to see the newly entered data on the Job Management page, where all the positions are summarised.
  • Custom styles for the date filter have been added to the position HTML so as not to override the global CSS, which seems to be an issue only on these pages

ListOrgUsers endpoint returns future and terminated employees (#146921)

Problem

  • The ListOrgUsers endpoint returns terminated or future appointments

 

Solution

  • Added the new IsCurrentPosition check to filter out terminated and future appointments.


Identity and Authorisation

Resolved Disclaimers (#145552)

Problem

  • An incorrect logic check existed for the ruleset disclaimer before pulling the job profile disclaimer details. Redirect occurring from disclaimers back to the login screen 

 

Solution

  • Resolved if check, Changed logic checks to ensure context items are added if accepted and not based on their render mode from Razor if conditions
  • Added a redirect check to redirect to the disclaimer page again instead of all the way back to login

Cleanup expired ID tokens (#144999)

Problem

  • Expired tokens in OpenIddictTokens will become a performance problem as an index was removed during the .NET 10 upgrade

 

Solution

  • Create a quartz job to remove expired tokens at 4 am every day


Content Management

Centralise decryption of NextCloud credentials (#147083)

Problem

  • The decryption feature is missing in the OCI Share link development
  • The integration setup is confusing because it sometimes includes an encrypted client secret while at other times it does not.

 

Solution

  • Implemented the missing decryption feature
  • Ensured that the encrypted data is always stored in a secret and that a public method is used for decryption.

Next cloud not working due to missing config (#146727)

Problem

  • The missing configuration is causing the next cloud to break

 

Solution

  • Add encryption keys to the Content management appsettings

 

Upload of and handling of evidence using the workplace assessment app (#143882)

Problem

  • There is currently no way to upload evidence on a question, e.g., a short video or photo

 

Solution

  • If you are online, sync starts in the background and will even continue when the app is closed
  • Compress evidence using the V9 compression service, and store compressed evidence in the local entity
  • Sync back to V8 once compressed evidence is ready, prompt the user to Submit
  • Send compressed content to the content service and store the ContentId against answers
  • On V8, when the submit method is called, send ContentId in AssessmentAttemptDTO with the Questions object - one to many
  • If the user has an access token for V9, use this to access the content; else, use stored credentials for api user to upload content
  • On People Management > Assessment List, if evidence is available to attempt per question, make the "Download evidence" link available


People Management

Use StartDateInCompany to calculate work anniversary (#146800)

Problem

  • On the people management dashboard, the work anniversary query currently uses the user's current position to determine the date, rather than the user's start date with the company

 

Solution

  • Return StartDateInCompany to PeopleController and use it for work anniversary mapping

Reporting Lines on Summary Page not underlined as a link (#145925)

Problem

  • Reporting lines have no on-hover effect (underline)
     

Solution

  • Move hover class anchor tag

When moving an org node to another parent node, correct the update of the calculated org flat path (#146379)

Problem

  • When moving an org node, the calculated org flat path is not updated

 

Solution

  • This pull request updates the UpdateOrgStructureParentCommandHandler to improve how changes to the organisational structure are handled. The main change is the addition of logic to update the flattened organisational path after a parent update, ensuring data consistency across related structures.


Notifications

Newly appointed users are getting work anniversary notifications by only returning records of tenure greater than 0 (#146919)

Problem

  • Work Anniversaries email is being sent on the appointment date to new users 

 

Solution

  • Resolve the problem of newly appointed users getting work anniversary notifications by only returning records of tenure greater than 0

Add a line break before the V9 footer to allow space between the email body (#146666)

Problem

  • The V9 build in the footer sometimes touches the normal email body

 

Solution

  • Add a line break before the V9 footer to allow space between the email body and the footer.


Imports

Ruleset Culture never sent to v8 for schema setup (#134516)

Problem

  • The ruleset's culture is never sent to the v8 schema setup endpoint; this results in en-GB always being set in V8. 

 

Solution

  • Added the culture to the API request for v8.

Correct the delta check for optional staging for the import data (#145548)

Problem

  • When the appointment details have not changed, but the other personal details have changed, the user data is not staged for import

 

Solution

  • Move the appointment to a conditional OR with the other personal details.

Ensuring that the link to download the User Validation Report is only shown for User imports and PaySpace Pull imports. (#146598)

 

Solution

  • Hiding the User Validation Report download link for all reports except the select few reports for which it works.


Tenant Management

Use the system Close Date to change the colour to Red (#146313)

Problem

  • The system does not use the system's Close Date to change the colour to Red

 

Solution

  • Update expiry colour display condition to only display on the close date within 1 month

 

As a Consultant or Tenant Admin, I want the Expiry Date to be set at the end of the following month by default (#144228)

Problem

  • When creating a tenant, the expiry and system close date are not defaulted to the end of next month, and boolean values for lock system and display expiry messages are not defaulted to disabled. Page also not ordered by expiry date ascending.
     

Solution

  • Tenant creation defaults expiry and close date to the end of next month. Lock system and expiry messages display defaulted to disabled, and the page is ordered by expiry date ascending by default.

 

As a Tenant Administrator on R1, I want to have updates to the Update Expiry Date modal (#144227)

Problem

  • New expiry date should be the same as the current expiry date; buttons need to be added to quickly set dates (for end of this week, end of next week, etc); and a new toggle to be added to enable and disable subscription expiry and system close notifications
     

Solution

  • New expiry date defaulted to current expiry date; 4 buttons added to quickly set the dates; new toggle added which persists in the database against the subscription, and displays value; and then added logic to ensure when disabled, no system expiry or close notifications are sent


Performance Management

Inform user buttons are to create agreement for the selected period (#142925)

Problem

  • When you move past the review setup tabs at the top, the narrator will simply read the names of the buttons, which will be the same as the names of the tabs. This can be confusing.
     

Solution

  • Include the review setup component as a tab index

 

Inform the user that the page is loading when creating an agreement (#142928)

Problem

  • Loading is not verbally indicated by NVDA

 

Solution

  • Indicate loading when creating contract

 

Narrator mentions heading types and sizes (#142929)

Problem

  • NVDA reads heading levels (h4, h6)

 

Solution

  • Suppress the heading levels where possible

 

Unable to interact with my own agreement (#142931)

Problem

  • Tab navigation is not complete when tabbed past timelines

 

Solution

  • Update tab order and inclusion

 

Investigate the possibility of adding pauses between phrases (#142918)

Problem

  • It is sometimes a bit difficult to follow what the narrator is saying because they ramble off sentences without pausing. Please investigate if it is possible to add some pauses so that you can more easily distinguish between different concepts.

 

Solution

  • Create tab-list and add aria improvements to improve flow and readability. Also added accessibility sentence to translations.

 

Review setup container not selected (#142933)

Problem

  • The tablist forces you to tab through all items to progress.

 

Solution

  • Create an index for the entire tab list, and allow the user to press enter to tab through the list, or tab over the list

Screen flickers when moving the mouse pointer over the period label (#144966)

Problem

  • When hovering over some elements that have a popover, it continues to re-render and the popover flickers, as if its visibility state is constantly changed.

 

Solution

  • Memoised the popover properties so that it does not re-render when anything else on the dashboard changes.
  • Found an additional issue where for a fraction of a second, the popover is shown topleft of the viewport before it positions where it's supposed to. Enforced additional CSS onto the popover to attempt to prevent that from happening.

 


System Access

Encrypt secrets, passwords and tokens (#144974)

Problem

  • Secrets, passwords and tokens used in V9 are stored in clear text

 

Solution

  • Encrypt and decrypt secrets, passwords and tokens when records are stored and fetched from the database by means of changes to OnModelCreating


Technical

Syncfusion license key is visible in dev tools (#144510)

Problem

  • SyncFusion license key is available in clear text in the local storage view in dev tools.

 

Solution

  • Remove the license key from local storage; instead, make the lightweight api call. Also, encode the response, and decode it in code

 

Media compression process (#140481)

Problem

  • Currently media is uploaded in its original size to the system without being compressed or optimised

 

Solution

  • Implement a PowerShell script to
  • Compress uploaded media
  • Remove original large media
  • Keep track of what was compressed to compress once