Skip to main content

Version 9.1.185 (22 September 2025)

People Management

Copy from default ruleset button missing (#137232)

Problem

  • Default ruleset check is only done if an active tour exists for the ruleset, which should check regardless, and incorrectly orders and shows the virtual tour if the current ruleset has a virtual tour 

 

Solution

  • Correct the check to check for default, as well as correct the order by to determine the correct virtual tour to be displayed

 

Edit icon is hidden when the menu is open (#136900)

Issue 1:

Problem

  • The dropdown list is being rendered behind the padding of the section, which makes the last item not clickable when a section has content

 

Solution

  • Add a z-index to elevate the list items to be selected

 

Issue 2:

Problem

  • When the edit icon is clicked, a dropdown is given with options for a virtual tour or help page. The content pushes the view button when it is active 

 

Solution

  • Implement a change to alter the styling to be displayed beneath the icon, and the width is adjusted

 

Issue 3:

Problem

  • When the icon is clicked to edit a virtual tour, the dropdown is displayed over the pencil icon,

 

Solution

  • Implement styling so that the list of selections is on the left if the icon is present, as well as change the toggle of the icon click

 

Delete Modal stays on screen after deleting a slide (#136902)

Issue 1:

Problem

  • When a slide gets deleted, it gets removed, and the delete modal fade gets toggled, as well as the delete modal closes 

 

Solution

  • Because the hide already removes the fade, it gets toggled back, and the toggle fade as this is handled within the modal close

 

Issue 2:

Problem

  • When a slide is deleted, the delete modal does not disappear

 

Solution

  • Add a change to hide the delete modal once deleted

 

[People Management][v8 Menu Items] Extra space at the bottom (#136704)

Problem

  • When opening a v8 menu item, the right-hand frame is much smaller than the page, leaving some blank space at the bottom

 

Solution

  • Set the iframe height to the viewport height and subtract the height of all the other page elements besides the iframe itself.

 

Card styling issue when the user has a long Name and a long Job Title (#136407)

Problem

  • On certain test cases, the Job Title does not fill up the rest of the text lines left over by the Name.

 

Solution

  • Rather, use rounding instead of ceiling to more accurately calculate the number of lines occupied by the Name. Allocate 20 characters per line occupied by the title to more accurately determine the max text length used by the Job Title.

 

Labels showing after click (#136901)

Problem

  • When a slide is reordered, the tool tip is still being displayed, as the mouse over technically never left the button to hide the tooltip 

 

Solution

  • Implement a change to hide the tooltip when the button has been clicked

 

An error occurred after toggling the Do not display again toggle (#136908)

Problem

  • When a user toggles the do not show again for a virtual tour, an exception occurs if that virtual tour is displayed from the default ruleset

 

Solution

  • Implement a change that if the virtual tour does not exist for the user's ruleset, fallback to the default ruleset virtual tour and implement user selection to not show again

 

Card styling issue when the user has a long Name and a long Job Title (#136407)

Problem

  • Long names and job titles can cause the card content to overflow.
  • Requested changes:
    • Increase the number of lines to 4. 
    • Decrease the margin and padding within the user card to accommodate the additional line.
    • Visually, the name is more important, so it should be allowed more lines than the job title. 
    • Allow the banner to overlay some of the avatar.
    • Make the Kudos widget button smaller. 

 

Solution

  • Implemented CSS line clamping to limit the number of lines occupied by the name and title text.
  • Implemented useLayoutEffect to dynamically calculate the number of lines occupied by the name and allocate the remainder of the lines left to the title, whilst ensuring the title always gets at least one line.
  • Decrease margin and padding to allow the number of lines to be increased from 3 to 4.
  • Increase the zIndex of the banner to allow the banner to overlay the avatar, to achieve additional space.
  • Made the kudos widget button a bit smaller.

 

Copy button enabled when no Virtual Tours on RS1 (#136904)

Problem

  • New implementation allows a ruleset to copy from the default ruleset

 

Solution

  • Add a check to only allow copying if the default ruleset has a virtual tour of the selection details

 

Move text to the side of the filters (#135481)

Problem

  • Fixed global search input text not clearing when clearing filters from help text

 

Solution

  • Accessed the global clear filter button to clear filters instead of manually clearing.

 

Copy button enabled when no Virtual Tours on RS1 (#136904)

Problem

  • New implementation allows a ruleset to copy from the default ruleset

 

Solution

  • Add a check to only allow copying if the default ruleset has a virtual tour of the selection details

 


Performance Management

Description mapping pill not displayed (#136765)

Problem

  • When a label mapping is returned for the dashboard widget, the colour and icon was not included 

 

Solution

  • Include the colour and icon for the label within the widget

 

Strange behaviour when QA unapproves agreement (#130380)

Problem

  • When Send To QA is optional, and the moderations have been fully approved after a QA step. When the QA unapproves, it moves the contract back to the moderator. It should remain for the QA to approve again. 

 

Solution

  • Add a parameter to identify when it should send the contract back to the QA or the Moderator when it gets unapproved. Fixed an additional bug where the QA button is enabled on the search screen after the contract moderation has already been approved.

 

Unable to open agreement when there are no mappings (#137228)

Problem

  • When a user opens a contract, no mappings are loaded, which causes the contract to not load

 

Solution

  • Add a check to default to 0 if no mappings exist

 

PM Contract import changes (#135616)

Issue 1:

Problem

  • When a contract/agreement is imported with a weight over a section, the perspectives are not being retrieved, as a check exists for the weight. 

 

Solution

  • Add a change that if the section allows perspectives to find the perspective ID needed for linking

 

Issue 2:

Problem

  • When Templates are imported, no validation check on the client side is done for the KPI Items over section totalling to 100%, as well as within the import validate weights check, ignoring the level 2 checks, should the value be true.

 

Solution

  • Implement the logic within the client side to validate the weights depending on the section's bool value if the setting is activated within that review setup, as well as the check within the backend logic to ignore level 2 weights should the setting be active. 

 

Description mapping pill not displayed (#136765)

Problem

  • On the dashboard widget, the score label mapping is not shown because the wrong review year setup was calculated for the user, as no mapping was found, and no check exists for null 

 

Solution

  • Correct the change to get the correct review year setup for the widget, and also pass the correct field to calculate the label mapping

 

Error message with Check-Ins (#135977)

Problem

  • When calling the ListContractPeriodCheckInsLeveled endpoint for an Action Plan, an error: InvalidOperationException: Sequence contains no elements, was returned. 

 

Solution

  • Since Action Plans can't have a check-in, an empty response is returned. 

 

Score gauges shown while rating (#136760)

Problem

  • When no rating has been made for the user contract, the old dial still displays in the banner header

 

Solution

  • Add a change to check if any mappings exist for the component to render no rating identified

 

Able to add a mapping that exceeds the maximum rating for that year (#136658)

Problem

  • When a new row is added to the mapping, the max range is calculated based on the previous max range, which can exceed the review year max rating, as well as the errors now showing correct translation 

 

Solution

  • Implement a change to show a red border when the new max range exceeds the max rating, as well as expand the translation to show correctly according to the review year name max rating

 

Unable to delete a mapping section (#136928)

Problem

Score label mapping ID is an incorrect name when parsing ID to delete the mapping 

 

Solution

Correct name to pass the correct ID value for deletion

 

Mapping sections naming convention not correct (#136929)

Problem

  • When a new mapping is added, the name is calculated from the index value, which is incremented by 1, but the index value is a string which it can not be added and can only be concatenated with the values 

 

Solution

  • Parse the index to an int to apply addition

 

Character entity displayed in title bar (#136649)

Problem

  • The title of the user contract is not sanitised and has HTML encoding

 

Solution

  • Correct within the navbar that updated the title to sanitise the text content before setting

 

Able to create mapping for agreements where scores and weights are hidden (#136535)

Problem

  • Section Score label mappings can be used when the hide scores setting is enabled in the review setup, which is incorrect according to the business rule 

 

Solution

  • Add a change to not allow a user to make use of score mappings when the hide score setting has been enabled

 

Description mappings not shown on View/Print screen (#136763)

Problem

  • Score mappings are displayed based on the review period selected, as in this case, a null was passed in for final rating in which for this case it needed to be for a review item

 

Solution

  • Correct the review item ID to be passed into

 

Error when saving while not all fields are populated (#136646)

Problem

  • When a new score mapping item gets submitted with empty values, the form throws an exception instead of highlighting the values

 

Solution

  • Add validation so that the boxes get validated on required fields for the user to enter, and add a default colour inthe  backend as well to default to

 

Overall scores no longer indicate when they have been calibrated (#136756)

Problem

  • Text under the overall final score is not aligned 

 

Solution

  • Make the width of the div 100, otherwise the text-centre can not be applied to centre the text

 

 "No Rating yet" displayed in a gauge (#136766)

Problem

  • No rating on the dashboard widget was incorrectly displayed and cramped because of the column size

 

Solution

  • Correct check to increase column size, should there be a mapping

 

Score gauges are shown when the final score has been calibrated (#136761)

Problem

  • When the score dials are loaded at the top of the final rating, an undefined value is entered to get the correct score label mapping 

 

Solution

  • Correct the code to pass in the review item ID needed to calculate the final score label mapping

 

Dials are still shown if agreement hasn't been started or scored yet (#136659)

Problem

  • The min range has been changed to start at 0.01, which means that a label mapping will not be found should the score not be rated yet, resulting in showing the dial instead of no rating yet with label mapping

 

Solution

  • Implement a change to pass a check to showcase if there are mappings present, and if so, make the calculation to show no rating or the label mapping

 

Score gauges shown while rating (#136760)

Problem

  • When a user rates on a contract, the scores are updated through the slices, but there is no update indication for the label mapping

 

Solution

  • Implement a change to calculate the label mapping from the updated score through the slice, as well as enhance the dapper method, as the min range is now saved

 

Overall scores no longer indicate when they have been moderated (#136757)

Problem

  • When a contract has been moderated/calibrated, and a mapping exists, it does not show the mapping text

 

Solution

  • Add the text to be displayed below the mapping

 

Able to add a mapping that exceeds the maximum rating for that year (#136658)

Problem

  • When a new blank score mapping is added, there is no join to get the max rating needed, and when the value is entered, there is no value to match. 

 

Solution

  • Split the query to retrieve the max rating separately, so that if there is none, it still returns the max rating, as well as check to match for the max rating

 

Sanitise text to display special characters correctly (#136514)

Problem

  • Text is displayed that is not sanitised, which shows encoding values.

 

Solution

  • Make use of the newly added tag helper to sanitise text

 

Heading on page should be made an info note (#136530)

Problem

  • A heading message is indicated at the top

 

Solution

  • Change to be an alert info as the message is an indication to the user to notify them

 

Scroll down to fit the icon list on the screen (#136653)

Problem

  • When the icon is clicked, it initialises the icon picker at the bottom of the page, but it does not flip to show above the icon

 

Solution

  • Implement a fix to wait for icons to be rendered to have the content height, and then recalculate the height to flip over or not

 

Unable to add mapping for Final Review on Annual setup (#136655)

Problem

  • A validation is done to not allow adding more mappings than review years, but the count does not take the overall score into consideration

 

Solution

  • Add count to the total review items for validation for the overall score

 

Heading on page should be made an info note (#136531)

Problem

  • When the content is first loaded, no colour is defined for the label and icon, as this is handled when the icon changes or the text changes. 

 

Solution

  • Start text and icon on white against the colour picked

 

Display decimals when you click away from the rating field (#136644)

Problem

  • When a value, for example '2', is entered, it does not show the decimal value as .00 

 

Solution

  • Add a change to enforce a fixed value with the correct decimal place

 

Duplicate images (#136654)

Problem

  • Some icons have the same icon but have different values

 

Solution

  • Remove duplicate icons

 

Description mappings not shown on View/Print screen (#136763)

Problem

  • When 2 label mappings are displayed on top of one another, there is no space between

 

Solution

  • Add spacing between the two mappings

 


Data Warehouse

Term 3 report cards (#136081)

Problem

  • An extra unrounded score field needs to be added within lmStudentSubjects

 

Solution

  • Added new field UnroundedScore within lmStudentSubjects

 

Signify Performance Management Report (#136876)

Problem

  • New fields ApprovedOverallFinalScorePercentage and UnapprovedOverallFinalScorePercentage are required within pdmContracts

 

Solution

  • Added new fields ApprovedOverallFinalScorePercentage and UnapprovedOverallFinalScorePercentage within pdmContracts

 

Daily Server Monitoring Checks 2025 (#125159)

Problem

  • The script did return deleted accDisciplinaryActions as missing fields 

 

Solution

  • Updated where clause for accDisciplinaryActions to exclude deleted entries within script C_03549_99999_monGenerateDWHDataIntegrityReport

 

Add the mapping fields in the DWH (#133259)

Problem

  • The Score Rating Descriptions have not been updated to tables pdmContracts and pdmContractPeriods

 

Solution

  • Resolved the issue by including the new fields within the Insert Into Tables Step

 

Daily Server Monitoring Checks 2025 (#125159)

Problem

  • The source script for lmEmployeeTrainingRequirementsMatrix requires @ReferenceDate for performance improvement

 

Solution

  • Added @ReferenceDate within lmEmployeeTrainingRequirementsMatrix Source Script

 

Add the mapping fields in the DWH (#133259) 

Problem

  • Score Rating Description fields need to be added to the DWH

 

Solution

  • Added Score Rating Descriptions within pdmContracts and pdmContractPeriods

 


Notifications

UTC not correctly calculated on scheduled run time (#130537)

Problem

  • Schedule runtime displays incorrectly after saving, always adding the timezone offset every time it is saved. 
  • When saving the schedule runtime, the date and time are not saved as UTC in the database, but get converted back to Local time somewhere in the process. 

 

Solution

  • Send the datetime to the service as Local Time spoofed as UTC, and redo the UTC conversion on the service side.
  • This is not an ideal approach, but I want to ensure that the traffic that gets sent to the Notification Api is correct and no conversion is lost, and only do the UTC conversion there.

 

Add API call to retrieve emails (#134239)

Problem

  • A api is not available to retrieve the sent logs.
  • The body of an email is not included in the export of the logs on the front end 

 

Solution

  • Add a calculated notification body in stats export on the front-end and add an API call for direct access to the notification logs.

 


Identity

Logged in with English (SA) language displayed is Afrikaans (#137127)

Problem

  • When you unpublish the active language and you log out again, the selected language is incorrectly determined in the language drop-down, due to the cached language that is no longer available in the list of available languages 

 

Solution

  • Ensure that the cached language (from cookie) on identity is part of the list of available languages; otherwise, reload and fallback to the default language of the ruleset.

 


HR Processes

Error shown when Process is set to use Fallback, which has not been set up on Global Workflow Fallback Configuration (#136216)

Problem

  • When a fallback type was previously selected and that option is no longer available, an empty option was displayed as the fallback type. 

 

Solution

  • When no fallback types are available, add a not application default option, so that the drop-down does not display an empty option.

 

Fall back approver's already approved level becomes enabled again, even after already having approved (#136651)

Problem

  • Fall back approver's already approved level becomes enabled again, even after already having approved

 

Solution

  • Ensure that a level cannot be approved or declined if already approved or declined.

 


Learning Management

Add stamps when marking an assignment (#136383)

Problem

  • When placing the custom stamp annotation, the tool automatically deselects. The requirement is to have the tool kept enabled until the user selects another option or closes the annotation toolbar. 

 

Solution

  • Added handling to re-enable the selected custom stamp after placing the annotation.

 

Wrong date being shown on certain stamps (#135993)

Problem

  • Syncfusion does not support the 'tt' format identifier - only used in en-US format.

 

Solution

  • Rather, remove 'tt' to ensure the date is properly formatted.

 

Wrong date being shown on certain stamps (#135993)

Problem

  • Built-in stamps displayed the author as "guest", and the date format was incorrect - not using the format from the current user. 

 

Solution

  • Ensure that the stamp author displays the username of the current user and uses the date format of the user.

 

Add stamps when marking an assignment (#136383)
  • New development to add custom stamps to the online marking PDF annotation. Also modified the confirmation modal to now show the message as well as the custom stamps used.

 


Imports

Additional Placeholders on Auto-Doc (#135690)

Problem

  • The organisational fields are not named according to the document template placeholders and fail to map 

 

Solution

  • This pull request updates the user query logic in `UserQueries.cs` to expand the set of user and organisational data being selected and refactor how results are handled.
  • The main changes are focused on improving the detail and structure of the query output, making it easier to retrieve comprehensive user and organisational hierarchy information. 

 

Unspecified error when clicking on the Request button in quick succession (#131848) 

Problem

  • Unspecified error when clicking on the Request button in quick succession 

 

Solution

  • This happened due to the restriction on the v8 side to allow requests for a certain type only every X minutes. Made some enhancements on the HttpClientWrapper to return the raw response when a request fails, so that we can better handle the above scenario and display the proper message instead of a general failure message.

 

Clicking the request tab in quick succession displays 'Completed with Errors' status log entry (#131849)

Problem

  • Clicking the request tab in quick succession displays a 'Completed with Errors' status log entry 

 

Solution

  • Instead of simply displaying the status of the request in the error message, display the raw response too, which is more detailed.

 

Exported filename to be more descriptive (#132575)

Problem

  • Exported filename to be more descriptive. 

 

Solution

  • Make the files more descriptive by including the type in the name. 

 

Updating the username based on the Payspace Payroll ID (#136736)

Problem

  • When importing a user with a new username from Payspace, a new user is created when the external/ payroll ID setting is active 

 

Solution

  • This pull request extends the user import and update functionality to support matching users by Payroll ID in addition to existing identifiers like Username, Employee Code, Id Number, and External ID.
  • It introduces a new `BasicUserPreviewPayroll` model to include Payroll ID in user queries and updates the relevant methods and queries to handle this new identifier.
  • The changes ensure that Payroll ID is considered when finding existing users, and add appropriate error handling for duplicate Payroll IDs.
    • User import and update enhancements: 
      • Updated the user matching logic in `ImportUsersCommandHandler` to include Payroll ID as an identifier, allowing users to be found and updated by Payroll ID. Added checks for uniqueness and duplicates in both the database and the import file, with clear error messages.
      • Replaced usages of `BasicUserPreview` with the new `BasicUserPreviewPayroll` type throughout the user update process to support Payroll ID.
    • Query and model updates:
      • Modified the `IUserQueries` interface and its implementation to accept and process Payroll ID as part of the user identifier tuple, and to return `BasicUserPreviewPayroll` objects.
      • Updated the SQL query in `UserQueries` to include Payroll ID in the selection and filtering logic, converting string Payroll IDs to integers for database comparison.
      • Added the `BasicUserPreviewPayroll` record to the user view models to represent users with Payroll ID information.

 


System Access

Missing Employee (#135967)

Problem

  • When the employee number has a varying case or the encryption key in V8 and V9's case differs, the security key is invalid 

 

Solution

  • This pull request makes a minor update to the `GenerateTimeBasedSecurityKey` method in `StringHelper.cs`.
  • The change ensures that the combined string used for generating the security key is always in lowercase, which helps maintain consistency and avoid case-sensitivity issues in key generation. 

 


Content Management

Bulk signing does not start (#136623)

Problem

  • When a new document request is created, the content ID is set to null, and a new method was added to set the content ID 

 

Solution

  • When the entity is added, first set the content ID

 


Ruleset Management

New tag only shown for one of the two newly created rulesets (#136328)

Problem

  • Newly created rulesets are missing the "new" tag, which is caused by the ruleset lifetime duration being incorrectly calculated using the CreatedDate in local time and UTC. 

 

Solution

  • Move the ruleset label status calculation logic from the view to the server side. Additionally, log information about rulesets that are created on the current day, to debug the issue further if the attempted bugfix does not fix it.

 

Admins don't have access to the required Integrations screens (#131940)

Problem

  • Tenant admins didn't have some permissions that ruleset admins have

 

Solution

  • Grant them permissions

 

Date Pickers for Subject & Cycles is Warped (#135981)

Problem

  • Some date fields were warped due to incorrect styling on date inputs. Solution: Ensure correct styling. 135930 Problem: Date pickers on ReportBuilder still do not format dates correctly. 

 

Solution

  • Ensure the fields are correctly formatted by storing formats in localStorage instead of session, and other tweaks to the global format setup and handling.

 

Termination Date placeholder not shown in user's preferred language (#136400)

Problem

  • Termination date not formatted properly on auto doc.

 

Solution

  • All auto doc placeholder values are read as strings, and sometimes the date string could not be parsed as a date, so it could not be formatted. Make the general string-to-date parsing more robust by supporting more formats. 

 

Other

  • Fix the incorrect jQuery locale file resolution by making use of the PathBase in base layout 
  • Make the jquery locale file resolution more robust
  • Implement the small suggestion by Mechac to display the Course filter select on the event scheduling list view page with a placeholder

 

Admins don't have access to the required Integrations screens (#131940)

Problem

  • Admins do not have access to Integrations

 

Solution

  • General: 
    • Org Admin, People Admin
  • Content Server:
    • People Admin, Performance Admin, Learning Admin
  • Chat Bots
    • Super admins only
  • Push Bulk V8 Additional Imports:
    • People Admin, Job Profiler Admin, Org Admin
  • Pull Bulk V8 Additional Imports:
    • PM Admin, Learning Admin, Event Scheduling Administrator
  • API Gateway: 
    • All Admins
 
  • Payroll:
    • Only super admins and People Admins
Date Pickers for Subject & Cycles is Warped (#135981)

Problem

  • Certain instances where date input values were not properly formatted due to the 'change' method not being triggered when programmatically setting the value using $dateInput.val()

 

Solution

  • Globally override the jQuery val() method, ensuring that it won't affect existing usages of val and also ensuring that it only works for date inputs and not for other inputs.

 


Auto Doc

Termination Date placeholder not shown in the user's preferred language (#136400)

Problem

  • Termination placeholders are not correctly identified as dates on the master, which then makes it impossible to correctly format according to user culture and timezone. 

 

Solution

  • Force the use of invariant culture to hopefully allow the date string to be parsed as a date.