Skip to main content

Version 9.1.201 (15 December 2025)

Job Management

Add UserId to JobInherentConstraint entity (#142647)

Problem

  • Unable to set the status of a competency job's inherent requirement if another user already has the requirement on the same job profile 

Solution

  • Updated the uniqueness constraints for the `JobCompetencyInherentRequirements` table to include the `UserId` field.
  • This change ensures that records are uniquely identified by a combination of `RulesetId`, `UserId`, `InherentRequirementsId`, and `JobProfileId`, rather than just by `RulesetId`, `InherentRequirementsId`, and `JobProfileId`.
  • This will help prevent duplicate entries for different users and improve data integrity in scenarios where multiple users interact with the same job competency requirements. 


Changed check to hide job profiler tabs to rather a ruleset id deny list (#142649)

Problem

Need to change check to hide job profiler tabs based on a ruleset id deny list instead of just an on and off toggle.

Solution

Changed check to hide job profiler tabs to rather a ruleset id deny list.

Resolve Collapse that did not work (#140555)

Problem

  • When selecting an org node, and expanding the tree view, the collapse button did not do anything as no handler or event was attached.

Solution

  • Create an event to collapse the tree nodes

Fix label not floating when adding reporting line (#141695)

Problem

  • Reporting line input labels were not floating when adding managers to them. The label and the input text then overlapped.

Solution

  • Changed the input from "disabled" to "read only", added inline CSS to prevent background from covering label when focusing.
  • Changing it to read only instead of disabled allows the user to focus the input, but still not manually type anything into it.
Resolved Image being added to Disclaimer and correction on placeholder event listener (#142369)

Problem

  • Event listener incorrect on placeholders being selected. When images needs to be uploaded it needs to be created with a link instead of base 64.

 

Solution

  • Added correct event listener, and implemented the image source file upload.

Learning Management

Make issue date editable on report cards (#142241)

Problem

  • Make the issue date editable on report cards. 

Solution

  • Make the issue date editable on report cards.

Profile Preview for Learning Displays "No Line Manager" for Users with Parent/Guardian Assigned (#142707)

Problem

  • Profile Preview for Learning Displays "No Line Manager" for Users with Parent/Guardian Assigned.

Solution

  • Profile preview for a learner now displays Primary P/G if assigned otherwise falls back to Secondary P/G otherwise defaults to No P/G assigned.

Enhance the attendance register and rectify the attendance history (#142606)

Problem

  • The attendance register does not accurately reflect students who were added to the class later.
  • Attendance history for students added to the class group after the initial register is recorded under the incorrect heading. 

Solution

  • An indicator text has been added beneath the student’s name, stating that attendance was not taken because the student was not part of the group at the time attendance was recorded.
  • A new ban icon has been introduced to indicate the dates and periods when the student has no recorded attendance.

Fixed Attendance Register Duplicate Record created for Learner (#142676)

Problem

  • Duplicate attendances are appearing for a learner for each absentee record.

Solution

  • Prevented duplicate attendances from appearing for a learner for each absentee record.

 

Add an absentee index and a foreign key to resolve the migration issues (#133721)

Problem

  • Migrations are not working due to a missing migration

 

Solution

  • Created a new migration to add an index on the UserId column in the Absentees table.

 


Problem

  • Need to add retrieval of absentee's details and listing of file names.

 

Solution

  • Added retrieval of absentee's details and listing of file names.

Ruleset Management

Prevent the search bar from refreshing the page (#141955)

Problem

  • The global search bar on the Ruleset Setup refreshes the page, which clears some of the text typed into the search bar.

Solution

  • Increased the debounce time to the standard 700ms to ensure user has ample time to type before the submit, which refreshes the page.

People Groups

Fix bug where people group users were not refreshed when people group id list empty (#139340)

Problem

  • Refreshing materialised people group users were refreshed from cached people groups only, resulting in the materialised people group users not being refreshed when not yet cached or cache busted.

Solution

  • Add a new flag, refresh All, which is used when all people groups are refreshed. If true and people group ids empty, it refreshed for people groups which are currently materialised. 

Performance Management

Show the file name and size when you edit the document (#139615)

Problem

  • Clear modal not clearing the changed input fields.

Solution

  • Correct the clearing of input values, Add change to view the file name and size once the edit document is clicked.

Resolved edit upload file (#142687)

Problem

  • Currently any file can be edited regardless of the level item.

Solution

  • Add change to only allow to edit a file when on level 3, contract or action plan item.

Rename Objective Settings word to only Objectives on PM Templates (#138767)

Problem

  • In PM templates a word reads as Objective settings, as request to change to Objectives

Solution

  • Rename the templates to Objectives

Resolved dropdown enabled when review setup not selected (#141788)

Problem

  • Change was made to add disabled and loading indicators to dropdown values, but when nothing has loaded nor selected review period selection is enabled even if review setup has not been selected

Solution

  • Add change check to see if review setup has been selected

Ensure selected review setup tab is maintained when navigating back to dashboard from contract (#140525)

Problem

  • When user is on a specific Review Setup tab or on a specific additional contract tab, when navigating to the contact and back to the dashboard the previous selection was lost and it did not set the correct tab as selected nor load the correct review year setup details.

Solution

  • Changed the tab type / identifier to be combination of the ReviewSetupId and User ContractId if applicable. When clicked store that to session. On load of dashboard read selected tab / review setup based on session value. On fresh visit reviewYearId is null then remove session value to reset to first year first tab. On year change reset session to revert to first tab,

 

Implemented loading indicators on moderation search (#141788)

Problem

  • When dropdown items are selected the next list is loaded based on selection, when a user navigates and selects quickly the list could seem empty.

 

Solution

  • Add change to disable dropdown with a loading indicator while results are being loaded.

 


People Management

Fix incorrect URL used within the user registration email when approval process is active (#142659)

Problem

  • When registering a user while logged in on another service (i.e., the request does not originate from the Identity service), the URL in the registration confirmation email is resolved incorrectly. Specifically, it omits the /auth segment. This issue only occurs when the registration approval workflow is enabled. If the user self-registers directly (approval off), the URL is generated correctly.

Solution

  • Simplify the URL generation by using the configured Issuer value, which already includes the /auth segment, instead of relying on HttpContext and LinkGenerator. This ensures that the confirmation link is correct regardless of which service initiates the registration request.

Adjust table column styles for better readability in the absentee list (#142678)

Problem

  • The lack of word-wrapping causes the URL to push the content outside the modal, making it unreadable.

Solution

  • Enable word-wrapping on the front end and ensure that the Start Date and End Date do not wrap.

User registration fixes (#142639, 142601, 142600, 142659)

Problem (142600,142659) 

  • Registration Request Short URL goes to error page | Verify email address email contains a broken link

Solution

  • Fix the url contained within the emails

Problem (142601)

  • Declined requests do not show the reason for decline status

Solution

  • Always display the latest registration outcome, even if there were no prior requests
  • 142639 Center align the status column on the history tab

Hide initials when profile image is uploaded (#141440)

Problem

  • When uploading an profile image when no image is set, the user initials overlaps the profile image.

 

Solution

  • Added logic to hide the user initials and show the profile image preview when a new profile image is uploaded.
  • Also assigned an ID to the initials span for easier DOM manipulation.

 

Resolved duplicate managers being returned (#142577)

Problem

  • An event handler is attached on each load which causes duplication records to be added.

 

Solution

  • Add of handler to first remove before adding new.

 

 

Displayed selected banners first in main dashboard banner list  (#139225)

Problem

  • It is sometimes hard for a user to see what banners they selected if the list is very long.

 

Solution

  • Updated the ManageBannerModal component to sort the images array so that selected images appear first in the list. This improves the user experience by making selected banners more visible. Only two lines really differ. The rest is the TSX linter fixing indentation.

 

Kudos list on Firefox cut off by scrollbar (#139915)

Problem

  • Kudos list on KudosModal on Firefox cut off by scrollbar.

 

Solution

  • Added padding to the bottom of the Kudos list. 

 

Copy user profile image and avatar to new ruleset when user is transferred (#142521)

Problem

  • When user is transferred to new ruleset the users' profile image and avatar is not displayed.

 

Solution

  • Copy user profile image and avatar to new ruleset when user is transferred.

 

Add capturing of learner's absenteeism (#138889)

Problem

  • As a Parent/Guardian, I want to capture my Learner’s Absenteeism for the Teachers. Change 'Send Absent Notifications' to 'Send Absence Notifications' Change 'Log absence record' to 'Log absence record' Make the 'The system will notify the teacher' text small on the log absent modal. Remove capitals on the log absent modal. Hide learner records button. On the absent modal: add a counter to count the days between the from and to dates. Show snack message longer for overlapping date period.

 

Solution

  • Add capturing of learner's absenteeism. Changed 'Send Absent Notifications' to 'Send Absence Notifications' Changed 'Log absence record' to 'Log absence record' Made the 'The system will notify the teacher' text small on the log absent modal. Removed capitals on the log absent modal. Hide learner records button. On the absent modal: add a counter to count the days between the from and to dates. Show snack message longer for overlapping date period.

 

Improve appointment selection logic in user queries (#142233)

Problem

  • Future data appointments ignore the current appointment where retrieving the users latest appointment.

 

Solution

  • Refactored SQL queries to consistently select the most relevant appointment per user, preferring current appointments over future or past ones using ROW_NUMBER and date logic. Updated CTEs and join conditions to use this logic throughout the file, ensuring accurate data retrieval for user-related queries. Increased command timeout for long-running queries. Areas affected Users on Department Tab Users on My Company Tab Users on My Team Tab Users on People Groups Tab PM Ratings Evaluation PM list internal Evaluators Terminate Person Modal Event Scheduling List subordinates for booking Event Schedule Attendee View Event Schedule Attendees Individuals Event Scheduling GetDocuments Open event Schedule Calculate People group users.

 

Improve performance on simplified user export (#16727)

Problem

  • DB user query for export of 17k users runs for 2 mins.

 

Solution

  • Improve performance on DB query by evaluating disability once and not per row

Imports

Fix import schedules not executing consistently (#141825)

Problem

  • Schedules did not always execute consistently, especially for bigger intervals - larger than 4 hours.

Solution

  • Rather build a cron schedule from the schedule. + Add a section on the tools page which retrieves the cron schedules for the ruleset, so that we can verify if the jobs and triggers created correctly.

 

Fixes on dynamic import schedules (#136927)

Problem

  • Incorrect label when no schedules exist.

 

Solution

  • Fix label for no schedules.


Data Warehouse

Added new tables accUserRegistrationRequests and accUserRegistrationFields within PeopleManagement_ETL(#138087)

Problem

  • New Datasource accUserRegistrationRequests and accUserRegistrationFields needs to be added to the Datawarehouse

Solution

  • Added new table UserRegistrationRequests within PeopleManagement_ETL - Added new table UserRegistrationFields within PeopleManagement_ETL
Implemented Performance Improvements within DataDictionary_ETL (#140865)

Problem

  • Performance Improvements are required within SSIS Package LearningManagement_ETL due to the growth of system data and DWH Package.

Solution

  • Removed the DELETE and Truncate Steps and replaced it with Update and Inserts for the below Data Sources: - ddDataSourceSetups - ddDataSourceCategories - ddDataSources - ddDataSourceFields

Implemented Performance Improvements within TenantManagement_ETL (#140865)

Problem

  • Performance Improvements are required within SSIS Package TenantManagement_ETL due to the growth of system data and DWH Package.

Solution

  • Removed the DELETE and Truncate Steps and replaced it with Update and Inserts for the below Data Sources: - accTenants - accRulesets
Implemented Performance Improvements within LearningManagement_ETL (#140865)

Problem

  • Performance Improvements are required within SSIS Package LearningManagement_ETL due to the growth of system data and DWH Package

Solution

  • Removed the DELETE and Truncate Steps and replaced it with Update and Inserts for the below Data Sources: - lmEmployeeTrainingRequirementsMatrix - lmEventSchedules - lmEventScheduleAttendees - lmEventScheduleSessions - lmEventSchedulingCosts - lmEventScheduleAttendeeCosts

Disabled "Execute LearningManagementReport_ETL" within ExecuteSequence.dtsx (#140865)

 Problem

  • Package "LearningManagementReport_ETL" is being triggered within ExecuteSequence which is not needed since this package is run with it's own SQL Job.

Solution

  • Disabled "Execute LearningManagementReport_ETL" within ExecuteSequence.dtsx

Implemented Performance Improvements within JobProfiler_ETL (#140865)

Problem

  • Performance Improvements are required within SSIS Package JobProfiler_ETL due to the growth of system data and DWH Package 

Solution

  • Removed the DELETE and Truncate Steps and replaced it with Update and Inserts for the below Data Sources: - jpAppointments - jpEmploymentHistories - jpJobCompetencies - jpJobProfiles - jpOrganisationalNodes - jpPositionCompetencies - jpReportingLines - jpJobPositions - jpHRProcesses - jpCompetencyLibrary - jpUserCompetencies - jpHRProcessRequestData - jpCompetencyProficiencyLevelMappings - jpSecondaryAppointments - jpHRProcessRequestPivotData - jpUserPermissions - jpJobInherentRequirements - jpJobCompetencyInherentRequirements - jpJobCompetencyInherentRequirementsEvidences 2. Implemented performance improvements within jpReportingLines

Updated C_03549_99999_monGenerateDWHDataIntegrityReport (#125159)

Problem

  • It returned results for missing data for pdmReviewYears and pdmReviewYearPeopleGroupsSetup which should not be the case.

Solution

  • Updated script C_03549_99999_monGenerateDWHDataIntegrityReport.sql to not check for "Pilot" ReviewYears data.


Content Management

Implemented correction on signing of document update (#135989)

Problem

  • When the user returns to the Document list tab, the Archive Icon and Action Required are not immediately updated. Only after the page is refreshed, are these updated.

Solution

  • Add change to return data back to the notification through message so that page can update the row without page reload/refresh.

Selected banner/avatar was creating duplicate in selection list (#141439)

Problem

  • When selecting and saving a banner/avatar, a duplicate of the image is placed into the list of banners/avatars to select from.

Solution

  • Removed the logic that saved the current banner/avatar into the element that is meant for newly uploaded banners/avatars.

Notifications

Resolved new chat button position being calculated  (#137794) 

Problem

  • When there is no discussions the modal footer becomes the body, and stays the footer should there be discussions, because of this the new button container is being positioned incorrectly and needs to be adjusted.

Solution

  • Add change to render within the correct container and position to be adjustable on different screen sizes.

Resolved Template propagation (#138284)

Problem

  • When a template gets propagated the first time the propagation field is set to false.

Solution

  • Correct the initial constructor to allow for the propagation field to create with.



Translations

Resolved translation focus after search (#139399)

Problem

  • When typing in global search, once the debounce timeout occurs it refreshes the content based on search results, once reloaded it focus the first input which causes where a users is busy typing but next part they are typing in the input.

Solution

  • Added correction to the global search script to not focus to first input should the input have a containing value.

Identity and Authorisation

Resolved placeholder values not being replaced on inserted values (#142643)

Problem

  • When the job profile disclaimer loads it needs to replace the inserted values.

Solution

  • Add change to replace based on input.
Use registration corrected styling and dark text (#142670)

Problem

  • Custom label and select 2 which does not default to bootstrap 5 styling on select 2, and dark text colour missing

Solution

  • Correct the styling for select 2 component, and then add missing dark themes.

Resolved logic factor for either Id Number of Passport as username (#142499)

Problem

  • Logic factor needed on required field as well as it needs a specific setting case.

 

Solution

  • Correct the logic split out to be used in both cases.

Event Scheduling

Clear local people groups when changing who can book type to everyone (#142055)

Problem

  • Who Can Book" page does not clear content when moving between show on Calendar Options.

Solution

  • Clear local people groups when changing who can book type to everyone.

 


Exports

Problem

  • PathBase appsetting invalid and does not exist, 

 

Solution

  • Make correction to use new service to calculate the mvc base path with extension for export.