Skip to main content

Version 9.1.178 (31 August 2025)

People Management

Employee appointment/termination error (#134571)

Issue 1

Problem

  • Sometimes the Were Sorry Screen is shown on the termination of people 

Solution

  • Ensure that the backend handles concurrent processes better

Issue 2

Problem

  • After terminating a user and then terminating another user thereafter, a `We're Sorry` view is returned due to an authentication issue 

Solution

  • Updated backend logic to fix the fault causing the authentication

Issue 3

Problem

  • After terminating a user, a `We're Sorry` view is returned due to an authentication issue 

Solution

  • Updated backend logic to fix the fault causing the authentication issue

Add an audit export on the user's profile for sign-ins per day (#133325)
  • Add an audit export on the user's profile to export a report for a specific successful sign-in day 
    • The purpose is to draw an audit report for a specific user on a date they were logged in to see what the user changed

IR data - report (#134913)

Problem

  • To display the user who uploaded a transgression file, the query makes use of the EditedUser; this is not ideal, as there could be instances where the edited user gets updated, which then loses the original uploader information. 

Solution

  • Added a new UploadedByUserId column to directly set the ID of the user who uploads the document on the transgession. Added/amended with a new column where required. Added additional null handling on the transgression file details select for incase the user id is 0 (should not happen, but added to prevent the modal from breaking).

[Kudos] Image enhancements (#133277)

Problem

  • User story requires me to style the Kudo badges in People Management.
  • The cursor needs to be changed to a pointer when hovering over Kudo badges.
  • When a Kudo is selected, it should stand out more, while the rest of the unselected Kudos need to be greyed out.

 

Solution

  • Cursor changed to pointer upon hovering over badges.
  • Box shadow and border around badge when selected is now more rounded.
  • Selecting a badge greys out all over badges that are not selected.

[People Management] Own record should be visible (#133381)

Problem

  • The user card of the user currently logged in is not displayed in the "My Department" and "My Company" tabs of the people management page.

 

Solution

  • Updated search parameters to ensure the logged-in account is displayed in the "My Company" and "My Department" tabs in people management.

 

[People Management] Employee Card changes (#133385)

Problem

  • Improvements to the user cards had to be made. The name and business title will sometimes overlap with icons; this needed to be fixed.
  • The clickable area on the card is inconsistent and needed to be over the entire card.
  • The subordinate count bubble needed to be clickable on the TEAM and PEOPLE tabs.
  • On the other two tabs, the tooltip when hovering over the subordinate count bubble needed to display the message: "This item is only clickable in the 'MY TEAM' and 'MANAGE PEOPLE' tabs."
  • When clicking on the subordinate count bubble, the user needs to be routed to the Team Insights page.

 

Solution

  • The name and title text have been made smaller, and the name and title are now limited to 30 characters each.
  • The entire user card is now clickable instead of only the top half.
  • The subordinate count bubble now displays the right tooltip and is clickable on the correct tabs.
  • The user is successfully redirected to the Team Insights page when clicking on the subordinate count bubble.

 

[People Management] Panel shifting on v8 (#133406)

Problem

  • A panel in the Edit Person page was shifting when opening a V8 menu.

 

Solution

  • Overrode the styling that causes the issue when opening the V8 menu.

 

[People Management] Update filter view (#133383)
Problem
Solution

 


Imports

User Validation report not created (#135312)

Problem

  • When exporting the User Validation Report on the Payspace type import (which includes the failed to import data pulled from Payspace), the openxml export functionality breaks due to the dynamic objects returned.
  • For the failed import records, only the username and validation message are returned and not the rest of the staging data fields. 
  • These are expected when the OpenXmlService tries to build the sheet because the other imported records do have them. 

Solution

  • Ensure that the staged properties are always included, allowing the open xml export to correctly get the required fields for the export.

An error occurred during an import (#135315)

Problem

  • There are certain scenarios where the org node import has either all nodes fail, or nothing imported, then the resulting list of nodeids to refresh ends up being empty.
  • When the command to update the org flat path is called, if the nodeid list is empty, it ends up refreshing the paths for ALL nodes, across all rulesets, leading to potential timeouts and unnecessary refreshes. 

Solution

  • Added a check to not do the flat path refresh if the nodeid list is empty.
  • Included RulesetId on the refresh query to ensure that it can only ever refresh the org nodes for the ruleset data being imported.

Org errors when Payspace/PowerShell imports run (#134958)

Problem

  • New validation was added to prevent a parent from becoming a child of its child.
  • With this change, it broke other flows where reorganising the structure no longer worked 

Solution

  • Enhance the method to search for whether the parent moves to as a Descendant of its child 

User Import: Add custom fields (#133089)
Problem
 
  • Clients import custom fields for reporting and other objectives
  •  Clients with custom fields
 
Solution
 
V9
 
  • Add 20 custom field columns to the user import 
    • Add to the front-end template and import
    • Add to the API import
    • Add to the PowerShell Payroll connector import
  • Add a table in Account.UserCustomFields to store the data with 20 columns
  • Add the custom fields in the export user data API
 
V8
 
  • Change the bulk pull of data via the integration API to receive and stage the extra custom fields

Languages

Language Preference Handling (#134859)
  • A user can now ONLY update their language preference on the login page - they can simply view their current language on the my preferences page on webmvc, but they cannot update it.
  • How it works now:
    User lands on the login page. Look for a cookie for the language (identity ONLY) and pre-select the language on the login page if the cookie exists. If the cookie does not exist, we pre-select the language from the default ruleset language.
  • When the user updates the language, we simply update the cookie value. This ensures that the language is set when the user lands on the login page again.
  • When the user successfully logs in, we store the language in the db (this is done really only for auditing purposes or for a fallback later on perhaps, it is not used or required elsewhere currently). We also use the cookie (again still only on identity) and set the "locale" claim of the user, which will be stored in the bearer token. This allows us to easily send the language from identity to webmvc (and to use it there).
  • From now on, we read the language preference of the user ONLY from the claim while logged in. I removed the WebMVC culture cookie completely as to avoid confusion.


Notifications

Cannot upload images using the uploader (#135366)

Problem

  • Emails will not send when the CustomToRecipient is an empty string instead of null.
  • Gives error "The recipient address must be specified.: " 

Solution

  • Modified assignment of the recipient to check for white space and null. Also corrected the assignment to customToEmail to use GetString instead of ToString. GetString will honour a null JSON value and return null, while ToString returns an empty string for a null JSON value

Search icon on communications panel header not implemented (#135181)

Problem

  • No implementation has been done for the search for the communication portal 

Solution

  • Implemented search functionality to search discussions 

Pulsing red dot not shown next to the chat where a new message was received (#134974)

Problem

  • When a user sends a new message, an indication is sent over signal r if that user has the portal open, the unread count does not change 

Solution

  • Implement a new change to update the unread count when a message is sent, and the user has the portal open

Chats are not removed when deleted (#134857)

Problem

  • When a chat is deleted, it is soft-deleted within the backend, but still returns deleted chats to the user 

Solution

  • Alter the script to not return deleted chats

You cannot create a new chat on a mobile device (#135179)

Problem

  • When on a mobile device, mouse hover can not be triggered to display new communication 

Solution

  • Add a new event handler to listen for a click to toggle the items


Performance Management

KC weights displayed incorrectly when using Decimals (#135102)

Problem

  • On the Review Setup Templates, all the Weights are formatted to decimal count 0.00, except Key Competencies 

Solution

  • Alter to format to the correct value to display for the key competency

Performance Management: Delete agreements returns an error message (#135305)

Problem

  • Some of the people lists break and shows a snack error, logs indicate a column cannot be found. 

Solution

  • Corrected the join for the People Group Custom query items select. 


Report Builder

Report Builder: Filter Operator Returning an Error (#135385)

Problem

  • Report filter criteria operator is getting sanitized when using > or < as the operator, causing the report generation to break.

Solution

  • Add report filter criteria operator and value to the exclusion list for sanitisation 

DateTime Conversion (#134860)

Problem

  • Date formats and conversions using custom cultures and timezones did not work when executed on services other than webmvc and specifically on reportbuilder when run in a docker container. 

Solution

  • This happened because we did not include 'icu-data-full' when adding icu-libs and tzdata in the docker files (except webmvc). 


Data Warehouse

Create an API for the Training Requirements Matrix to be retrieved (#131532)

Problem

  • The join was incorrect between Users and TrainingRequirementsMatrix, which causesa  performance issue with the DWH Package - Adjustments are required for WFA 

Solution

  • Corrected join between Users and TrainingRequirementsMatrix - Adjustments made within lmStudentSubjects and lmTermResults for WFA

Corrected DATETIME conversion error within accUser (#125159)

Problem

  • The DWH package failed due to a DATETIME conversion error within accUsers 

Solution

  • Adjusted the accUsers script to prevent DATETIME errors for the Date fields

Implement a permanent solution for Template Names within pdmContractPeriods (#134946)

Problem

  • The TemplateName caused confusion when it returned Int values due to copy templates changes made within the system 

Solution

  • Added field TemplateCreatedFrom within pdmContractPeriods to identify how the template was created and only return TemplateNames that are equal to 'Template'

Tenant Usage Stats (125159)

Problem

  • Most of the fields did not populate within TenantUsageStats 

Solution

  • Updated the script that will inject all the available fields from staging to the actual table

Investigate and Adjust accUserLoginStats (#134945)

Problem

  • The ActiveUserCounts were calculated per SchemaID and not per V8 DB Names, which is incorrect 

Solution

  • Added the DBNAME with join within insert #AllLogins for V8 calculation

Adjusted Source Script (#125159)

Problem

  • The script failed due to a divide-by-zero error 

Solution

  • Adjusted the lmTermResults_Staging script to resolve the error

Assistance with Disciplinary Action Outcomes (#135190)

Problem

  • Within the ReportBuilder, there is no join between Users (People) and DisciplinaryActions 

Solution

  • Updated the DataSourceJoin script to include a join between Users and DisciplinaryActions

Updated Source Script (#125159)

Problem

  • The Package for accTenantUsageStats failed due to the ItemType field that has been removed from PeopleGroupUserItems 

Solution

  • Resolved this by updating the SQL Source Script to use the new field Excluded from the table PeopleGroupUserItems

Discrepancies - Leaver Report (#134926)

Problem

  • Field 'HasActiveAppointment' is required within Users (People). Field 'Published' has been removed from JobProfiler Source Table 

Solution

  • Added field HasActiveAppointment within Users that will be used to calculate if a user has an active appointment daily.
  • Removed field 'Published' from JobProfiles


Learning Management

Pathways: Marksheet: Remove Comment Category from the Comments (#135277)

Problem

  • The Comment Category is displayed in the comments field. 

Solution

  • Remove the Comment Category from the comments field to only display the actual comment


Job Profiler

Inactive Positions (Not Published) are not being accounted for correctly by the system. (#126723)

Problem

  • When terminating an employee from the grid view on the people management index page, the "Keep position active" flag was not honoured, but always true.

Solution

  • Fix the MDBSwitch to bind value using checked instead of value, and fix keepPositionActive property name (the name of React was different from the one returned from the API)


Main Dashboard

[Banner] Preview empty (#133418)

Problem

  • The banner preview in the AddBanner modal on the Main Dashboard did not display a default banner (the preview before selecting any banners).

 

Solution

  • Ensuring the default banner path is correctly assigned to the image URL, as well as ensuring the default banner path is correctly returned for different environments, with multiple fallbacks.

 

[Main Dashboard] Changes on More Insights | Span of Control (#133375)

Problem

  • All reporting lines for each user on the "Span of Control" page were visible and needed to be a tooltip to prevent cluttering up the page. Position needed to be displayed for each user. When you click on a user, it needs to open their manage person modal.

 

Solution

  • All reporting lines are now tooltips when hovering over position title. Position title is now a pill next to each person. When clicking on a user record, it opens his Manage-Person-Modal.

 


Master Data

[Master Data] Fix display of last edited date (#133282)

Problem

  • Last Edited column header in MasterData data tables needs to be changed from LAST EDITED to LAST EDITED (BY USER), and the last edited table data needed to be formatted so that the dateTime is first and the user ID is last, and in brackets.

 

SolutionThe 

  • Last Edited column header was changed with Signify Translation Helper. Translation JSON files updated. Formatting of column data changed to match: "DateTime (userID)".

 


Ruleset Management

[Ruleset Management][Admin User][New Ruleset Login] Unable to log into a newly created ruleset (#134902)

Problem

  • When a new ruleset is created from a ruleset where there is no default appointment type, then the first user on the new ruleset has no appointment and cannot login.

 

Solution

  • This pull request modifies the SQL query in the GetDefaultAppointmentTypeAsync method to handle cases where no default appointment type exists. The change ensures that a fallback query is executed when a default appointment type is not found.

 


New Functionality

Communications

As a System Owner, I want to combine Chat functionality and Inbox functionality so that this becomes the Communication Portal

Business Rules 

  • The chat and inbox should be combined 

  • When clicking on the icon in the header, open the chat page 

    • All discussions regarding the product are shown first 

    • Discussions about [Product Name] 

    • When a message was sent to a person while in a performance agreement, the context will show, for example, [Review Year Name] | Review Period 

    • People reporting to the manager are shown by default in the Performance Management section  

  • Other discussions across all other products are also available  

    • The context here is the Product Name 

  • The other messages section includes  

    • Imports 

    • Exports 

    • Documents 

    • Training Requests 

    • Leave Requests 

    • HR Processes 

  • When clicking on one of the other message buttons, the user will be navigated to the “old” inbox 

  • A red flashing dot will display when there is a new message 
    • On the icon in the header 

    • Other messages – on the button of the tab that has a new item 

  • New Discussions and Group Discussions can be created 

    • Add an option to only allow Group Owners to post messages on Group Discussions

      • When this toggle has been selected, only the Group Owner can make posts 

      • The people in the group will not be able to send messages and will only see the messages that the owner posts 

As a manager viewing the Performance Agreement of one of my employees, I want to start a discussion with the employee

Business Rules 

  • When clicking on the Inbox icon, the chat opens and displays the current employee’s / manager’s chat 

  • The header displays the Review Year and Review Period  

 

As a person viewing my Performance Agreement, I want to start a discussion with my manager

Business Rules 

  • When clicking on the Inbox icon, the chat opens and displays the current employee’s / manager’s chat 

  • The header displays the Review Year and Review Period