List of the Release Notes (2025)
Signify continually develops new functionality and resolves issues, so our system is continually improving. We also develop exciting new modules in line with how the use of Human Resource Information Systems is changing. A list of the Release Notes for the different versions is shown below.
- Version 9.1.164.1 (Support Release - 3 June 2025)
- Version 9.1.164 (2 June 2025)
- Version 9.1.163 (2 June 2025)
- Version 9.1.162 (2 June 2025)
- Version 9.1.161 (2 June 2025)
- Version 9.1.160 (29 April 2025)
- Version 9.1.159 (29 April 2025)
- Version 9.1.158 (29 April 2025)
- Version 9.1.157 (29 April 2025)
- Version 9.1.156 (7 April 2025)
- Version 9.1.155 (7 April 2025)
- Version 9.1.154 (7 April 2025)
- Version 9.1.153 (7 April 2025)
- Version 9.1.152 (7 April 2025)
- Version 9.1.151.3 (Support Release - 25 March 2025)
- Version 9.1.151.2 (Support Release - 19 March 2025)
- Version 9.1.151.1 (Support Release - 18 March 2025)
- Version 9.1.151 (17 March 2025)
- Version 9.1.150 (17 March 2025)
- Version 9.1.149 (17 March 2025)
- Version 9.1.148.2 (Support Release - 8 March 2025)
- Version 9.1.148.1 (Support Release - 26 February 2025)
- Version 9.1.148 (24 February 2025)
- Version 9.1.147 (24 February 2025)
- Version 9.1.146 (24 February 2025)
- Version 9.1.145 (24 February 2025)
- Version 9.1.144.3 (Support Release - 18 February 2025)
- Version 9.1.144.2 (Support Release - 14 February 2025)
- Version 9.1.144.1 (Support Release - 13 February 2025)
- Version 9.1.144 (3 February 2025)
- Version 9.1.143 (3 February 2025)
- Version 9.1.142 (3 February 2025)
- Version 9.1.141 (3 February 2025)
- Version 9.1.140 (3 February 2025)
- Version 9.1.139.2 (Support Release - 27 January 2025)
- Version 9.1.139.1 (Support Release - 24 January 2025)
- Version 9.1.139 (14 January 2025)
- Version 9.1.138 (13 January 2025)
- Version 9.1.137 (13 January 2025)
- Version 9.1.136 (13 January 2025)
- Version 9.1.135 (13 January 2025)
- Version 9.1.165 (30 June 2025)
Version 9.1.164.1 (Support Release - 3 June 2025)
Performance Management
Path to link Signify to Power BI (#132335)
Problem
- An additional api required to export all user contract data for a review year and review setup
Solution
- Create a copy of rpc ListReviewYearSetupUserContracts (ListReviewYearSetupUserContractsRequest) returns (ListReviewYearSetupUserContractsResponse); and extend to include all users
- Include location in org
- Remove image path for performance
Imports
PaySpace Signify discrepancy script (#129254)
Problem
- When data is not staged in the user stagings for an import, then the exported Excel sheet is broken without data.
- Data fields are inconsistent in the export
Solution
- Add a check to export a default error
- Add a caste to shortdatestring for datetime and datetime? fields
PaySpace (#132260)
Problem
- When the Payspace client does not grant access to the OrganizationPositionDetail, then the following API call fails as forbidden
- string url = $"{connector.BaseUrl}/v1.1/{companyId}/OrganizationPositionDetail?$count=true";
Solution
- Add try catches when pulling data for the OFO code to suppress and log the failure should it occur, and then continue with the import
Imports
Issue when importing data in another root than IN01 (#132815/132240)
Problem
- When providing other data in the import for org level 1 than the default IN01 data, the import fails with the error: The org node to link the user's position to could not be found."
Solution
- Add org level 1 as received data, and fall back to the default only when no data is provided
Version 9.1.164 (2 June 2025)
Learning Management
LMS Portal: Subject Setup: No Cycle 'Weight in Period' Validation (#132285)
Problem
- When saving the weights of a cycle which exceeds 100, it is unclear where the issue is.
Solution
- Add validation client-side to indicate the invalid weights in red
LMS Portal: Marksheet: Save does not work when entering and Removing Input in an Empty Row (#132306)
Problem
- When adding and removing data on empty columns of a marksheet, it cannot be saved.
Solution
- Check that the item for the cells has items; otherwise, skip it
System Access
Allow support user functionality not working (#132363)
Problem
- Unable to log in with a support user when disclaimers are active on a ruleset
Solution
- Change the authentication process during support to skip the disclaimer acceptance
Ruleset Management
When on the Notification Tab, the Image Resources Tab disappears (#128559)
Problem
- The image resources tab disappeared when navigating to the notifications tab in ruleset setup.
Solution
Report Builder
Information for the BOTS (#130430)
TBA
Error when changing condition (#132342)
Problem
- An error occurred when trying to preview data when the 'list' operator was selected as a filter condition.
Solution
- This was due to a syntax error in the query, which is now resolved.
Performance Management
Add functionality to delete multiple templates at once (#120577)
Problem
- Can only remove one template at a time on the PM Review Setup Templates
- Modal is very small when a selection is required to select templates for bulk deletion
- Translation missing for en-GB
- When the modal is displayed to remove multiple templates, you can click on which then navigates you to the template
Solution
- Add a new option to remove multiple templates at once.
- Show a larger modal for Bulk delete templates
- Added Translation for en-GB
- Remove the check to be able to navigate to the template
Manager Ratings not updated when Manager and Final Ratings can be completed simultaneously (#127230)
Problem
- With the setting to do both final rating and manager rating, the banner scores for Manager Rating is not being updated on the contract
Solution
- Add a new check to also update the Manager Rating along with the Final Rating when both are captured
Data Warehouse
I want to have the audit data in the DWH so that I can create a report for the recalculated scores (#130423)
Problem
- The new recalculated score fields are not available within the Report Builder
Solution
- Added the new recalculated score fields within the Report Builder (DWH)
Adjustments for Term 2 - Phase 1 (#132175)
Problem
- The Term 2 and Term 4 EXAM Marks need to be included within the subject list for reports
Solution
- Added the Term 2 and Term 4 EXAM Marks within the subject list
Tenant Usage stats (#131639)
Problem
- The Tenant Usage Stats data needs to be available within the Data Warehouse
Solution
- Added table TenantUsageStats with the required fields within the Data Warehouse
Notifications
Tooltip when hovering over item on Exports list incorrect (#122691)
Problem
- The tooltip for the download icon in the Exports section incorrectly displays "Export" instead of "Download."
Solution
- Updated tooltip text to "Download".
People Management
[Appointment History] Reference Name and Surname fields are not marked as required (#131180)
- When adding/editing an employment history record, the save fails if you do not provide the reference name and contract information. This is because it is required/expected on the backend but not on the Modal.
- Make reference name and surname & reference contact required.
Issues on People Management Module (#131783)
Problem
- When a user searches on People Management, the search filter persists even when the user logs out and logs back in. This confuses sessions, as some results are not available.
Solution
- When the user clicks logout, clear the filterCriteria if it exists from the local storage
HR Processes
Not All Jobs Positions are Available on the Workflow Reporting Lines (#132320)
Problem
- When a position has a termination date in the future it cannot be found when setting up an HR process
Solution
- Change the filter in the query to include position in the future and only include users
Languages
Add en-ZA as language and set as default (#132295)
- Add a new culture for en-ZA on V9.
-
- Ensure that the necessary translation files are added.
- Ensure that en-ZA can be selected by the user - if the language is published on the ruleset.
- Ensure that translations and date formats still work when en-ZA is used as a language.
Version 9.1.163 (2 June 2025)
Performance Management
Add functionality to delete multiple templates at once (#120577)
Problem
- Can only remove one template at a time on the PM Review Setup Templates
- Modal is very small when a selection is required to select templates for bulk deletion
- Translation missing for en-GB
- When the modal is displayed to remove multiple templates, you can click on which then navigates you to the template
Solution
- Add a new option to remove multiple templates at once.
- Show a larger modal for Bulk delete templates
- Added Translation for en-GB
- Remove the check to be able to navigate to the template
If moderated, show original score when you hover over the gauge as well (#129852)
Problem
- When an agreement is moderated, on the overall score, when hovering over the text, the score is viewed within a tooltip, the hit area is a bit small
Solution
- Change the tooltip to be displayed over the entire gauge when moderated.
Able to save the sections on a setup after deleting all Rating Scales (#129104)
Problem
- The user could not save the review setup with the changes made to check for rating scales
- Users could save a review setup when there was no rating scales defined, for example, all were deleted.
- The user could save a review setup without adding a 'Performance' Rating Scale
Solution
- Add a check to not validate rating scales for action plan section
- Add a new check to ensure that the rating scales are defined for the active sections before saving, or else it results in a detailed error
- Add a new check to ensure that there are performance rating scales
Limit item weights to 3 digits with a max value of 100 (#124145)
Problem
- Weight input is not limited to correct values, for example can enter 120 in weight, but only errors when trying to submit
Solution
- Limit input to the correct min/max values of the weight percentage while the user enters input
Cannot open the Documents page when there are no KPIs (#126063)
Problem
- When doing an agreement, and a perspective or KPA is added, when clicking to View Documents, it does nothing and errors as no KPI has been added
Solution
- Disable the View Documents button when no KPI has been added when an agreement is being done, and also view a tooltip with a new translation message to first indicate to add a KPI
On the preview, the perspective is shown as unknown even when perspectives are not enabled (#120057)
Problem
- Unknown text is shown on templates where perspectives are disabled when previewing a template
Solution:
- Add a check to not display the Perspective name ('Unknown') when perspectives are disabled
"Save" and "Save Add New" have the same translation (#124587)
Problem
- Translation for save and saveAddNew had the same translation
Solution
- Changed to use a different translation for wording, save and saveAddNew
Incorrect error when you submit an agreement containing duplicate items (#124049)
Problem
- When adding a duplicate KPI in an agreement, the entire exception is displayed as an error and not a friendly UI error
Solution
- Add a new check to show a translation error message
Update text on 'submitting objectives' (#128266)
Problem
- When the objective settings are confirmed on the modal, the text reads 'be blocked for editing'
Solution
- Change the text on the confirmation modal to read 'be locked for editing'
Indicate that moderation is in progress (#130384)
Problem
- When an agreement is being moderated and saved to be completed later, on the user side within the agreement, it is shown as moderated
Solution
- Add a new check that if the moderation is in progress, show correct translations, else default to the moderated translation
Performance Management - Keep Action Plan open (#130044)
Problem
- Currently, when a period has been approved by the employee and manager, no changes can be made to the Action Plan section
Solution
- Change the logic of the Action Plan to allow updates throughout the active Performance Year
- If a review period has been approved by either the employee or the manager, allow the following actions on the Action Plan Section
- Add
- Edit
- Delete
- Copy from previous
- Complete status by the manager
- These actions should be applied to
- KPI Action Plan items
- Ad Hoc Action Plan items
- If the Check-ins period has been reached, also allow the Action Plan to be modified
- When the Performance Year is locked, the Action Plan will close, and no changes will be made
Radio buttons not behaving correctly (#121338)
Problem
- When adding a new KPA/KPI, the radio buttons do not work correctly when navigating between each toggle
Solution
- Fixed check to not overwrite the toggle state
Make message more prominent (#129638 & #129639)
Problem
- An important message is displayed within the Moderation search function that can be missed by many
Solution
- Changed to an alert message, which showcases the message to the user within an info icon
Apply the text-area rule for the Goals on view (#120063)
Problem
- The text area within the goals of the Action Plan grows as the text increases
- When an action plan is added with a lot of text, the tooltip displays on the left, which makes it difficult to read
Solution
- Apply the text-area rule to minimise text with ellipses.
- Move the tooltip to the right to show all text and read clearly
Tooltip on Hover for Final Score in English (#124580)
Problem
- English text displayed on the tooltip within the dashboard, Final Scores
Solution
- Added translation to view
Imports
The system does not use the specified org code when importing a new level 1 node (#119899)
- The system does not use the specified org code when importing a new level 1 node
- Ensure that when importing org nodes, we first check if a code was specified before looking at the auto-generated codes, thereby ensuring that if a code is specified for level 1, it is used.
Default the Import option to Performance Management (#113330)
Problem
- The import/export modal doesn't, by default, select the current product's imports; it needs to have the current active product selected and the imports for it displayed, depending on where you are in the system.
Solution
- Included the ProductCode to the baselayout and send that through to the importexport modal to ensure it correctly selects the correct product for import options.
Enable Sage Automated employee import (#129939)
Problem
- The PowerShell connector indicated an incorrect validation message.
- When a user leaves the Signify system open for more than 10 hours and then tries to continue their work, they receive the error
Solution
- Add the missing passport number field that caused the import to be incorrectly mapped, and receive invalid validation errors
- When the backend services return unauthorised as a status code, redirect the user to the login page rather than giving an infinite error message
Data Warehouse
Send DWH integrity report weekly via DB Mail (#131121)
- The integrity report has been developed and is not used frequently for monitoring purposes
- Send DWH integrity report weekly via DB Mail by creating a new SQL Job
Notifications
Styling on Reason for deletion to be standardised (#122689)
- Styling in the delete modal in Main Banner | Inbox | Notification | Exports did not match other standard modals' styling in the system.
- Updated the delete modal to match the standard styles.
User unable to send a Welcome Notification (#131852)
Problem
- When a user who only has People Admin role tries to send a Welcome Notification an error is displayed. This is because to fetch the template it first needs to fetch the active products. The active products fetch can only be done by Ruleset / Tenant admins.
Solution
- Allowed for users with the People Admin role to also retrieve Active Products. Confirmed that the user can still only see relevant areas, the fetch can successfully be made by a People admin without a ruleset/tenant admin role.
Report Builder
The order of the sources to be aligned with the database Display Order (#129894)
Problem
- The Data Sources are not displayed in the Order which has been set in the database under DisplayOrder
Solution
- Make sure the display order in the DB and front-end is the same
Organisational Structure
Errors - & (#131317)
Problem:
- When adding an Org Unit, the '&' gets sanitised from the name.
- The config map changes do not work correctly yet.
- Need to add the excluded object properties directly to AppSettings.
Solution:
- Add OrgUnitName and Code for the OrgNodeViewModel to the list of excluded sanitisation properties.
Errors on Org Structure (#131884)
Problem
- The org flat structure path is not working correctly on the root node
Solution
- Correct the generation of the org flat path on the root node
- Create the support user on the node IN01
- Add missing org flat path generation for the first user
People Management
Add Role Permission: Manage Own Data (#124043)
Problem
- A user is not able to update personal details when the particular feature for that item is not enabled, although the user has the "ManageOwnData" permission.
Solution
- If a user has the "ManageOwnData" permission, ensure they can update their profile details, even if, according to the product setup, the item cannot be edited.
Translations
Translations on Learning Management are not updating (#131968)
Problem
- Translations are not working on any cshtml pages and only on react pages
Solution
- Updated Translator.cs to include "learningManagement" in the services list.
- Changed UseExternalTranslations to true in both appsettings.Development.json and appsettings.json to utilise external translations in both development and production environments.
SigniChat
Adding a new group using the people group which was previously used to be handled (#123358)
Problem
- You should never have multiple chat groups for the same people group (and product).
- When you created a chat group which is linked to a people group, which was previously deactivated, a new chat group was created (for the same people group), instead of activating the existing chat, it created a duplicate chat group linked to the same people group.
- You can now activate the disabled chat group, and voila, you have two chat groups for the same people group.
Solution
- When creating a chat group for a people group, which was then disabled, activate the existing chat group instead of creating a duplicate.
Version 9.1.162 (2 June 2025)
People Management
Improve People Group Materialisation and management (#130510)
- When a people group has been materialised and a consumer event fails to refresh the people group in a service, there is no way to refresh the users in, for example, Performance Management, without changing the people group.
- When a people group is handled by the SyncMaterialisedPeopleGroupUsersCommand command, there is no locking to prevent multiple consumers from processing the same people groups. This can lead to deadlocks, or at least redundant fetches and updates.
- There is no way to know when the people group were materialised last.
- The Materialised people group users in the job profiler service are busted and rematerialised
- This should trigger a new event consumed by the job profiler service and then the jp service must trigger the SyncMaterialisedPeopleGroupUsersCommand on all services using gRPC to ensure all services are in sync.
- Columns: Id, created date, edited date, tabletype, status, referenceId
- tabletype: Enum: PeopleGroupUsers, Ruleset, Users, Appointments
- status: Available, Locked
- referenceId: Reference to materialised table e.g. PeopleGroupId
- When the people groups sync, add or update the entry in the table with the reference Id being the people group id.
- Set the status to "locked" when processing a request.
- Other refreshes wait, by checking every 20 seconds and up to 2 minutes, if the people group is Available and then continue refreshing.
- Use the log table to find the tables that have been materialised.
Performance Management
Column fields for Evaluations modals not translated (#124581)
Problem
- On the agreement, when adding an evaluation, the column headers were not translated into Deutsch.
Solution
- Added translation for headings in the Deutsch translation.
Able to save the sections on a review setup after deleting all Rating Scales (#129104)
Problem
- User could not save review setup with change made to check for rating scales.
- Users could save a review setup when there were no rating scales defined, for example, all were deleted.
- User could save a review setup without adding a 'Performance' Rating Scale.
Solution
- Added a check to not validate rating scales for the action plan section.
- Add a new check to ensure that the rating scales are defined for the active sections before saving, or else result in a detailed error.
- Add a new check to ensure that there are performance rating scales
The circle for the overall Status icon does not turn green (#129073)
Problem
- On the Performance Dashboard, the circle for the Overall Status icon does not turn green after finalising the agreement if the setting to hide all the weights is enabled.
Solution
- Added a check for the circle to turn green when the agreement has been finalised.
Only display 20 characters of the review period names and add a tooltip on the Performance Management timeline (#128454)
Problem
- Review period names are displayed in full length on the dashboard, causing an overlap with the edge of the card.
Solution
- Changed to display only the first 20 characters, with an ellipsis text and a tooltip to display the full period name on the dashboard timeline
Update wording on 'submitting objectives' (#128266)
Problem
- When the objective settings are confirmed on the modal, the text reads 'Please note that the Objective Settings will now blocked for editing'.
Solution
- Change the text on the confirmation modal to read 'be locked for editing'.
Instructions overlapping "Continue" button (#121399)
Problem
- Instructions text overlapping the "Continue" button on the manager's agreement for Objective Setting within the Performance Management Dashboard.
Solution
- Add styling to restrict text from overlapping.
The hover-over item displays twice when hovering over Action Plan items on KPIs (#120060,120063)
Problem
- A duplicate pop-over displays once an Action Plan has been added from a KPI within an agreement.
Solution
- Removed duplicate popover and only kept one.
Able to delete an agreement when the phase is no longer active (#121573)
Problem
- When a period has ended within a review setup, an agreement which has been started can still be deleted.
Solution
- Add a check that if the phase has ended, do not show the option to delete the agreement on both Dual and without Dual agreements.
Manager side shows "Rate" button if submitted before the employee (#115767)
Problem
- On the Manager side, the text 'Rate' is displayed even if the Manager has submitted their scores, and the user has not started yet.
Solution
- Change to display View instead of Rate within the case that a User has not started and the Manager has submitted their scores.
Recruitment
Error when saving external applicant as employee on Advertisement created directly as an advertised position (#131948)
Problem
- When selecting a position during Advertisement creation, the user could select job positions unrelated to any organisational structure, leading to issues later on when appointing an applicant.
Solution
- Added a check to only show job positions when they are also found in org positions.
Imports
Add exclude from update functionality (#128857)
- When using Sage and other third-party applications, a client does not utilise all the third-party modules, such as OFO codes.
- These codes are maintained directly in Signify via the front-end functionality.
- The user import uses the data received as the source of truth.
- Should a value be empty in the import received, the value in the system is also updated to empty.
- This means that if a field like OFO code has been updated in Signify, it will be cleared with the next import received from the 3rd party.
- Create a master data table for import fields and indicate which fields should be excluded from import, e.g. the system is the source of truth.
- Master data ship as empty, add columns to be excluded from the front-end.
Main Dashboard
HR Processes widget not showing even if set to active (#130867)
Problem
- The HR Processes widget did not display when the logged-in user had no actions to perform (in other words, they had none of their own requests or requests to attend to).
Solution
- Display an 'empty' widget when there are no actions to perform.
Report Builder
Signing is not going through on assessment acceptance with a moderator (#131820)
Problem
- Exceptions are thrown when the same Scoped DbContext is used in multiple threads/tasks, causing the signing to get stuck in "inprogress" status.
Solution
- Create a scope for services for each task or thread running when signing documents.
Data Warehouse
Add datasource field description (#131323)
Problem
- From the front-end, it is not known exactly what the purpose of each field in the data dictionary is.
Solution
- Add a Description NVARCHAR(MAX) field to reportbuilder.DataSourceFields - Developer on V9 on reportbuilder migrations.
- Update fields in the reportbuilder.DataSourceFields with description - only where it is not straightforward.
- Create a new report category "System".
- Create a report to display Table, Field, Field Description, Type, Length, and Display Order.
- Select only tables with fields where the table and the field are not archived and where the field is selectable.
Tenant/Ruleset Management
Make products and system menus active according to subscription (#116680)
- When creating a new Tenant &/or Ruleset, all products and the system menus are inactive.
- When creating a Tenant or a new Ruleset from blank, make the products and system menus active according to the Tenant's subscription.
- When creating a ruleset, enable the products under ruleset management per the purchased license.
- When the ruleset is already in use and a new license is purchased, the corresponding product should not automatically be enabled then, only during creation.
- People Management, Job Profiler, Standard Reports:
- Extended Core
- Add a new product, Mentoring and Coaching, that is active when Extended Core is active.
- Report Builder, Insights:
-
- Rename the license to Insights and Report Builder.
- eLearning:
- Performance Management:
- Leave Management:
- Career and Succession Planning:
- Recruitment:
- Learning Store:
- Training Scheduling:
- Rename the license and product to Event Scheduling
- Salary Review:
- 360 evaluations:
- Add a new product and move the 360 Employee Evaluations Menu to it
- Core
- Basic People Management
- Profile (excl Extended Profile)
- User Permissions
- Appointment
- Performance Management (if the Product has a subscription)
- Training and Development (if PDP or Learning has a subscription)
- Labour Relations
- Audit Information
- Org Structure
- Basic Job and Position Library
- Hide the Requirements tab on Job Profiling
- HR Helpdesk
- Standard Reports
- Basic People Management
- Extended
- Full People Management
- Profile
- Extended Profile
- User Permissions
- Appointment
- Performance Management (if the Product has a subscription)
- Training and Development (if PDP or Learning has a subscription)
- Labour Relations
- Audit Information
- Mentoring & Coaching
- Electronic Document Signing
- If the Signify System - Extended Core has not been selected, then disable the Create Document option on the Grid View
- Add a tooltip
- Only available with Extended Core
- Full People Management
- Show the menu in the grid view:
- Leave Product Enabled - Add leave submenu in profile.
- Performance Management Enabled- Add Performance Management.
- Ensure all product-specific menus show when the corresponding product is enabled.
Version 9.1.161 (2 June 2025)
HR Processes
Upload file duplicated 115 times on the list of file uploads (#131114)
Problem
- Hr process request displays many duplicate file uploads.
Solution
- Ensure duplicate file uploads are not displayed by fixing the join on the query which retrieved the files.
Consecutive step approver update (#126525)
Problem
- When a user who is the Approver for two consecutive steps clicks to approve the first step, the second step should be automatically approved. Therefore, the button for the second step should be disabled and not show a hand cursor to reflect this behaviour.
Solution
- Adding a new list which tracks the usernames of the previous people who have been requested to review an HR Process. If this user is already in the list (They were requested to review multiple times) give the second or third, or nth Approve button for this user a disabled appearance/functionality.
Master Data
Unique constraints on Master Data (#127350)
- Proper(user-friendly) snack message did not appear when trying to save duplicate master data, due to the master data interceptor only being used when master data translations is turned on. I use the interceptor to look for SQL duplicate object errors.
- Ensure that the master data interceptor is always used, but that it only tries to translate the data if the setting is turned on.
People Groups
Learners not in subgroup (#130686)
Problem
- The additional services People Group sync from V9 only return active users. Terminated users must also be included in the list.
Solution
- Include the isForDisplay property on the PeopleGroupUserFetch to ensure that all users, regardless of status, are returned to the V8 sync.
Data Warehouse
Add a task to add Data Dictionary joins (#131144)
- Data Dictionary joins are added manually with deployments to different environments
- Automate the process by adding a task to add Data Dictionary joins in the DWH packages
Performance Management
Objective Settings Queries (#128628)
Problem
- ContractPeriodSection Weight fields are not available within DWH
Solution
- Added ContractPeriodSection Weight fields within V9 DWH (pdmContractPeriods and pdmContractPeriodSectionItems)
Report Builder
Allow report builder admins to set certain filter criteria fields as drop-downs in a report (#129916)
- There are no drop-downs that can be used as filters on end-user reports
- Add a step to the DWH SSIS packages
- As a Report Builder Administrator, I want to have a new operator available named is equal to (from list)
- As a Report User, I want to select the dropdown with the available values
General
Error screen wording changes (#130575)
Problem
- Requested an additional text to be added to the general error page (SVG file).
- Updated text as well as improved formatting to preserve neatness.
People Management
Contact detail wording changes (#127975)
- Request to update the contact text in people management.
- Altered translations for multiple languages to match the request.
Notifications
Notifications email setup configuration error (#131208)
Problem
- When toggling the Credentials Required switch on Ruleset Email Setup, when enabled, it shows all the credential fields for both token and basic authentication. This is incorrect, it should only show the fields depending on the selected authentication type.
Solution
- Fix the JavaScript to show the correct credential fields depending on which authentication type radio is selected.
Version 9.1.160 (29 April 2025)
Performance Management
PM Error with PERMS system on Print/View report (#131284)
- Contract print preview breaks for unfinalized contracts because it expects there to be a premoderation score.
- Correctly handle the selection of the premoderation score to be null when the contract is not yet finalised.
Version 9.1.159 (29 April 2025)
People Management
ESS issues (#130616)
Problem
- When saving user information on People Management, an intermittent "Error occurred" snack is displayed
- The problem is that user reporting lines are checked for changes, but all people groups are busted for the ruleset
- This means that every time user information is updated for any user (or if nothing is changed and the Admin only clicks on Save), all the people groups are cleared from the cache and deleted from JobProfiler.MaterialisedPeopleGroupUsers
- This creates additional race conditions when the PeopleGroupUpdated event is emitted, causing all services to try and refresh the MaterialisedPeopleGroupUsers table on JP, as well as when the page reloads, it needs to refetch the PeopleGroupUsers since the cache is empty
Solution
- Changed the User reporting line upsert to only bust the reporting line and people group caches if any changes have occurred, and to only bust for the specifically changed reporting line types
- Only bust the relevant PeopleGroupIds for the reporting line managerIds, not all people groups
Performance Management
Performance Management Errors (#131139)
Problem
-
When doing the initial moderation and directly clicking on approve & recalculate, the moderation scores were not saved first, when you then unapprove the moderations, the moderation state is broken.
-
On General Comments of a contract, the manager can click and view the person's comment which opens a modal that is editable. Saving then saves the exact comment for the person to the manager's comment. Same happens the other way around.
Solution
- Fixed the moderation approve & recalculate to always correctly save the moderation scores since their could also be interim changes. And on unapproval to correctly reset the contract moderation status.
- Changed the general comment modal to be not editable when it is the person viewing the manager's comments or vice versa
Job Profiler
Issue on New Appointment (#130526)
Problem
- When adding a new (second or next) appointment or doing a transfer, the appointment fails with an invalid appointment start date error.
- First issue is that the error is misleading as the problem should reflect that the end date overlaps the start date of the next appointment, secondly the check performed was incorrectly comparing the previous appointment's start date to be less than the next appointment's start date, which should normally always be the case so every appointment fails.
Solution
- Changed translation to be more specific to the actual error/check.
- Corrected the check to compare the current appointment end date against the new appointment start date.
Notifications
Notfications - Make sending welcome emails more robust and performant (#130837)
Problem
- The grpc channel size is too small when the list of users receiving the welcome email is more than 7500
- The welcome email fails should any user's reset URL fails to generate
Solution
- Add a setting to give the option to increase the size, should it be needed. This is not part of the Helm charts, as it should not be
Add tries to send the notification with an empty reset URL rather than failing the entire batch
People Groups
People Groups: Display incorrect number if people on "Custom" (#130594)
- On the People Group list, the Included Users count does not match up with the actual number of users displayed when viewing the PG summary, This is because on the list page, terminated users still included on the PG are taken into account, as well as users that have both been included and excluded. It needs to show the same counts as you would see on the summary view.
Solution
- Modify the included users count selection to only check for active appointments and to not include users that have also been excluded.
SigniChat
When first opening a new chat, the collapse button is missing (#130584)
Problem
- When opening a new chat, the close button does not show as it formed part of the search section (which should be hidden when opening a new chat).
Solution
- Ensure that the close button still displays when opening a new chat.
Version 9.1.158 (29 April 2025)
Imports
Make "Approve Agreements" Label clickable (#128953)
Problem
- The label next to the checkbox is not clickable
Solution
- Changed label to also trigger the checkbox
Create SQL notification for support (#124083)
Problem
- The notification was not working for import errors
Solution
- Changed import error notification to enable propagation of master data
People Management
[Roles][Admin]: Prevent user from Deleting the Default (#129276)
Problem
- The system allows an Admin to delete a Default People Group Role
Solution
- Prevent an Admin from Deleting a Default People Group Role
"Can Manage People" not selected by Default on a Default Role (#129381)
Problem
- The system does not tick the "Can Manage People" by default on a default People Group Role.
Solution
- Enable the checkbox by default on a default People Group Role
Multiple problems on ESS screens (#130616)
Problem
- When saving user information on People Management, there is an intermittent "Error occurred" snack displayed. The problem is that user reporting lines are checked for changes, but then all people groups are busted for the ruleset. This means that every time user information is updated for any user (or if nothing is changed and Admin only clicks on Save) all the people groups are cleared from the cache and deleted from JobProfiler.MaterialisedPeopleGroupUsers. This creates additional race conditions when the PeopleGroupUpdated event is emited, causing all services to try and refresh the MaterialisedPeopleGroupUsers table on JP, as well as when the page reloads it needs to refetch the PepleGroupUsers since the cache is empty.
Solution
- Changed the User reporting line upsert to only bust the reporting line and people group caches if any changes have occurred, and to only bust for the specifically changed reporting line types. Only bust the relevant PeopleGroupIds for the reporting line managerIds not all people groups.
Organisational Structure
Org Structure: Store calculated org path per node (#128856)
Problem
- Store calculated org path per node as JobProfiler.fncCalculateOrgPath(@orgid INT) is not performant enough for larger datasets
Solution
- Store calculated org path in table OrgNodes table and read from this field instead of using fncCalculateOrgPath in queries throughout system
- Create migration to add new column FlattenedOrgPath to orgnodes. Run recursive query to update existing data
- Create new command to update org path of specific nodeid and its children when creating new or updating entity.
Imports
PaySpace Imports (#129229)
- Added OFO codes to Payspace imports
Ruleset Management
Change of preferred People Group on My Profile | My Account not applied immediately (#128855)
Problem
- Active people group was not set when updating the default or preferred people group.
Solution
- Ensure that the active people group of the user is updated when updating their preferred people group.
Notification
Schedule Setup: User can set a Once-Off custom schedule to time already passed (#96569)
Problem
- On the notification schedule setup page, the end date could be in the past or before the start date.
Solution
- Ensure that the end date cannot be in the past or before the start date.
Data Warehouse
Review and adjust data sources on Report Builder (#128366)
Problem
- Data sources need to be reviewed and improved
Solution
- Implemented improvements within Data Dictionary DataSources/DataSourceFields
Salary Review
[Salary Review] Page perpetually loading (#130596)
Problem
- The iframe is unable to load on all V8 pages except LMS
Solution
- Added
Html.Raw
function to prevent Razor from splitting the string into multiple attributes
Version 9.1.157 (29 April 2025)
Learning Management
Delete Button for Interventions Only showing on the latest Record (#130180)
ProblemThe
- Delete/Trash icon is not shown for all training interventions in a cycle.
Solution
- Remove script and markup that only allowed the last training intervention in the list to be removed.
Remove sandbox on V9 (#129502)
Problem
- Documents that should be embedded on pathways are not working because of the sandbox rule from V9 Iframe
Solution
- Load sandbox rule conditionally for the MENU_PORTAL_USER_LMSPORTAL module
People Management
Managers cannot see their employees in the Performance Management system (#130434)
Problem
- The update of the people group query causes deadlocks
Solution
- Only update when the status has changed, and add WITH(ROWLOCK, UPDLOCK)
- Simplify the distinct for the inserts and remove the CTE
Double Scroll Bar appears after navigating across Tabs (#126461)
Problem
- A double scrollbar was displayed on some pages due to overflow on the body.
Solution
- Fix the double scroll by hiding the overflow globally on the body.
Country/Province set as "Not Required" but is being displayed as Mandatory (#128735)
Problem
- The system currently shows "Country/Province" as a required field, even though it is set to "Not Required."
Solution
- We will update the system to ensure that the "Province" field is no longer marked as mandatory. This involves adjusting the underlying data settings and applying an update to reflect the change.
Add Role Permission: Manage Own Data (#124043)
P&S
Report Builder
Ordering to be aligned with the database Display Order (#129894)
P&S
Column order specified on the Preview is not applied to the Full Report or Exported Report (#128854)
Problem
- When the user rearranges the column order, especially if the rearranged columns are more than one index away from each other.
- The order is inaccurate regarding what is displayed on the frontend.
- Each time a column is reordered (Moves an index), an AJAX call is made, and all changes after it are inaccurate.
Solution
- Collecting all the requests the user makes by waiting for a timer to finish, each time a reorder happens, the timer is reset (to ensure all changes will be sent).
- When the timer runs out, one AJAX call is made as a batch for the Server to handle.
- The server receives a list of requests and loops through them to ensure each column reorder is processed.
- Please note that after the previous code review changes, only columns which actually moved an index are sent to the server side for processing.
Ordering to be aligned with the database Display Order (#129893)
Problem
- When creating a new report, the list of data sources does not appear in the correct order.
- It does not display according to the DisplayOrder column inside the DB.
Solution
- We made sure the data sources are displayed in the correct order by updating how they are retrieved.
- A sorting rule was added to ensure the list follows the intended sequence.
- Additionally, we included DisplayOrder in various steps where data is added or retrieved to maintain consistency.
'Is in list' operator shows Values selection across all tenants (#130008)
Problem
- When a user creates a new report and adds fields to the filter section, selecting the "is in list" operator returns data across all tenants instead of filtering correctly.
Solution
- To ensure that only data from the specified TenantID and RulesetID is retrieved, these values should be added as parameters in the SQL Stored Procedure.
- The filtering condition should then be applied within the query to restrict results accordingly.
SigniChat
Datatables warning error when clicking on the <--- back button (#129666)
Problem
- The error occurs when viewing your chats, as not all are returned to the user.
Solution
- Ensure that an error does not occur and make sure that all the chats for the user are returned.
Ruleset Management
Mentoring and Coaching are not available on the System menu (#129947)
Problem
- Mentoring and coaching could not be enabled or disabled because it was linked to its own product code, for which a product does not yet exist.
Solution
- I linked the mentoring and coaching URL back to LearningManagement (to which it was previously linked anyway)
Redirect tabs not on the current session's ruleset to the login page (#128356)
- When a tab is open and a user logs into a new ruleset in the same browser on a different tab with the same domain, they receive the following.
- When clicking okay, the page is reloaded for the current ruleset's data.
- This is confusing for some users as they expect the other ruleset's data here.
- Rather than reloading the page, redirect the page to the login page of the previous ruleset on that theme
- e.g Url.ActionLink("Index", "App", new { rulesetCode = ruleset.Code, themeKey });
- Change location. Reload the following file to redirect the theme URL of the previous ruleset
Notifications
Changes to the template, not being propagated (#128679)
Problem
- New templates and schedules on ruleset 1 are not propagateable.
Solution
- Ensure new templates and schedules on ruleset 1 are propagateable.
Imports
As a person with access to Appointment History, I want to see the Start Date in Group and Company fields (#122770)
Business Rules:
- The Start Date in Group can be any date in the past - The imports allows this, but the front-end has validation that says that this cannot be earlier than the first appointment date. We can't expect a new client to capture the person's entire work history therefore, they should be allowed to capture a Start Date in Group that is earlier than the Start Date in Position. It cannot be after the first appointment date.
- Start Date in Company works correctly, the only validation is that it is not earlier than the Start Date in Group. We are not going to validate it against the appointment date at this time. (Currently, the Start Date in Position can be earlier than the Start Date in Company)
Validation Report not in the same format as the import (#128489)
Problem
- The columns on the import validation report did not properly group the columns (as with the import file)
Solution
- Properly group the columns.
Tenant Management
Hovering over the Tenant URL and clicking to copy does not copy the URL (#130061)
Problem
- In the tenant management system, when users clicked on a URL, it showed a message saying "Click to copy," but it didn’t actually copy the link to the clipboard.
Solution
- I fixed the issue by adding a function that properly copies the URL when clicked. Now, when users click the link, it is automatically copied, making it easier to paste elsewhere.
Time to be displayed on the system, Close Date shown on Description tab (#129940)
Problem
- There is no expiry time on the System Close Date
Solution
- Add the time (11:59 - i.e one second to midnight) on the display of the System Close Date as it does for the Expiry Date.
Licence Expiry Warning contains wrong Licence Type (#129855)
Problem
- Previously, all expiring subscriptions were incorrectly labelled as "Fixed/Monthly Subscription" because the text was hardcoded, meaning it didn't change based on the actual subscription type.
Solution
- Now, the subscription type is dynamically displayed based on the correct SubscriptionType field in the system, ensuring accuracy for each user.
Login Page Link on the System Setup Complete notification shows 'Page cannot be found' error (#129856)
Problem
- When a new tenant was created and an email was sent, the login URL in the email would incorrectly show the path "/app/app/" twice.
Solution
- I removed the extra "/app/" part that was being added in the notification system.
Performance Management
As a person viewing the Print View of the Agreement, I want to have the More Information and Moderation sections collapsed (#128404)
- Add moderation information to Contract Print Preview, add new, more info and moderation accordions on Print Preview
The & symbol is displayed as "&" throughout the contract (#129768)
Problem
- The sanitisation that was added to all PUT | POST | PATCH requests on Webmvc to prevent malicious input values is also stripping out valid values like '&' and '>' and '<', which can be used in comments and on PM section item names.
Solution
- Added a list of excluded settings to the SanitizationConfiguration that will look for specific objects and then exclude specific properties from being sanitised.
Organisational Structure
Org Structure: Store calculated org path per node (#128856)
Problem
- Store the calculated org path per node as JobProfiler.fncCalculateOrgPath(@orgid INT) is not performant enough for larger datasets
Solution
- Store calculated org path in table OrgNodes table and read from this field instead of using fncCalculateOrgPath in queries throughout the system
- Create a migration to add a new column, FlattenedOrgPath, to orgnodes. Run the recursive query to update existing data
- Create a new command to update the org path of a specific node ID and its children when creating a new entity or updating an entity.
Version 9.1.156 (7 April 2025)
Performance Management
Auto copy error (#129765)
Problem
- Auto copy auto approval fails when Action Plans are enabled.
- Exclude the AP section from the validation before the auto-approval happens
Indicate that all fields are mandatory (#129755)
Problem
- Required fields for moderation were not displayed making it unclear what is needed.
- When only ticking an item as moderated but then having other items which are correctly validated the react validation passes, and an incorrect error is displayed "failed to save"
Solution
- Add scss and class handling to indicate which fields are required.
- Fix validation not checking that All moderated items must pass.
Original score changes when you save the moderated score (#130375)
Problem
- The final rating displays the actual final rating value which gets overwritten when you moderate the item to the moderated value, then making it display the moderated rating as the final rating.
Solution
- Changed that the final rating column always displays the pre-moderated final rating
Moderated labels not shown when you impersonate (#130374)
Problem
- The employee dashboard is showing calibrated instead of moderated when contract moderations have been approved.
Solution
- Fix the employee dashboard to correctly display that contract has been moderated.
The moderator cannot unapprove the agreement after approving it (#130379)
Problem
- When QA is not required and the moderator approves the moderation the Change button is disabled, the moderator cannot then change or revert the moderation.
Solution
- Do not disable the Change button for moderation when QA is required and a QA score has not been provided.
Organisational Structure
The system is Duplicating Org Name (#129973)
Problem
- The Org name is displayed twice on the Org Builder Screen.
Solution
- Removed additional div that displays the org name
Tenant Management
Unable to create a new tenant (#130349)
Problem
- The permission call added for 129326 - [%V9-Performance Management%] - Changed moderation permissions to be excluded by default (#8599) required an authenticated identity service when creating and updating user roles
- The identity service's update's edited users are saved as unknown
- Permissions for the first tenant user get updated before the tenant administrator is created
Solution
- Add an anonymous endpoint to update user permissions
- Send through the edited users from the consumer message
- Reorder the initialise command of the tenant to create the user before handling the identity creation
- Add AllowAnonymous filter on anonymous methods of the ruleset process
Notifications
Own SMTP sender details being used even though RS1 details are selected for sending emails (#129364)
Problem
- When turning off the "Use Own SMTP" setting and saving, then turning it back on, the system would reset the sender email to master@signify.co.za instead of keeping the previously used email.
Solution
- A new field was added to store the last sender email used, so when "Use Own SMTP" is re-enabled, it restores the correct email instead of resetting.
HR Processes
Inactive Workflows are Still Seen by the Bot (#130062)
Problem
- Cannot change active process code to inactive process code
- Can activate a process with the same code as an existing active process
Solution
- Correct update check
- Add validation when activating a process for a used active code
Version 9.1.155 (7 April 2025)
SigniChat
Datatables warning error when clicking on the <--- back button (#129666)
Learning Management
Inform the user where to find the exported list of recipients (#123803)
Problem
- Currently, when you export the list of recipients or people who won't receive notifications, you only get a message "Saved Successfully". User won't know what this means.
Solution
- Added the link to the export page on the snack message
When Multiple Comments are added, Save creates formatting issues with large Gaps (#129623)
Problem
- When selecting preconfigured comments, the User can add multiple and they appear to be formatted correctly and economically initially. However, after saving the Marksheet, upon reload, many additional empty lines are added which makes the sheet difficult to read.
Solution
- Resolve the gap on top of mark sheet comments by resizing rows on load and save
When Marking Learners as Absent, if Send Notifications is clicked but cancelled Endless Load Logo Loops over Interface (#129847)
Problem
- The loading screen is shown indefinitely on the attendance register.
Solution
- Removed loading variables from the attendance list and attendance modal
Teacher not able to View Marksheet and Attendance (#129069)
Problem
- The pathway groups linked to a subject can be used on another subject.
- The marks page breaks due to ambiguous start date
Solution
- Add usage to query and gRPC to filter on the subject model
- Correct query table aliases
- The stardate validation is only at the domain level and not on the front end
- Could not replicate the editing of the name issue
Imports
No errors exported (#129226)
Problem
- When working on a project locally, clicking a link or button correctly takes users to the right page.
- However, in the testing environment, the same action leads to an error or a broken page.
- This happens because the system doesn’t recognize extra parts in the web address, like
/master/
or/herculia/
, which are unique to different environments.
Solution
- The redirection logic was updated to recognize and include the correct base address for each environment.
- This ensures that users are always directed to the right page, no matter where the system is running.
Translations
Fix the translation of the page heading (#129839)
Problem
- The global header displays the translation key on the moderation screen.
- I found that the way it calculates the correct translation to use on the SPA pages relies on the 'app' portion of the URL being exact (case-sensitive); otherwise, it does not correctly determine the translated value.
- Eg spa/performanceManagement/ resolves translation correctly, but spa/performancemanagement/ does not
Solution
- Fixed the case of the redirect on the moderate / qa buttons on the moderation search to match the translation key case.
Performance Management
Comments mandatory on Ratings and Evaluations (#129585) - New functionality
- A new column has been added to the Review Setup | Sections | Performance Rating Scale
- Required Comments
- When a rating scale has been marked as required, the comments on the agreement are also required
- This is also the case when evaluations need to be completed
- The import will give an error when the rating has been completed and not the comment
Periods are shown in reverse order (#130060)
Problem
- On the contract print preview, there is no ordering on the contract periods leading to periods being displayed in the incorrect order.
Solution
- Add order by DisplayOrder to the query to have contract periods displayed in same order as on the dashboard
People Management
After saving a Secondary Appointment the system remains on the Appointment page (#129460)
Problem
- After adding/editing an appointment on the people profile page, it does not redirect back to the appointment page.
Solution
- Ensure it redirects back to the appointment page.
People Group Search does not work as expected (#130069)
Problem
- People Group Search does not work as expected
Solution
- The search did not always work, because the name was calculated, while the search only worked on the "name" property.
- Make sure that the search works on the calculated name.
The ribbon shown behind the Profile icon and the tooltip remains on the page (#129641)
Problem
- The "My Manager" Ribbon was hidden behind other elements on the card, making it difficult to see.
Solution
- Its display priority was increased slightly so that it appears on top of the other elements.
Prevent the user from Deleting a System Module Role without the Acknowledge toggle being switched On (#129274)
Problem
- The system does not prevent a user from deleting a record without the Acknowledge toggle being switched On.
Solution
- The system does not prevent a user from deleting a record without the Acknowledge toggle being switched On.
HR Processes
Inactive Workflows are Still Seen by the Bot (#130062)
Problem
- When submitting a request for a code that was deleted and then recreated the code is seen as deleted
Solution
- When retrieving the active hr process for the code only retrieve the process that has not been deleted
- When creating a new HR process command only check the code on none deleted codes
- When editing an HR process ensure the same code as an existing process cannot be used
Areas Affected
- Submitting a new HR process
- Creating a new HR process with the same code as a deleted HR Process
- Updating an existing HR process code to another code that is already used
API
API: ListUsersExport not returning all or correct information (#126458)
Problem
- The Occupational Category and Job Grade are not available on the API.
Solution
- Added the two fields to the API call as requested.
Notifications
Should be allowed to save "From Email Address" as empty (#128633)
Problem
- The problem is that when you save a template on Ruleset 1, the field is filled in with the default address configured on Ruleset 1. However, when you create a new ruleset for a client, this email address is copied to the new ruleset, which prevents certain emails, like the subscription emails, from going out.
Solution
- Ruleset 1 can now save blank email addresses for templates
Ruleset Management
Unable to create a ruleset using the Copy function (#129692)
Problem
- When copying a ruleset the PM template copy fails when trying to insert Review Setup Section items, this happens when there are items with the same name and type used on more than 1 perspective. (It is possible to for example have 2 custom KPAs both called 'Key Area' under the same section, because they are custom they are different). This presented an issue on the copy where it was only creating 1 Section Item and then trying to assign the ID to both KPAs on the template which breaks the foreign key constraint. Similar scenario for KPI (L3) items.
Solution
- Had to fix/modify two places, firstly on the template copy within the same ruleset (from the review setup admin screen), this still had an issue where it would like the same custom section items across 2 different templates, resulting in changes on the one affecting the other. Followed the same approach as on contract copy to ALWAYS create custom section items as new.
- A similar fix/modification on the ruleset PM copy, with regards to the template section items, changed it to bulk create all the custom items for the section first and then assign the relevant Ids.
Version 9.1.154 (7 April 2025)
Learning Management
When Marking Learners as Absent, if Send Notifications is clicked but cancelled Endless Load Logo Loops over Interface (#129847)
Problem
- The loading screen is shown indefinitely on the attendance register.
Solution
- Removed loading variables from the attendance list and attendance modal
Confirmation on Send Notification for Absent Learners Modal Status is referencing the incorrect Email Locations (#129608)
Problem
- Custom to email recipient data was not applied because the parameter name was incorrect
Solution
- Fix parameter name and also handle cases where the custom email field is whitespace
On Save Button, Click Deselect Current Cell to Ensure Field Save (#129363)
Problem
- Edits on the mark sheet do not commit when clicking the save button without leaving cell edit mode first
Solution
- Commit values to the mark sheet on the save button even when the mark sheet is still in edit mode
Imports
Import from PaySpace (#128700)
Problem
- When the end date received from Payspace is equal the the start date which is the case with enrolments the record is rejected.
- When the termination reason is not available in the case of the above case the record is rejected.
- When an appointment is updated in Payspace the user receives a new position ID which causes a new position to be created in Signify for each update of the appointment.
Solution
- Remove the end date >= start date pre-import validation
- Remove the termination required when the end date is provided pre-import validation
- Change the position code to a concatenation of the organisation title and the employee id. This creates a position with a name per employee rather than per appointment change. This means that positions will not be reused should the employee transfer to a new position in Payspace
Cleanup duplicate records (#128477)
Problem
- When an appointment is updated in Payspace the user receives a new position ID which causes a new position to be created in Signify for each update of the appointment.
Solution
- Change the position code to a concatenation of the organisation title and the employee id. This creates a position with a name per employee rather than per appointment change. This means that positions will not be reused should the employee transfer to a new position in Payspace
People Groups
Grouped condition for reporting lines not working (#129613)
Problem
- When selecting a reporting line for custom grouping an error is given and no reporting lines are displayed.
Solution
- Included missing variable in SQL that loads the PeopleGroupReportingLine objects
The summary page is blank after creating a new Custom group and adding an org condition (#129079)
Organisational Structure
When the Org name is too long the (people, Vacancy, Inactive) does not appear (#129186)
- The organisation's name was not being displayed in full and the amount of persons and vacancies were hidden when a name is too long.
- Always displayed the vacancies and persons and showed the organisation's name in full in the tooltip
People Management
Informational displaying incorrectly calculated year/month count (#128994)
Problem
- An employee's termination date is not taken into account when calculating how long they've been in a position
Solution
- Used employee's termination date to calculate duration in position if employee has been terminated
Notifications
Emails are still being sent after the Tenant has reached expiry and close dates (#129519)
Performance Management
Final Review - Autocopy error (#129765)
- When auto-copy is enabled and the section is set to auto-distribute there is a scenario where the weights are not automatically distributed (the assumption is that it will be distributed during submission). On the auto copy auto approval it checks whether the weights are valid for all items in each section, finds these items that are not auto-distributed and still have a weight of 0% and does not auto approve the contract OS.
- When the auto-copy auto approval happens check if the section needs to be auto-distributed and always redistribute the weights before validating them for that section. This ensures that always on auto copy approval if the section is set to auto distribute it will redistribute the weights for all items according to the relevant L1 & L2s if applicable.
Version 9.1.153 (7 April 2025)
Imports
ADMIN Register (#129238)
Problem
- The All People group is synced with an empty name to V8 and created as a subgroup with no name
Solution
- Corrected the function that calculated the names of the people group
Learning Management
Teacher not able to View Marksheet and Attendance (#129069)
Problem
- The pathway groups linked to a subject can be used on another subject.
- The marks page breaks due to ambiguous start date
Solution
- Add usage to query and gRPC to filter on the subject model
- Correct query table aliases
- The stardate validation is only at the domain level and not on the front end
- Could not replicate the editing of the name issue
Version 9.1.152 (7 April 2025)
Learning Management
Pathways: Teacher not able to View Marksheet and Attendance (#129069)
Problems
- When a class group linked to a subject has comments or attendance records linked to it, the group cannot be removed from the subject
- When a subgroup is delinked from a pathway and synced to V9, the deleted pathway groups are not deleted in V9 and can be linked to new subjects.
- Pathways groups that were linked with a deleted pathway group still show a link on the subject even though it has been removed from the pathway and no longer exists
- When editing a subject and saving from the modal the data does not save
- When editing a cycle and saving from the modal the data does not save
- A subject's end data can be saved as a date before the start date
- A cycle's end data can be saved as a date before the start date
- A cycle can start before the subject started
- A cycle can end after the subject has ended
- The weights of the cycle or the interventions can be set to more than 100%
- You cannot delete a training intervention from a cycle where marks have already been assigned
- When a user is appointed from the front end or import the user is not materialised in the learning service
Solutions
- Add soft deletes to the subject pathway groups to allow deletion when linked to comments or attendance. Should the same pathway group be linked to the subject again where the group was deleted from then the previously removed group will be undeleted and the attendance/comments will be available again.
- When syncing the data from V8 and the subgroup is no longer linked to a pathway mark the pathway group as deleted. Should the subgroup be linked to the same pathway again the existing pathway group will be undeleted.
- Amend all queries to not display the pathway groups that as been deleted as linked items on the subject.
- Correct the form submitted when saving on the subject model
- Correct the form submitted when saving on the cycle modal
- Add domain exceptions to validate the subject dates
- Add domain exceptions to validate the cycle dates
- Add domain exceptions to the max weights
- Implement the soft delete on training interventions linked to a cycle
- Add the missing appointment columns in materialised users and add the consumers to materialise the appointment data also when changed
Import
Users (administrators) have blank subgroups linked to their user profiles which are also set as their preferred subgroup (#129238)
Problem
- The All People group is synced with an empty name to V8 and created as a subgroup with no name
Solution
- Corrected the function that calculated the names of the people group
HR Processes
The claims are not being processed (#129685)
Problem
- When submitting an Hr Process Request the process fails, on the logs, it is indicated unauthenticated.
- After investigations it was determined that it fails only when the Position Approval Level type is selected.
- When this is the type then the query to fetch the user details for the approval level fails due to a missing column on the dapper query.
- This failure bubbles up to the MVC that originally made the call and the MVC then tries to load the error page which fails with unauthenticated when trying to read the RulesetId, masking the original problem.
Solution
- Corrected the dapper query to select the additional required column.
- Also added additional error logging on the hr process submit to better log on JobProfiler when there is an error that occurs.
Performance Management
Display only the first 2 Decimal Points for Average Rating Score (#126335)
Problem
- When viewing the evaluation summary the Max, Min and Avg do not limit the number of decimal places
Solution
- Implemented a limit of two decimal places
Enable the editing of an uploaded document (#114656)
Problem
- When a document has been uploaded, you cannot edit it.
Solution
- Added modal to update file and title
People Management
Add card view counter (#126052)
Problem
- The direct subordinate count should show on the people management dashboard on each user card
Solution
- Implemented changes to queries as well as dashboard card to show the direct subordinates as well
Rename headings on Reporting Lines (#125944)
- On User Permissions, click on the button Reporting Lines, rename headings
-
Rename 1st column from “People Reporting To” to “People Group Name”
-
In the 1st column, add the text “People Reporting To” in front of every name (which will be the name of the People Group that is created).
-
In the Position column, remove the code in brackets, and show it on hover.
-
To save more space, show the Org path as the last +-30 characters, with on hover the full path.
Revisit the placement of the clear button (#126180)
Problem
Solution
- Added a margin on the right side of the clear button
The logged-in user shows as 'No location in org' on the Profile login details pane (#124568)
Problem
- A user has a current position in the org, however, in the My Profile section it shows
No location in org
.
Solution
- Removing the check for JobPosition Active = 1 is not needed as the person is still in the Org Structure.
Link People: Search: Select heading - update to select all within the list (#84557)
Problem
- When you search for multiple users it returns the list of employees but you then need to select each employee one by once.
Solution
- When the Select is clicked, all the people in the current list are selected as intended.
Incorrect Tooltip message (#129072)
Problem
- Incorrect Tooltip message on the circle badge which displays the count of subordinates (People Management)
Solution
- Generated new translations with the correct wording and displayed them on the frontend
Person Photo and Avatar upload issues (#122321)
Problem
- The profile preview must stick on top.
- The save button must stick to the bottom.
- The banner sizes must change like those on the image resources.
- The preview profile icon does not show the avatar on hover.
- The icons on the profile picture must change to buttons.
- When the banner is uploaded, it shows as selected, but is not shown in the preview.
Solution
- Made the required styling changes to the styling
Report Builder
Changes to Styling on the Full Report page (#121257)
Problem
- When on the Full report page of the report builder and you scroll down the headers are scrolling out of the page thus it is hard to see which column is for what.
Solution
- Implemented sticky headers so the headers always show when scrolling
Language
Remove/rename duplicate values (#107495)
Problem
- When on the language page there are duplicate translations, but they are different and used in different contexts.
- Thus the issue is to be able to see the difference
Solution
- The solution for this problem is to add a key field to display the translation key as well.
- So that the difference is visible to the user
Incorrect text displayed for Categories.Error (#118172)
Problem
- On the language page, there were sections with missing translations
Solution
- Added the missing translations
System Access
Add Libraries to the Gear menu to access Training Interventions etc (#128234)
Problem
- On the learner record| Add training page, add a spanner icon with learning libraries and system administration in it
Solution
- Adding a partial view
(_PortalHeader.cshtml)
on the Add Learner Record page when viewing an employee in People Management when signed in as a Learning Admin. - Add functionality inside the _AdministrationMenu.cshtml file to determine if the user is on this page and then only display the system admin panel and the learning libraries panel within the Admin Menu.
- Add logic inside of the Bootstrap3_PortalHeader.cshtml file to determine if a user is a Learning Admin and also is on this page before showing the wrench icon to the user.
Tenant Management
Styling on expired tenants to be changed (#120195)
Problem
- Styling on expired tenants to be changed
Solution
- Only use the styling for tenants who expire soon and not if they have already expired.
Notifications
Adding previously uploaded files as Attachments displays an error message (#125776)
Problem
- When selecting an existing file as a document for a template, it creates a duplicate, and it is not possible to distinguish between the two.
Solution
- Concatenate contentId to the filename to uniquely identify each file on the front end. Even if they are duplicates from another template.
Master Data
Use DapperInBatched instead of IN @{Ids} in system (#128268)
- Example where it has been replaced.
- The developer assigned should look for all instances where IN @ is used.
- And please test all changes made.
- Where it is used to filter people by a list of users from a peoplegroup it should be replaced by a direct join on MaterialisedPeopleGroupUsers and the in removed.
- Remove all temp tables where an insert is done for user-id and replace with a dapper batch to spare the execution time of thousands of inserts.
SigniChat
Adding a new group using people group which was previously used to be handled (#123358)
- If a user is added or removed from a people group, the chat group recipients are not synced.
- If a new chat group is created for a people group that already has a chat group, it only opens the existing chat.
- Added a sync to the chat group recipients.
- If a chat group is disabled, a new chat will be created if the same people group is selected.
New Development
Performance Management - Moderation
Administrative Roles
For the Performance Administrator Role, 2 additional permissions have been added:
- Moderate Agreements
- Quality Assure Agreements
Master Data
- Moderation Reasons
Setting
- Setting to allow Agreement Moderation
- Search according to Review Year, Review Setup and Review Period:
- People with Agreements
- Select Moderate button
- After Moderation, Quality Assure is required (if setting has been enabled)
- When Quality Assure is opened, the moderation can be done as well
Performance Management Dashboard
- If an agreement has been Moderated, the Overall Final Score will show Moderated and on hover the original score
- The Agreement also shows which KPI has been moderated
Version 9.1.151.3 (Support Release - 25 March 2025)
Performance Management
Final Review - Autocopy error (#129765)
Problem
- When auto-copy is enabled and the section is set to auto-distribute there is a scenario where the weights are not automatically distributed (the assumption is that they will be distributed during submission).
- On the auto copy auto approval it checks whether the weights are valid for all items in each section, finds these items that are not auto-distributed and still have a weight of 0% and does not auto approve the contract OS.
- When the auto-copy auto approval happens check if the section needs to be auto-distributed and always redistribute the weights before validating them for that section.
- This ensures that always on auto copy approval if the section is set to auto distribute it will redistribute the weights for all items according to the relevant L1 & L2s if applicable.
Evaluation Summary - Min and Max scores not reflecting correctly (#129365)
- The overall minimum and maximum ratings displayed on the Evaluation Summary was showing the LEAST AND MOST used ratings instead of the highest and lowest ratings used.
Solution
- Changed the overall min and max ratings to be the minimum and maximum ratings selected across all KPIs that were rated.
Copy the weights of the contracts instead of the Review Setup when using the Copy from Previous (#126081)
Problem
- As a Performance User, I want to copy the weights of the contracts instead of the Review Setup when using the Copy from Previous
Solution
- When the auto-copy setting is on, the section weights will copy from the contract, otherwise it will copy from the review
Agreement finalized with empty section when section weight change is not allowed (#129009)
Problem
- On the Review Setup, the Primary Goals Setup does not allow the section weight to be changed.
- After importing the following error was thrown, but the contract was created and finalized with the Primary goals section left blank.
- The Import will stop if an invalid agreement will be created
Able to import the same file on two different setups in the same year (#129006)
Problem
- The user could not import multiple periods at the same time, and the user could create a contract in more than one period item.
Solution
- Changed PM Import so you can import multiple periods at the same time, as well as excluding users from creating contracts in more than 1 item per review year
HR Processes
Signify Down (#129685)
Problem
- When submitting an Hr Process Request the process fails, on the logs, it is indicated unauthenticated.
- After investigations it was determined that it fails only when the Position Approval Level type is selected.
- When this is the type then the query to fetch the user details for the approval level fails due to a missing column on the dapper query.
- This failure bubbles up to the MVC that originally made the call and MVC then tries to load the error page which fails with unauthenticated when trying to read the RulesetId, masking the original problem.
Solution
- Corrected the dapper query to select the additional required column.
- Also added additional error logging on the hr process submit to better log on JobProfiler when there is an error that occurs.
Learning Management
Saving Attendance Register and Default Recipient Check on Email Notification (#129038)
Problem
- The client requested to save attendance when the notification
- The client requested that the parent checkbox be a default recipient when sending absent notifications
Solution
- Modified
CreateAttendanceNotificationModal
to callsaveAttendanceRegister
before creating notifications. - Changed
includeParent
state inAttendanceNotificationModal
totrue
by default
Tenant Management
Tenant Status stuck on 'Sending Completion Notification' (#129577)
Problem
- Ruleset and Tenant creation is failing to complete because of the recent audit changes, the calls are made anonymously and thus identity is not set, but on the audit service it tries to fetch the ruleset ID from identity, and if not found uses the RulesetId column from the changed entity.
- The problem however is that MaterialiedRuleset tables do not have the RulesetId column (It's called just Id).
Solution
- Added the INonAuditable interface to the RB and JP materialised ruleset entities. I also added a change on the SqlServerDbContext class to check that when the specific entity is the Ruleset in the Account Domain use the Id column (For audits directly on the Account. Ruleset table).
- I also added a fallback to 0 if the entity in question does not have a RulesetId. This way, the audit does not break and at least logs the audit against RulesetId 0.
Version 9.1.151.2 (Support Release - 19 March 2025)
Tenant Management
Tenant Status stuck on 'Sending Completion Notification' (#129577)
Problem
- Ruleset and Tenant creation is failing to complete because of the recent audit changes, the calls are made anonymously and thus identity is not set, but on the audit service it tries to fetch the ruleset ID from identity, and if not found uses the RulesetId column from the changed entity.
- The problem however is that MaterialiedRuleset tables do not have the RulesetId column (It's called just Id).
Solution
- Added the INonAuditable interface to the RB and JP materialised ruleset entities.
- Also added a change on the SqlServerDbContext class to check that when the specific entity is the Ruleset in the Account Domain to use the Id column (For audits directly on the Account.Ruleset table).
- Added a fallback to 0, for if the entity in question Does not have RulesetId, this way the audit does not break and at least logs the audit against RulesetId 0.
System Close Date shows differently on the list screen than on the Tenant screen (#128903)
Problem
- Tenants' close dates would be displayed differently on the Tenant Management and the Tenant Profile page.
Solution
- Changed the one date to take the user's time zone into account
Performance Management
Evaluation Summary - Min and Max scores do not reflect correctly (#129365)
Problem
- The overall minimum and maximum ratings displayed on the Evaluation Summary showed the LEAST AND MOST used ratings instead of the highest and lowest ratings.
- Changed the overall minimum and maximum ratings to be the minimum and maximum ratings selected across all KPIs that were rated.
Organisational Unit
When the Org name is too long the (people, Vacancy, Inactive) does not appear (#129186)
Problem
Learning Management
Saving Attendance Register and Default Recipient Check on Email Notification (#129038)
Problem
- The client requested to save attendance when the notification
- The client requested that the parent checkbox be a default recipient when sending absent notifications
Solution
- Modified
CreateAttendanceNotificationModal
to callsaveAttendanceRegister
before creating notifications. - Changed
includeParent
state inAttendanceNotificationModal
totrue
by default
Show period dates on the mark sheet (#123699)
Problem
- The dates are not showing on the mark sheet
Solution
- Add the dates to display on the mark sheet
Data Warehouse
Added additional data (#120152)
Problem
- LearningManagement data needed to be added for WFA School reports
Solution
- Added Datasource fields lmStudentSubjects and lmTermResults to the V9 DWH with the required fields
Version 9.1.151.1 (Support Release - 18 March 2025)
Performance Management
Copy the weights of the contracts instead of the Review Setup when using the Copy from Previous (#126081)
- When only the following setting is enabled:
- Then the section weights are copied from the review setup
- If both settings are enabled:
- Then the section weights are copied from the contract that you are copying from.
Agreement finalized with empty section when section weight change is not allowed (#129009)
Problem
- On the Review Setup, the Primary Goals Setup does not allow the section weight to be changed.
- After importing the following error was thrown, but the contract was created and finalized with the Primary goals section left blank.
- The Import will stop if an invalid agreement will be created
Able to import the same file on two different setups in the same year (#129006)
Problem
- The user could not import multiple periods at the same time, and the user could create a contract in more than one period item.
Solution
- Changed PM Import so you can import multiple periods at the same time, as well as excluding users from creating contracts in more than 1 item per review year
Audit
Investigate and implement solutions for better audit data retrieval (#119199)
Problem
- Get an error message when trying to get audit data for a specific table
Solution
- Corrected mapping of audit log lists to populate the front-end page
Version 9.1.151 (17 March 2025)
Imports
PaySpace Signify discrepancy script (#129254)
Problem
- A user cannot validate all the received data from PaySpace or Powershell with the data currently in the system
Solution
- Add staging of the received data in the pull processes for Powershell and Payroll
- Include the import types on the front end for the allowed types to export the report
- Extend the allowed export period to 7 days
Signify Assistance (#128700)
Issue 1
Problem
When dapper batched has more than 2000 entries in the list it Ands multiple in statements together which returns no result
e.g AND( mu.Username in ('U1',....'U2000') AND mu.Username in ('U2001',....'U3000') )
When used like
public async Task<List<(int Id, string Username)>> ListUsersIdsAsync(int rulesetId, string[] usernames)
{
using var connection = new SqlConnection(_connectionString);
await connection.OpenAsync();
var sql = $@"
SELECT
muser.[Id] [Id],
muser.[Username] [Username]
FROM
[JobProfiler].[MaterialisedUsers] muser WITH(NOLOCK)
WHERE muser.RulesetId = @rulesetId
AND {usernames.DapperInBatched(GlobalConstants.MaxDapperBatchSize, "muser.Username")}";
Solution
- When in is used use the OR when not in is used use the AND
- When a string has accents, escape it, e.g. TS'01 will be 'TS''01' within the in statement
Issue 2
- When multiple payroll connectors are set as scheduled imports, the parallel execution causes a DBContext conflict.
- This will need to be resolved, but for now, the parallel execution has been changed to a normal execution method, which should resolve this issue.
Problem
- Due to high traffic and/or other issues, the event to update the materialised users table in the job profiler is not always being consumed in time for the appointments to be created.
- This then caused the appointment controller to search for the user in the materialized tables that did not exist.
Solution
- Create a fall back where when the materialized table has not been updated in time, the relevant appointment controllers fetches the required data and triggers the updates before continuing with the appointment creation.
Main Dashboard
System Error Message (#129232)
Problem
- If the fallback path does not exist and an error occurs on the Dashboard page and the Edit banner pages
Solution
- Introduce
fallbackImagePath
for default image handling. Update logic to check for fallback directory when no default background files are found
Performance Management
Unable to import VB items if the section setting is disabled to allow section items to change (#129141)
Problem
- The user could not import multiple periods at the same time, and the user could create a contract in more than one period item.
Solution
- Changed PM Import so you can import multiple periods at the same time, as well as excluding users from creating contracts in more than 1 item per review year
Issues to access performance module (#129162)
Problem
- When a user's position is set as inactive, the user is not seen as part of the people groups used to determine which review years to show on the PM dashboard.
Solution
- Replace the active check with not deleted to be part of the dashboard always as long as the position exists
Evaluation Summary not available after Final Approval (#129000)
Problem
- When users view their contract and the employee evaluation is on and has a due date, regardless of the phase, the button cannot be seen.
Solution
Review Period Dates & Review Year Dates - Validation Messages Include Time Erroneously (#125347)
Problem
- On the review year setup and review period setup pages, when the End Date is selected as a Date that falls before the Start Date, validation correctly occurs; however, when the message displaying the error is displayed, it includes the time (00:00:00), which should be removed. The date is also in the format YYYY-MM-DD could this be adjusted to reflect the correct Date Format in accordance with the Language Selected?
Solution
- Changed the dates of the translations to short date string, with the correct timezone and culture
Unable to include the Value Survey score (#128772)
Problem
- Saving a contract survey gave SQL Dapper an error because of new columns added to the query object used on an unrelated query, causing it to break here.
Solution
- Made the query model used by the Survey creation distinct from the other usages.
Data Warehouse
PAS report: Overall Final score not correct (#129134)
Problem
- The Overall Final Score are not being calculated correctly within the Datawarehouse
Solution
- Adjusted the calculation of the Overall Final Score to consider excluded Review Items
Additional fields for the Group / Classes Report (#120152)
Added the additional fields
- Subject Setup: Setup and Config > Ruleset Setup > Product Setup > Learning Management > Product Setup > *subject*
- Marksheet: LMS > [OPEN] Category > [OPEN] Pathway > Class/Group Step > Marksheet
- Attendance History: LMS > [OPEN] Category > [OPEN] Pathway > Class/Group Step > Attendance History
- Training Interventions (linked to subject setup): Administration > Training Interventions > Type: Certification Point
- Training Interventions (subject assessments): Administration > Training Interventions > Type: Assignment
People Management
Error when deleting a user (#128917)
Problem
- The permissions required to terminate an employee was different between the grid view and when editing an employee.
- Ensured both termination methods do the same permission check.
User Error (#128950)
Problem
- When multiple processes materialise the same people group at the same time, the people group calculation fails due to duplicate insert
The performance management consumer for the reporting line consumes other reporting line types than LM and PM, resulting in unnecessary errors
Solution
- When inserting, confirm that the entry is not part of the people group
Filter the reporting line types used in the consumer and do not process the other types
Notifications
SMS Notifications Not Being Sent (#128562)
Problem
- An SMS cannot be sent by event or process.
Solution
- Correct test SMS sending from the template
- Correct test SMS sending from the SMS setup
- Implement mock sending of SMSs from both the SMS setup and the template
- Correct the actual sending of an SMS via Zoom
All Tenant Subscription mails to come from Global Ruleset (#125943)
Problem
- The Tenant Subscription process (Fee overdue, system close warnings, etc) must use the Global Ruleset templates.
Solution
- The above template is set to be active only on the default ruleset.
Report Builder
Auto scroll when dragging and dropping columns (#123392)
Problem
- The first problem is that dragging was registered when dragging in the middle of the table somewhere and also dragging the scrollbar at the bottom. This resulted in some strange behaviour while dragging/scrolling.
- The second issue is that I added a timeout previously to try to limit the number of requests while rearranging the headers.
- This resulted in the incorrect orders sometimes being saved, especially if you drag very quickly.
- Made sure that you can only re-arrange/drag the columns on the headers of the columns and removed the timeout, ensuring that the correct order is always saved.
Ruleset Management
Uptime Indicator not shown on the Login page when the Uptime URL is empty (#128373)
Problem
- When the default ruleset updates the default uptime monitor URL, the cache is not getting cleared for the other rulesets.
- Added a cache implementation to bust the cache of multiple rulesets
Job Profiler
Support user shown on Org when ruleset is copied (#128500)
Problem
- Support users included in people groups and org structure
- Users linked to inactive or deleted appointments after termination cannot be found on people management
Solution
- Add check to only include system users
- Removed active and deleted position filter checks for people management queries.
I want to be able to find the terminated person (#122809)
Problem
- Support users included in people groups and org structure
- Users linked to inactive or deleted appointments after termination cannot be found in people management
Solution
- Add check to only include system users
- Removed active and deleted position filter checks for people management queries.
Version 9.1.150 (17 March 2025)
Notifications
SMS Notifications Not Being Sent (#128562)
Problem
- An SMS cannot be sent by event or process.
Solution
- Correct test SMS sending from the template
- Correct test SMS sending from the SMS setup
- Implement mock sending of SMSs from both the SMS setup and the template
- Correct the actual sending of an SMS via Zoom
Changes to template are not being propagated (#128679)
All Tenant Subscription mails to come from Global Ruleset (#125943)
Problem
- Tenant Subscription process (Fee overdue, system close warnings, etc) must use the Global Ruleset templates.
Solution
- The above template is set to be active only on the default ruleset.
People Management
User error (#128950)
Problem
- When multiple processes materialised the same people group at the same time, the people group calculation fails due to duplicate insert
- The performance management consumer for the reporting line consumes other reporting line types than LM and PM, resulting in unnecessary errors
Solution
- When inserting, confirm that the entry is not part of the people group
- Filter the reporting line types used in the consumer and do not process the other types
Report Builder
Auto scroll when dragging and dropping columns (#123392)
- The first problem is that dragging was registered when dragging in the middle of the table somewhere and also dragging the scrollbar at the bottom. This resulted in some strange behaviour while dragging/scrolling.
- The second issue is that I added a timeout previously to try to limit the number of requests while re-arranging the headers. This resulted in the incorrect orders sometimes being saved, especially if you drag very quickly.
- Made sure that you can only re-arrange/drag the columns on the headers of the columns and removed the timeout, ensuring that the correct order is always saved.
Ruleset Management
Employee data integration (#119925)
Uptime Indicator not shown on the Login page when the Uptime URL is empty (#128373)
Problem
- When the default ruleset updates the default uptime monitor URL, the cache is not getting cleared for the other rulesets.
Solution
- Added a cache implementation to bust the cache of multiple rulesets
Uptime Indicator shown on Employee Profile Summary even though ruleset 1 or user's ruleset have no Up-time Monitor URL set (#128374)
Problem
- When the default ruleset updates the default uptime monitor URL, the cache is not getting cleared for the other rulesets.
Solution
- Added a cache implementation to bust the cache of multiple rulesets
Helper text on Up-time Monitor URL to be adjusted (#128456)
Problem
- The uptime monitor URL help text did not show the default URL that is set in ruleset 1.
Solution
- Fixed the translations of the URL help text.
Performance Management
Review Period Dates & Review Year Dates - Validation Messages Include Time Erroneously (#125347)
Problem
- On the review year setup and review period setup pages, when the End Date is selected as a Date that falls before the Start Date, validation correctly occurs; however, when the message displaying the error is displayed, it includes the time (00:00:00), which should be removed. The date is also in the format YYYY-MM-DD, could this be adjusted to reflect the correct Date Format in accordance with the Language Selected?
Solution
- Changed the dates of the translations to short date string, with the correct timezone and culture
Unable to include the Value Survey score (#128772)
Problem
- Saving a contract survey gave SQL Dapper an error because of new columns added to the query object used on an unrelated query, causing it to break here.
Solution
- Made the query model used by the Survey creation distinct from the other usages.
Organisational Structure
Support user shown on Org when ruleset is copied (#128500)
Problem
- Support users included in people groups and org structure
- Users linked to inactive or deleted appointments after termination cannot be found in people management
Solution
- Add check to only include system users
- Removed active and deleted position filter checks for people management queries.
Data Warehouse
Improve performance on full refresh (#128181)
- Data is deleted on a full refresh
- Rather truncate than delete to improve performance
Version 9.1.149 (17 March 2025)
Translation
The last language the user was logged in as is used even though the user has selected another language (#126729)
Problem
- When on the log-in page and the user change their language and log in. It does not update the preferred language.
- This issue only happens on the deployed versions.
Solution
- Implemented a possible fix for the deployed versions to make use of the correct context.
Search results show the accordion which results fall under (collapsed) (#126575)
Problem
- When searching for a translation, although the section tables are filtered correctly, the section accordions stay collapsed; this makes it look like there is no match found if the section is collapsed.
Solution
- When searching, always expand the section accordions where a match was found and reset accordingly on search clear
Performance Management
I want to import PM Agreements into V9 (#124514)
- Combine the Goals, Behaviour and Competency imports into one Full Performance Agreement Import that can handle all sections at once
- Modify the current functionality to not only create but also update existing contracts
- If the Import defines a section that is not configured on the review setup, those items will be exceptioned
- Section Items will be matched by name to allow importing additional items on a contract
- Implement the new requirement to import ratings
- The import should adhere to all rules that are applied when a contract is created/updated from the Front End (Dual Approve, Final ratings only, etc)
- Add checkbox to the import selection to "Approve contracts where completed"
- When the above parameter is set, the import should try to approve the Objective Settings, and it should try approve ratings if all ratings are provided. All current Objectives and Ratings Approval rules should be followed.
- Test multiple scenarios with new and existing contracts separately and on the same sheet; test with adding new items only to a contract; test Objectives and ratings approvals
Hide Evaluation Summary Button on Ratings Phase (#126277)
Problem
- The evaluation summary button shows in the ratings phase for the employee even if the hide evaluation summary setting is on.
Solution
- Added setting test on missed Show Evaluation Summary button
Evaluation Summary Button and Modal Available on Employee Self-Rating Modal (#126278)
Problem
- Evaluation summary button shows in the ratings model for the employee even if the hide evaluation summary setting is on.
Solution
- Added setting test on missed Show Evaluation Summary button
Cannot save a Review Setup once validation has been triggered (#126065)
Problem
Solution
- The disable is unnecessary because the loader is shown.
Review Period Dates & Review Year Dates - Validation Messages Include Time Erroneously (#125347)
Problem
- On the review year setup and review period setup pages, when the End Date is selected as a Date that falls before the Start Date, validation correctly occurs; however, when the message displaying the error is displayed, it includes the time (00:00:00), which should be removed.
- The date is also in the format YYYY-MM-DD; could this be adjusted to reflect the correct Date Format in accordance with the Language Selected
Solution
- Changed the dates of the translations to short date string, with the correct timezone and culture
People Management
Business Address information contains grammar errors (#127652)
Problem
- Business Address Information contains grammar errors
Solution
- Using the
signify translation tool
to correct the grammar issue and update translations.
Error when user tries to reset their own password (#126175)
Problem
- When the user tries to reset their own password, the attempt fails because the call is checking whether the user has the People Admin role.
- This should not be done when the user is resetting their own password.
Solution
- Changed the ResetPassword call to check whether the user has the People Admin role or if the user whose password is being reset and then allow the action. Also changed the message displayed for when the user resets their own password from "A notification has been sent to the Person to reset their password" to "A notification has been sent to you to reset your password."
As a person with access to Appointment History, I want to see the Start Date in Group and Company fields (#122770)
Problem
- Cannot update the Start Dates
Solution
- Added 2 fields that can be updated
- Start Date in Group
- Start Date in Company
As a person with access to Appointment History, I want to be able to add a Secondary Position (#122771)
Problem
- A secondary position cannot be added
Solution
- Add another section to add the secondary positions
Added the Start Date in Group and Company fields to the Employee Data Import (#126716)
Problem
- The start date in the group is not on the people data import
Solution
- Add the fields to the people data import
Master Data
Seeded data not appearing in drop downs on Employee Profile (#126916)
Problem
- Location, country and province master data did not display on the "Address" section due to conflicting component names which also appear on the "Summary" section.
Solution
- Give unique names to the component elements, ensuring that the master data correctly displays on both the "Address" and "Summary" sections
Navigating to the requirements tab displays an error (#127019)
- Barched queries failed due to too many of the same foreign keys
- Updated query to use DapperExtension to reduce the amount of parameters and remove batch query functionality
The load indicator is shown indefinitely when clicking on a person's profile (#127605)
- DapperInBatched used incorrectly in translation query, causing an invalid SQL query to be generated.
Solution
- Ensure that DapperInBatched is used correctly for the query.
Data Warehouse
Grades Mismatched in Signify & SFTP (#126629)
Problem
- Data did not return on ReportBuilder due to PeopleGroups not being refreshed (Performance issues)
Solution
- Adjusted PeopleGroupUsers task in DWH so that the table is truncated only between 12 and 1 in the morning and not as well in the afternoons
Date field is not recognised as a date in the report filter (#125626)
Problem
- ApproverDate fields within jpHRProcesses are set as NVARCHAR DataType and not DATETIME2
Solution
- Set datatype for ApproverDate fields from NVARCHAR to DATETIME2
Job Profiler
ListUsersExport not returning all or correct information (#126458)
Problem
- The API call returns the OfoCode ID instead of the Name.
Solution
- Corrected the Select statement to return the OfoCode Name.
Inactive Positions (Not Published) are not accounted for correctly by the system. (#126723)
- Inactive Positions are not being accounted for correctly by the system.
- Ensure that inactive positions are counted correctly.
Learning Management
No error detail if absent notification cannot be sent to Parent/Guardian (#123832)
Problem
- Add a username column to the exported report to help identify which user needs their contact details updated.
Solution
- Added the
Username
field to theNextOfKinInfo
record inUserViewModel.cs
. - Updated the
NextOfKinInfo
record inUsersServiceV1.cs
to include theUsername
field. - Modified the
RecipientConfirmationExportInfo
message inlearning_management.v1.proto
to includerecipient_username
and reordered the fields. - Added the
Username
field to theNextOfKinInfo
message inuser_management.v1.proto
. - Updated the
AbsenteeNotificationsRecord
andAbsenteeNotificationExportInfoRecord
records inNotificationViewModel.cs
to include theLearnerUsername
andRecipientUsername
fields respectively. - Modified the
LearningManagementServiceV1
class to include theUsername
field in various LINQ queries and response objects. - Updated the
AttendanceNotificationExportViewModel
class to include theUsername
field in theNotificationEmailExportDTO
. - Added the
Username
field to theNotificationEmailExportDTO
record inAttendanceNotificationDTO.cs
. - Modified the
LearningManagementExportService
class to include theUsername
field in the data export process. - Updated the
learningManagement.json
localization file to include therecipientUsername
key and its translations in multiple languages. - Ensured consistency in the
learningManagement.json
file by adding therecipientUsername
key and its translations across different locales. - Added the
Username
field to various classes and methods to ensure that the username is included in the data processing and export functionalities.
Report Builder
Error when saving without specifying a Report Name (#126792)
Problem
- When trying to save a report without having specified a name for the report, an unspecified error occurs.
Solution
- There is now a validation message when leaving the Report Name empty and clicking on Save
Notifications
Delete button remains disabled; therefore, unable to delete a schedule (#126839)
Problem
Solution
- Enable the delete button when text is added to the Reason field, and I have accepted the acknowledgement
Schedule Setup: User can set a one-off custom schedule to time already passed (#96569)
Problem
- The user is still able to type in a time that has already passed.
Solution
- Added validation to test if the time is valid; if not, it will be set to the min time
Changes to templates not saved on the first click (#116472)
Problem
- Snack message not properly displayed when saving template.
Solution
- Ensure the snack is properly displayed when saving the template
Tenant Management
Unable to copy the link of a newly created Tenant's URL (#125624)
Problem
- Unable to copy the link of a newly created Tenant's URL
Solution
- Changed the URL to use the Clipboard API, with a fallback for older browsers.
Imports
User Import Validation Report (#124039)
- After a user import has been completed, there is no simple way for an imported user to validate that all data is the same as expected.
- Add a report to be generated for each user import from that compares the data requested for import with the data currently in the system.
- On the Notification | Imports page for the user import add an additional action User validation Report
- When this button is clicked a report is generated for the list of users imported in the form of the import sheet
- The report is a comparison report exporting the field requested for import vs the current system value of the import e.g.
- Username, CurrentUsername, Name, CurrentName, Surname, CurrentSurname
- Add a new first column ValidationMessage. When any field is not insync between the import and the current value then it lists the column name that is incorrect e.g.
- Invalid Data: Name, Surname, StartDate
- RULE: only allow for comparison/validation if import ran in the last day
Organisational Structure
Drag and Drop Positions incorrectly increments people count for Org Unit rather than vacancy count (#126413)
- Drag and drop positions incorrectly increment people count for org unit rather than vacancy count.
- Ensure that the people count increments correctly based on if it is a vacant position or not.
Version 9.1.148.2 (Support Release - 8 March 2025)
Imports
Error on Employee Automated import (#128700)
Problem
- When the end date received from Payspace is equal to the start date, as is the case with enrolments, the record is rejected.
- When the termination reason is not available in the case of the above case the record is rejected.
- When an appointment is updated in Payspace the user receives a new position id which causes a new position to be created in Signify for each appointment update.
Solution
- Remove the end date >= start date pre-import validation
- Remove the termination required when the end date is provided pre-import validation
- Change the position code to a concatenation of the organisation title and the employee id. This creates a position with a name per employee rather than per appointment change. This means that positions will not be reused should the employee transfer to a new position in Payspace .
Performance Management
Evaluation Summary not available after Final Approval (#129000)
Problem
- When users view their contract and employee evaluation is on and has a due date, regardless of the phase, the button cannot be seen.
Solution
Unable to include the Value Survey score (#128772)
Problem
- Saving a contract survey gave SQL Dapper an error because new columns were added to the query object used on an unrelated query causing it to break here.
Solution
- Made the query model used by the Survey creation distinct from the other usages.
People Management
User error (#128950)
Problem
- When multiple processes materialised in the same people group at the same time the people group calculation fails due to duplicate insert
- The performance management consumer for the reporting line consumes other reporting line types than LM and PM resulting in unnecessary errors
Solution
- When inserting confirm that the entry is not part of the people group
- Filter the reporting line types used in the consumer and do not process the other types
Error after appointing a new person (#128545)
Problem
- When appointing a new user the people groups are not busted in time of the profile page load due to eventual consistency
Solution
- Move the busting to the job profiler service to bust the materialised cached in the service first and then all the rest of the services.
Termination reasons (#128535)
Problem
- Inactive termination reasons are shown in the dropdown
Solution
- Only show active termination reasons. You still cannot delete a termination reason if it has been used, regardless of whether it is active or not.
Version 9.1.148.1 (Support Release - 26 February 2025)
People Management
Error after appointing a new person (#128545)
Problem
- When appointing a new user, the people groups are not busted in time of the profile page load due to eventual consistency
Solution
- Move the busting to the job profiler service to bust the masterialised cache in the service first and then all the rest of the services.
Termination reasons (#128535)
- When terminating an employee, choosing a termination reason and then deactivating that reason in MasterData should no longer be an option when terminating another user.
- Only active termination reasons should be available as options
- The deactivated reason should still be on the appointment history record.
Performance Management
Additional API End Point (#128359)
Problem
- Request to make additional PM endpoint accessible via Api and include review year name on overall scores endpoint
Solution
- Added Reviewyear name to ListUsersOverallScores and made ListReviewYears accessible via API.
Learning Management
No error detail if absent notification cannot be sent to Parent/Guardian (#123832)
Problem
- No indication anything is wrong, only an empty cell within the columns email, name and surname
Solution
- Updated LearningManagementExportService to handle cases where recipient details (email, name, surname) might be missing using localized strings.
Training Interventions Duplicating on Marksheet (#128548)
Problem
- When viewing the mark sheet, duplicate training interventions and mark setups are shown when only 1 subject and training intervention have been linked.
- The problem is that when a class subject or class training intervention is deleted, the query does not filter out the deleted records.
- Change the select mark sheet setup query to exclude deleted class training interventions and class subjects.
Nextcloud error is displayed when you open the Marksheet link on an email (#124536)
Problem
- URL is incorrect on Angelo's Sites
Solution
- Added import for
generateUrl
from../../helpers/generateUrl
. Updatedaxios.get
call to usegenerateUrl
Attendance and Marksheet not working anymore for Teachers (#128087)
Problem
- The teacher can't view the Attendance list since the GPRC call doesn't allow LearningAdmins
Solution
Identity and Authorisation
People Connect Slowness in APAC (#128284)
Problem
For the SSO from V8 to V9, when the identity cookie has expired, a "Too_Many_Redirects" error is shown, and the browser session is terminated. Users are then unable to continue to V9 until they delete their cookies.
There are 2 problems here:
-
This is the iterative error that happens on the error page. When the 1st failure happens, the error page is loaded. The error page uses the same base layout as other pages. It tries to access resources/information that requires an authenticated user, but since that was the initial cause of failure, the error page breaks and gets redirected to the error page from start again, which continues to fail until the browser forces a discontinuation.
-
This is the initial failure, which is that the SSO redirect fails because MVC sees the user identity (from the webmvc) token as authenticated / still valid, but according to Identity. Api itself The user token has expired. The identity is never recreated until the cookies are physically deleted.
Solution:
- Added unauthenticated try catches to the base layout to handle situations where the error page is loaded without a user being authenticated. This at least prevents the browser discontinuation and displays the error page, we will need to look at improving this handling in future.
- Made modifications to how the SingleSignOn token is handled by always expiring and then deleting the MVC cookies and forcing the re-authentication with Identity through use of an additional ChallengeCompleted flag. This then checks whether it is a new SSO request and re-initializes the identity auth-flow regardless of whether the Identity User is seen as authenticated or not.
Imports
There is an overlapping position error when terminating one employee and appointing another in the position in the same file (#126495)
Problem
- When importing for a position that does not exist in the system, the terminated record and transfer of the terminated record are handled as new appointments. When comparing the overlap, the terminated appointment's end date was not considered, thus causing the transfer to overlap the terminated record.
Solution
- Change the overlap check
- Add a unit test for the scenario
Notifications
Zoom Connect Credentials not persisting (#128180)
Problem
- Was calling an async method while not awaiting
Solution
- Added await to the call
Version 9.1.148 (24 February 2025)
Notifications
Notification sent out based on historical dates (#120742)
Problem
- Licence expiry notifications are sent for inactive subscriptions.
Solution
- Changed query to select only the latest subscription of the tenant
Zoom Connect Credentials not persisting (#128180)
Problem
- Was calling an async method while not awaiting
Solution
- Added await to the call
Add time to Welcome email (#124699)
Problem
- An error is given when the Welcome Notification button on a user profile is clicked.
Solution
- Fixed issue with getTemplates query
Ruleset Management
The payroll name is not saving and PowerShell cannot be null (#128236)
- The payroll connector was not saving due to a prototype not being nullable, and the name field was not saving due to multiple name fields with the same ID
- Made prototype nullable and chose name field based on visible container.
Performance Management
Copy Over Scorecard (#128182)
- When creating a new contract and selecting Copy From Another, only subordinate contracts for the current Review Year were returned, you then cannot create a contract for someone in the current year from a colleague on a previous year.
- Fix the query that returns the list of contracts to pull for all previous years, also remove the subordinate ID fetch from JobProfiler and instead rely directly on the materialized table PerformanceManagerUserIds. Made the selection modal scrollable.
Inactive Rating Scale item still taken into account (#127347)
- Disable the Active toggles when anyone has started rating - same as the delete rule
- Add a tooltip on the disabled Active
- This rating value is already in use by some agreements
- Also, disable the Click to add another item
- When a rating value has not yet been used and you make the item inactive, then this should not reflect as an option on the agreement when rating
Hide Evaluation Summary Button on Rating Phase (#126277)
Problem
- Evaluation summary button shows in the rating phase for the employee even if the hide evaluation summary setting is on.
Solution
- Added setting test on missed Show Evaluation Summary button
Evaluation Summary Button and Modal Available on Employee Self-Rating Modal (#126278)
Problem
- Evaluation summary button shows in the rating model for the employee even if the hide evaluation summary setting is on.
Solution
- Added setting test on missed Show Evaluation Summary button
PM Module Not Working (#126464)
Job Profiler
List pages reverting to page 1 (#126261)
Problem
- When on the job profiler page and I go to page 2 and edit a record and navigate back it redirects to page 1. I want it to remember that I was initially on page 2
Solution
- Implemented a solution to remember the page, save it in local storage and when on the edit page I add the page to the query params of all back buttons and remove it from local storage. Thus it remembers the page but also forgets it when navigating completely away
Data Warehouse
Update Start Date in Group & Company; Add Secondary Positions (#121328)
Added the following fields:
- Role Allocation Percentage
- Start Date in Group
- Start Date in Company
Add 2 new interpolation fields (#127243)
Two additional Interpolation actual value fields have been added, one for the Employee's Actual Value and another for the Manager's Actual Value.
The following 2 fields were added:
- InterpolatedManagerValue
- InterpolatedUserValue
Adjust DWH deployment workflow for V8 DWH packages (#126906)
- Workflow can only deploy V9 DWH packages
- Adjust workflow (by adding a dropdown for V8 database names) to deploy V8 DWH package.
Employee Import
Error on People Group Import Request under Integrations (#127998)
Problem
- The prevented import translation is not shown when requesting bulk imports within 5mins from each other
Solution
- Add logic to show the message when forbidden
Learning Management
No error detail if absent notification cannot be sent to Parent/Guardian (#123832)
Problem
- No indication anything is wrong only an empty cell within the columns email, name and surname
Solution
- Updated LearningManagementExportService to handle cases where recipient details (email, name, surname) might be missing by using localized strings.
Version 9.1.147 (24 February 2025)
Performance Management
The evaluation Period drop down is emptied when you save/reload (#124214)
Problem
- The new Evaluation Period field is cleared every time the page reloads, even after saving
Solution
- Ensure the values are saved correctly even when reloading the screen
Inactive Rating Scale item still taken into account (#127347)
Problem
- When you configure the PM module with a rating scale of 5, for example, and the 5th rating is disabled, the PM calculation still includes the disabled rating.
Solution
- Disable the Active toggles when anyone has started rating - same as the delete rule
- Add a tooltip on the disabled Active
- This rating value is already in use by some agreements
- Also, disable the Click to add another item
- When a rating value has not yet been used and you make the item inactive, then this should not reflect as an option on the agreement when rating
Notifications
Schedule Setup: Able to save monthly (days of the week schedule) without specifying Weeks and Days (#86006)
Problem
- When selecting monthly as a schedule type the "Choose Weeks" and "Choose days" dropdowns did not show. Also validation issues
Solution
- Issue in the code that did not call correctly on the change event, so a fix for that has been implemented.
- Also added the requested validation styling on dropdowns
Email sent when new ruleset is created contains Reset OTP placeholder instead of actual OTP (#128113)
- User authentication and user forgot password used the incorrect placeholder's name for "ResetOTP"
- Ensure that those events use the correct placeholder's name.
Version 9.1.146 (24 February 2025)
Notifications
The user who registers does not receive their email (#126173)
Problem:
When a new user registers on the system using the Identity auto registration functionality:
- The default appointment record did not get created leading to the user being seen as inactive due to not having an appointment.
- The email confirmation email did not get sent out and the user could never continue with the registration
Solution:
- Ensure that when registering the default appointment gets created.
- Resolve the issue where the confirmation email was not getting sent out after the user registers.
Add time to Welcome email (#124699)
Problem
- When the Welcome Notification button on a user profile to is clicked, an error is given.
Solution
- Fixed issue with getTemplates query
Data Warehouse
Add 2 new interpolation fields (#127243)
- Two additional Interpolation actual value fields have been added, one for the Employee's Actual Value and another for the Manager's Actual Value.
- The previous Interpolation Actual Value field now serves as the Final Actual Value.
- Please add the following 2 fields from ContractPeriodSectionItems to the DWH & DD:
- InterpolatedManagerValue
- InterpolatedUserValue
- Rename the InterpolatedActualValue on the DWH to "InterpolatedFinalValue" (only change on DD and DWH for the client's benefit)
Adjust DWH deployment workflow for V8 DWH packages (#126906)
- Workflow can only deploy V9 DWH packages
- Adjust workflow (by adding a dropdown for V8 database names) to deploy the V8 DWH package.
Grades Mismatched in Signify & SFTP (#126629)
- Data did not return on ReportBuilder due to PeopleGroups not being refreshed (Performance issues)
- Adjusted PeopleGroupUsers task in DWH so that the table is truncated only between 12 and 1 in the morning and not as well in the afternoons
The date field is not recognised as a date in the report filter (#125626)
- ApproverDate fields within jpHRProcesses are set as NVARCHAR DataType and not DATETIME2
- Set datatype for ApproverDate fields from NVARCHAR to DATETIME2
Import
Error on People Group Import Request under Integrations (#127998)
Problem
- The prevented import translation is not shown when requesting bulk imports within 5mins from each other
Solution
- Add logic to show the message when forbidden
- Correct the domain errors for the job profiler and report builder that show only the translation key
Learning Management
No error detail if absent notification cannot be sent to Parent/Guardian (#123832)
Problem
- No indication anything is wrong only an empty cell within the columns email, name and surname
Solution
- Updated LearningManagementExportService to handle cases where recipient details (email, name, surname) might be missing by using localized strings.
People Management
Error when a user tries to reset their password (#126175)
Problem
- When the user tries to reset their password the attempt fails because the call is checking whether the user has the People Admin role. This should not be done when the user is resetting their password.
Solution
- Changed the ResetPassword call to check whether the user has the People Admin role or is the user whose password is being reset and then allowed the action. Also, change the message displayed when the user resets their password from "A notification has been sent to the Person to reset their password." to "A notification has been sent to you to reset your password."
Learning Store
Learning Store Description on the deactivated product does not contain any information (#125890)
Problem
- There is no description when the product is deactivated
Solution
- Add the description
- The Learning Store module enables organizations to showcase their eLearning library to external users. It also integrates eCommerce, allowing the library to be made available for purchase.
Master Data
Load indicator shown indefinitely when clicking on person's profile (#127605)
Problem
- DapperInBatched was misused in the translation query, causing an invalid SQL query to be generated.
Solution
- Ensure that DapperInBatched is used correctly for the query.
Navigating to the requirements tab displays an error (#127019)
- Barched queries failed due to too many of the same foreign keys
- Updated query to use DapperExtension to reduce the number of parameters and remove batch query functionality
Seeded data not appearing in drop downs on Employee Profile (#126916)
- Location, country and provided master data did not displayed in the "Address" section due to conflicting component names which also appear in the "Summary" section.
- Give unique names to the component elements, ensuring that the master data correctly displays on both "Address" and "Summary" sections
Ruleset Management
Able to log into a deactivated ruleset (#126304)
Problem
- User could not log in immediately after a ruleset was activated / User could log in after a ruleset was de-activated.
Solution
- Bust the cache when activating/deactivating ruleset
Performance Management
Interpolation to allow decimal actual values (#126547)
Problem
- The interpolated ratings only allow capturing whole number actual values, the request is to allow to capture decimals.
Solution
- Make the interpolation ratings value column decimal and apply type changes accordingly.
Version 9.1.145 (24 February 2025)
Ruleset Management
Able to log into a deactivated ruleset (#126304)
Problem
- The user could not log in immediately after a ruleset was activated / User could log in after a ruleset was de-activated.
Solution
- Bust the cache when activating/deactivating the ruleset
Performance Management
Interpolation to allow decimal actual values (#126547)
Problem
- Cannot add decimal actual values
Solution
- Change the functionality to allow for decimals
Action plan copy from previous does not work as expected (#124270)
Problem
4 Action plan-related fixes on this PR.
-
This label was updated, it does not reflect Review Periods but rather the Review Setups
-
There was some confusion as to how the Copy Action Plans From Previous should work, the consensus between me, Bertie and Lee-Ann is that you can only copy from your previous review years. You cannot use this to copy APs from an earlier Review Period within the same setup (This should happen with the CreateContractFromPrevious fix 4)
Changed the query for the review years to exclude the year for the current contract. -
The Copy Action Plans From Previous was not copying all the information, only Name and Description. Including now all AP fields on the copy.
-
When doing CreateContractPeriodFromPrevious it must also copy any Action Plans that exist on that contract period. (which it did not do)
Solution
- Updated the translation to correct the label to show Review Setup
- Changed the query for the review years to exclude the year for the current contract.
- Modified the Action Plan handlers and queries to select all the additional information and to also copy that when creating the item. Had to fix an update here and there
- Added a new portion to the CreateContractPeriodFromPrevious handler to check if there are any action plans on the source and then copy that to the new contract. Tries to copy the Ad-hoc items as well as those assigned to specific KPIs.
As a Performance User, I want to have a button that will open the evaluation raters page (#123615)
Problem
- As a Performance User, I want to have a button that will open the evaluation raters page
Solution
As a Performance Management Administrator, I want to have an additional setting that hides the Evaluation Summary page from employees (#123617)
- As a Performance Management Administrator, I want to have an additional setting that hides the Evaluation Summary page from employees.
- Added a setting on the Review Setup page under " Allow Anonymous Evaluations" to hide the Evaluation Summary page from Employees. When this setting is enabled, the Evaluation Summary page can only be accessed by the Manager.
PM Error with Review Years (#126058)
Problem
- PM Dashboard is not loading.
Solution
- Fixed issue with urlHelper not resolving.
As a Manager, I want to see the Ratings per KPI on the Summary page (#123611)
Problem
- As a Manager, I want to see the Ratings per KPI on the Summary page
Solution
- Implemented, minimum maximum and average ratings per KPI and overall ratings
"Allow Interpolation" does not enable the switch on templates (#126195)
Problem
- The "Allow Interpolation" does not enable the switch on templates
Solution
- Added the AllowInterpolation to the view modal return.
As a Performance User, I want to copy the weights of the contracts instead of the Review Setup when using the Copy from Previous (#126081)
Problem
- As a Performance User, I want to copy the weights of the contracts instead of the Review Setup when using the Copy from Previous
Solution
- When the auto-copy setting is on, the section weights will copy from the contract, otherwise it will copy from the review
As a Manager, I want to print the Evaluation Summary (#123613)
Problem
- As a Manager, I want to print the Evaluation Summary
Solution
- Added a print preview page to show all details of the evaluation summary modal
Import the 360 score to PM (#112612)
- Add an Endpoint to return all Evaluation periods that are active from
- Add an Endpoint to pull the 360 scores based on a DateTime
- Add a Master Data Table in Performance Management called EvaluationPeriods
- Add a Job that pulls master data from V8 daily
- Create a reusable job that can be used for multiple daily tasks in the PM service
- Add two drop downs on value surveys on the Review Year, review setup
- List of Evaluation Periods
- The import options, option two is hidden when the setting: All manager to change value survey score, is off on the review setup
- Store the data in the DB for the review year
- Add a Command that pulls the approved 360 scores from V8 via users
- The command should only pull the data from the last successful import of data
- The command should adhere to the import type of the review year item
- Create a query to fetch the review year for the linked evaluation period, match the linked period by name to the linked evaluation period and user name received from V8
- Use the query to map the data that should be changed for new scores and overriding current scores
- Create a new bulk command based on UpdateContractSurveyCommand to update the value score recursively and save entities once
- Use the import service to store the run dates of the import
- Automate the import with a quartz job in the Import service
- The import service should call the PM service to perform the action
- The import service is responsible for the external fetch of data
- Add a button to the integration tab to import the data from V8 to V9 on demand
Incorrect message when setting up Interpolation (#126467)
Problem
- An incorrect message is displayed when you set up interpolation mapping but start with the mapping at the bottom.
Solution
- Fixed the issue where the translation is broken when starting at the bottom rating first
Translations
Themes translation not showing on Login (#126618)
Problem
- Translations not pulling through to the login page
Solution
- Resolve the issue and make sure that the translations are displayed
Master Data
Seeded data not appearing in drop downs on Employee Profile (#126916)
- Duplicate master data is causing issues in the system.
- Add unique constraints on the master data name per ruleset on the simple master data tables that make sense e.g.
-
- Data in select * from v9_master_core.masterdata.Tables
- Simple MasterData - should only consider name and ruleset id
- Add unique constraints on the database for tables
- In the MasterData engine catch translatable exceptions to display on front end if the unique constraint is violated
Job Profiler
ListUsersExport not returning all or correct information (#126458)
Problem
- The API call returns the OfoCode ID instead of the Name.
Solution
- Corrected the Select statement to return the OfoCode Name
Notifications
Add time to Welcome email (#124699)
Problem
- When the Welcome Notification button on a user profile to is clicked, an error is given.
Solution
- Fixed issue with getTemplates query
Copy template does not copy the attached files on the Email panel (#101268)
Problem
- When the template is copied, the attachments are missing from the newly copied template.
Solution
- When copying a template, the original template's attachments will also be copied.
- Fixed next cloud copy
Schedule Setup: Able to save weekly schedule without specifying days of the week (#85993)
Problem
- When on the notification schedular setup form, the validation styling does not work.
Solution
- Implemented a workaround fix to add the styling to a multi-select Select2
Indicate customised templates (#126054)
Problem
- Indicate for each email template whether the template has been customized.
- The Restore To Default button should only be clickable for customized templates and added tooltip to the button.
- Move the Dashboard tab at the bottom and rename it to Statistics.
- The back button on the template view page must keep the search results and the opened tab.
Solution
- When a template is customized, a checkmark is shown on the custom column and a tooltip is added: "This template has been customized.". If a template is restored, the checkmark is removed.
- Restore to default will be disabled if the template is not customized.
- The search results of the templates table persist if the template is edited and the back button is used.
- The dashboard tab is renamed to Statistics and moved to the bottom of the tabs.
Extra detail to be added to all templates (#126050)
Problem
- For all emails that are sent, add Tenant ID, Ruleset ID and template ID (And a C if the template is customized) at the bottom of emails. Also, show the codes on the template list.
Solution
- All emails that are sent have a light grey code at the bottom with the format: [T{TemplateId}R{RulesetId}-{TemplateId] - [T17R2-44] or [T17R2-44 C] for customized templates. The code is also added to the template list
Data Warehouse
Grades Mismatched in Signify & SFTP (#126629)
Problem
- Data did not return on ReportBuilder due to PeopleGroups not being refreshed (Performance issues)
Solution
- Adjusted PeopleGroupUsers task in DWH so that the table is truncated only between 12 and 1 in the morning and not as well in the afternoons
Organisational Structure
As a person with access to the Organisational Structure, I want to see the linked positions on the same page (#124045)
- Hide the Search option in the Header of the page
- When clicking on the Organisational Structure menu under the gear, the landing page should include the linked positions - the page is split into two
- The first time the page is accessed, only the Organisational Units are shown on the left
- Expand the first 3 levels of the org chart when opening
- Suggestion: Add buttons to open the levels
- The drag & drop functionality of org units should still apply
- The Add, Edit and Delete functionality should still be available (
)
- Expand the first 3 levels of the org chart when opening
- Add a tooltip on the ([nr] People, [nr] Vacancies, [nr] Inactive)
- Underline the text
- When clicking on this text, load the positions on the right
- When clicking on an Org Unit, show the linked positions on the right
- When clicking on the arrow to the left of the org node (
), expand the org node but don’t load the positions. It would be great if clicking on
it could also expand (without loading the positions).
- Only load the positions when clicking on the part ([nr] People, [nr] Vacancies, [nr] Inactive)
- The ability to drag & drop positions to other org units should still be available
- The filters should be:
- Filled Positions (Default)
- Vacant Positions
- Inactive Positions
- All
- When no positions are linked to an Org Unit, show a placeholder
- Text (Add translations for the text)
-
There are no positions in this organisational unit.
There could be positions in subordinate organisational units.
-
- Text (Add translations for the text)
-
Add a + Position button on the right
-
This will work the same as when appointing a person
-
Job Title field should be blank
-
When selecting a job title from the drop-down, change the position title to the same value, after which the user can update the position title. Do this on every Job Title change, even if the position title is populated.
-
Location in organisation to be auto-completed
-
-
Open in a new tab, but hide the menu
-
-
Add an anchor tag when the person is a Job Profiler Admin
-
When clicking on the job, open the job details in a new tab
-
Tenant Management
Unable to copy the link of a newly created Tenant's URL (#125624)
Problem
- Unable to copy the link of a newly created Tenant's URL
Solution
- Changed the URL to use the Clipboard API, with a fallback for older browsers.
Access Management
Change the System Access page to ensure there is no scroll bar at the bottom (#124625)
Problem
- When on the access management page the page overflows and pushes everything of the screen, no matter what you zoom size is.
Solution
- Found that the problem is the initialisation of the text areas, when one is initiated it creates a container and when the second is also initialised it creates another container that is exactly the same. Added a check to not add a second container on both.
Add uptime indicator (#125149)
- The system does not allow users to indicate the uptime of the services
- Added a setting “Up-time URL” on the Ruleset | System Access tab
- Added icons to the login page and the user profile to navigate to the up-time monitor page. If no URL is specified, the default will be used.
- Fixed the default URL of the privacy policy.
Import
As a person with access to a person's profile, I want to have the Location field synced to v8 (#122839)
- The location field not syncing to V8
- Add location to the user export on V9
- Map the location on V8 to the bulk employee import
- Implement location in the menu import
The validation message is incorrect when there is an issue with a position end date (#120182)
Problem
- Incorrect error validation message
Solution
- Corrected error validation message
People Management
Change search text (#126051)
Problem
- When filtering with either the search or the surname picker or both the search text should display accordingly
Solution
- Implemented the changes to show the correct text as requested
Kudo Widget
Send Kudo notification (#122323)
Problem
- An email should be sent when the Kudo has been saved by the person sending it.
Solution
- Added notification for the person receiving the Kudo
People Groups
People groups - automatically create a people group when a manager opens system menus (#124188)
- Manager people groups are not created automatically on V9 for all managers. This creates a lot of unnecessary data that is not always used.
The error displayed when viewing a list of employees on a people group (#125951)
Problem
- The error displayed when viewing a list of employees on a people group
Solution
- Saw that there were changes made to the query and the query broke, thus the reason for the error
Report Builder
Create a log entry when NextCloud credentials are invalid (#126158)
- When a file upload fails because of invalid Nextcloud credentials, it is not clear from the error log
- Improve the error logged to indicate a problem with the credentials
Version 9.1.144.3 (Support Release - 18 February 2025)
Performance Management
Copy Over Scorecard (#128182)
- When creating a new contract and selecting Copy From Another, only subordinate contracts for the current Review Year were returned, you then cannot create a contract for someone in the current year from a colleague on a previous year.
- Fix the query that returns the list of contracts to pull for all previous years, also remove the subordinate ID fetch from JobProfiler and instead rely directly on the materialized table PerformanceManagerUserIds.
- Made the selection modal scrollable.
Version 9.1.144.2 (Support Release - 14 February 2025)
Translations
Themes translation not showing on Login (#126618)
Problem
- Translation is not pulling through to the login page
Solution
- Implement the translations on the login page
Ruleset Management
Able to log into a deactivated ruleset (#126304)
Problem
- User could not log in immediately after a ruleset was activated / User could log in after a ruleset was de-activated.
Solution
- Bust the cache when activating/deactivating the ruleset
Master Data
Seeded data not appearing in drop downs on Employee Profile (#126916)
Problem
- Location, country and province master data are not displayed in the "Address" section due to conflicting component names which also appear in the "Summary" section.
Solution
- Give unique names to the component elements, ensuring that the master data correctly displays on both "Address" and "Summary" sections
Job Profiler: Navigating to the requirements tab displays an error (#127019)
- Barched queries failed due to too many of the same foreign keys
- Updated query to use DapperExtension to reduce the number of parameters and remove batch query functionality
Load indicator shown indefinitely when clicking on person's profile (#127605)
- DapperInBatched was used incorrectly in the translation query, causing an invalid SQL query to be generated.
Solution
- Ensure that DapperInBatched is used correctly for the query.
People Management
Error when the user tries to reset their password (#126175)
Problem
- When the user tries to reset their password the attempt fails because the call is checking whether the user has the People Admin role.
- This should not be done when the user is resetting their password.
Solution
- Changed the ResetPassword call to check whether the user has the People Admin role or is the user whose password is being reset and then allowed the action.
- Also, change the message displayed when the user resets their password from "A notification has been sent to the Person to reset their password." to "A notification has been sent to you to reset your password."
Notifications
The user who registers does not receive their email (#126173)
Problem
When a new user registers on the system using the Identity auto registration functionality:
- The default appointment record did not get created leading to the user being seen as inactive due to not having an appointment.
- The email confirmation email did not get sent out and the user could never continue with the registration
Solution
- Ensure that when registering the default appointment gets created.
- Resolve the issue where the confirmation email was not getting sent out after the user registers.
Email sent when new ruleset is created contains Reset OTP placeholder instead of actual OTP (#128113)
- User authentication and user forgot password used the incorrect placeholder's name for "ResetOTP"
- Ensure that those events use the correct placeholder's name.
Performance Management
Unable to Link Scorecards to Users (#127841)
- The dropdown that searches on a user has been replaced with a list textarea where you can paste a list of usernames to search for. The load of all users to filter appropriately here was too much, and there was not enough time to implement proper async loading in the dropdown.
- The load all option will only load the first 1000 records that match your search criteria, the browser cannot handle the load of any more data than that without hanging
- The people groups filter is now applied using the materialised people group data
- When load all is done only the last part of the org path is displayed e.g. ...Parent Node Name | Position Node Name
- The existing performance contract filter was removed as it caused performance issues as how the data is loaded from different contexts
Problem
- When loading large people groups the select lists fail to load, the search does not work, the job grade and job profiles do not include all the options
Solution
- Add a new list search and replace select 2
- Implement and refactor appointment and performance queries to user-materialised people group users
- Change load all to be limited to 1000 records
- Remove the filter on existing performance contracts
Version 9.1.144.1 (Support Release - 13 February 2025)
Translations
Themes translation not showing on Login (#126618)
Problem
- The translations on the login page are not working
Solution
- Ensure the translations pull through to the login page
Ruleset Management
Able to log into a deactivated ruleset (#126304)
Problem
- The user could not log in immediately after a ruleset was activated / User could log in after a ruleset was de-activated.
Solution
- Bust the cache when activating/deactivating the ruleset
People Management
Error when a user tries to reset their password (#126175)
Problem
- When the user tries to reset their password the attempt fails because the call is checking whether the user has the People Admin role. This should not be done when the user is resetting their password.
Solution
- Changed the ResetPassword call to check whether the user has the People Admin role or is the user whose password is being reset and then allowed the action.
- Also, change the message displayed when the user reset their password from "A notification has been sent to the Person to reset their password." to "A notification has been sent to you to reset your password."
Master Data
Navigating to the requirements tab displays an error (#127019)
- Barched queries failed due to too many of the same foreign keys
- Updated query to use DapperExtension to reduce the number of parameters and remove batch query functionality
Load indicator shown indefinitely when clicking on person's profile (#127605)
- DapperInBatched was misused in the translation query, causing an invalid SQL query to be generated.
Solution
- Ensure that DapperInBatched is used correctly for the query.
Notifications
The user who registers does not receive their email (#126173)
Problem
When a new user registers on the system using the Identity auto registration functionality:
- The default appointment record did not get created leading to the user being seen as inactive due to not having an appointment.
- The email confirmation email did not get sent out and the user could never continue with the registration
Solution
- Ensure that when registering the default appointment gets created.
- Resolve the issue where the confirmation email was not getting sent out after the user registers.
Version 9.1.144 (3 February 2025)
People Groups
The error displayed when viewing a list of employees on a people group (#125951)
Problem
The error displayed when viewing a list of employees on a people group
Solution
I saw that there were changes made to the query and the query broke, thus the reason for the error
Version 9.1.143 (3 February 2025)
Tenant Management
Able to log into a deactivated ruleset (#126304)
P&S
Import
Employee Data Import error (#126586)
Problem
- The pre-import does not validate duplicates correctly when the strings have different cases
- The staging translation does not display correctly
Solution
- Add case-insensitive checks in the pre-import validation for
- Duplicate usernames
- Job with code ({item.JobCode}) has differing data: {jobProfilerValidation} for fields Job code, Occupational Categories, OFO code, job grade
- Position {item.PositionTitle}({item.PositionCode}) has different position titles for fields Position Code
- More than one active appointment for a position. on position code
- Corrected and added missing translations
Version 9.1.142 (3 February 2025)
Imports
[Imports] [Auditing] ValueObjects in tables are not audited (#116420)
Problem
- When only a Value Object has changed on an Entity (as opposed to a normal property) the auditing does not pick up that the entity should be audited because it does not evaluate the Value Object properties of the Entity.
Solution
- Unfortunately, there is no easy way to directly check the previous vs current values of Value Object properties as you would do with a normal entity property change.
- Value Objects are essentially immutable and any 'change' deletes the previous entity reference and adds a new one.
- To still be able to pick up changes, however, you can access all the 'Added' reference entities of an entity (the value objects essentially) and then compare that to the list of deleted entities from the Change Tracking.
- If it is the same type and has the same FK then assume that this Deleted entity is the pre-change version of the Added entity.
- Once the deleted entity is retrieved compare Added against Deleted properties and return true if any changes.
Employee data import error (#125558)
Problem
- The org nodes are duplicated when no org structure exists and multiple users are linked to the node
- When importing nodes with accents in the name the import fails
- The bulk import to V8 for the job structure is blocked by the full org structure import when errors occur
Solution
- Remove unused caching check between node creation and replace with existence check on the newly created nodes
- Add accent escapes when querying the existing org nodes.
- Reorder the bulk import types
Import error on click of Recruitment Requisition (#125962)
Problem
- Cannot import employee number with a plus into V8 from V9 e.g. LM+2
Solution
- URL encode the query string params to ensure when decoded in V8 chars like + is not replaced by a space
Report Builder
Report Builder: Add Improvement Strategy Field (#125557)
Problem
- Add the "Improvement Strategy" Field to the report builder
Solution
- Added Data Source "Competency Proficiency Level" to the report builder that also contains the field "Improvement Strategy"
Auto-scroll when dragging and dropping columns (#123392)
Problem
- Dragging columns did not result in the table scrolling as you drag.
Solution
- Ensure that the table scrolls as you drag the columns.
Header
Search and bulleting icon needs more padding between them (#113538)
Problem
- Search and bulleting icon needs more padding between them
Solution
- Using bootstrap classes to space elements evenly.
Notifications
Fix Email template (#125873)
Problem
- HrProcessRequestMoreInfo has an incorrect event and recipient attached.
Solution
- Fix foreign keys on Templates and Recipients tables for the HrProcessRequestMoreInfo template
People Management
Login Details (#126207)
#1
Problem
- Contact numbers can have special characters included that is not cached by the int tel input IsValidNumber validation.
- For example '575-12345' is allowed, however, this breaks the V8 import which is not allowing the numeric values.
Solution
- Strip any special characters from the input, only allow numeric 0 - 9, spaces and '+'
#2
Problem
- The en-GB product unavailable translation still has the contact support@signify.co.za. Was requested to change to contact your administrator
Solution
- Change the translation to "contact your administrator"
Reduce unnecessary page load on edit page (#124704)
Problem
- Inconsistent cursor on user profile's nav tabs
Solution
- Changed the cursor to hand on the tab headings.
Disabled user (#126341)
Problem
- When a user is imported the materialised people group users cache is not busted
Solution
- Consolidate the materialised people group users busting using events within the cache implementation service to ensure when Bust the Redis people group then the DB will also be busted.
- Simplified the code in the services to only use the cache implementation service to bust the people group cache.
Performance management
PM Interpolation should allow 0 value (#126280)
Problem
- Currently, when rating on Interpolated items, an actual value of 0 (zero) is not allowed, this should however be an option as you might want to have an actual value of 0 tied to the lowest rating
Solution
- Change the interpolation actual value validation to allow capturing of zero as a value. Note that negative values are still blocked.
Allow Employee and Manager ratings on interpolation (#126340)
Problem
- Interpolation was based on having a single Actual Value, however client requested that we allow for the manager & person to capture individual actuals as there are scenarios where the actuals might be disputed.
Solution
- Added actual value columns for person and manager, saved relevant actual value according to which person is rating modified queries and react state assignment to set relevant fields correctly.
- Fix the issue on the Dashboard where the contract is not moved to the overall section if all items are interpolated
Data Warehouse
V8 - Add package set to do a full refresh of data (#126236)
- Full refreshes of DWH tables are required on an ad-hoc basis
- Add a package setting called DoFullRefresh and default it to 0
- When it is 1 change the reference date for refreshes to 1900/01/01, which will force a full refresh
Translations
Language Translation not saving (#126551)
Problem
Solution
- Correct the determination to get the active culture by not looking at subTabs.
- Change the submit buttons related to form ID to post to on page load
Master Data
Change Activities field length on master data (#126538)
Problem
- The PM Master data text areas are limited to 2000 and not the standard text area max input. Activities however allow for this on Template and Contract levels.
Solution
- Allow a 4000-character limit when the field is Activities.
Version 9.1.141 (3 February 2025)
Imports
Employee data import error (#125558)
Problem
- The org nodes are duplicated when no org structure exists and multiple users are linked to the node
- When importing nodes with accents in the name the import fails
- The bulk import to V8 for the job structure is blocked by the full org structure import when errors occur
Solution
- Remove unused caching check between node creation and replace with existence check on the newly created nodes
- Add accent escapes when querying the existing org nodes.
- Reorder the bulk import types
User Import: Change appointment import to import by action type (#121473)
Problem
- When a user is terminated or transferred in the same file the user conflicts with a new user taking the same position
-
- The old User was terminated and the New user was appointed in the same position within the same import after the termination
- The old user transfers to a new position and the new user receives the old user's position after the transfer
- When the position is changed but the start date of the appointment remains the same the user appointment is not corrected
- When an end date is provided for the active position
- With a termination reason, end on the imported date with the reason provided
- Without a termination reason, end the active appointment with the date
- Clear the current termination reasons if they exist
- When the terminated record imported's position is different from the latest appointment position the system handles the record as a transfer to a terminated position
- When the terminated record imported is on the same position but the start date, termination date, appointment type, and termination reason differ handle it as an appointment correction
- When no appointment exists and the user is imported with an end date handle as a new appointment
- When a user has no appointments in the system
-
- Check for overlapping appointments for the position
- The start and end date of the imported position must not overlap any existing appointment for the position
- The appointment type must exist as master data
- Check for overlapping appointments for the position
- When the user has current appointments in the system, terminated or active
- The user's latest appointment is active
-
- Check for overlapping appointments for the position
-
-
- The start and end date of the imported position must not overlap any existing appointment for the position
- Check for overlapping appointments with the current user's appointments and other than active
- The appointment type must exist as master data
- End the current active appointment with end date = new appointment start date -1
-
- The user's latest appointment is terminated
-
- Check for overlapping appointments for the position
- The start and end date of the imported position must not overlap any existing appointment for the position
- Check for overlapping appointments with the current user's appointments
- The appointment type must exist as master data
- Check for overlapping appointments for the position
- The user has an appointment
- The latest appointment position matches the import position appointment
- The start date, end date, appointment type, and termination reason differ from the latest appointment for the user
- Check for overlapping appointments for the position
- The start and end date of the imported position must not overlap any existing appointment for the position
- Check for overlapping appointments with the current user's appointments
- The appointment type must exist as master data
Report Builder
Auto-scroll when dragging and dropping columns (#123392)
Problem
- When dragging and dropping a column to another position, you can only drag to the field that is left on the screen, even if there are other fields to the left of the list.
- This means that you must drop the field where you can, wait for the page to reload, scroll to the field again and drag it further left.
Solution
- While dragging it “past the left”, the result set must scroll to the right until you get to the preferred fields and then drop the column
Version 9.1.140 (3 February 2025)
Performance Management
Add setting to switch interpolation ON and OFF - default should be OFF (#123353)
Problem
- Interpolation is ON by default and causes unnecessary confusion
Solution
- Added a "Allow Interpolation" setting to the review setup
Adjust the weight of the existing period when adding a new Review Period (#87333)
Problem
- When adding a new Review Period you are only asked to provide a description.
- After saving, the item will be added with a weight of 0.
- This means that you need to edit that item again to change the weight.
- In addition, the first period is automatically added with a weight of 100, meaning that you will need to edit that item first before you will be able to set the weight of the new item.
Solution
- Add a weight field to the "+ Review Period" modal, so that you can set the weight of the new item.
- Consider adding a method to automatically adjust the weights of existing sections when a new period is added.
- Example: 100 - the weight of the new item divided by the number of existing items. This should only happen when a new item is added not when you edit existing items
When the Employee or Manager scores are approved, change the dial colour to green (#123492)
Problem
- When the Employee or Manager scores are approved, change the dial colour to green
Solution
- Implemented check to check if ratings are approved to change the dials to green
Dock the preliminary scores while scrolling (#123490)
Problem
- When the top section of the performance management contract collapses, then display the employee, manager and final ratings.
- This will allow the users to keep seeing these scores while scrolling.
Solution
- Implemented changes to show score dials on a collapsed user banner as well
People Management
Saving phone numbers under a different country flag icon reverts to the South African flag (#124046)
Problem
- When selecting a country code and entering a number the number is saved with a code and in the correct format but when doing a get to patch the value it does not convert it correctly and from there on the format is wrong
Solution
- Fixed the issue by converting the number to the correct format each time before it was saved
[My Profile] Update sign-in page layout (#124698)
Problem
- The width of the rows is too large.
Solution
- Truncated the platform column and added a tooltip to show the entire platform value.
Reporting line fixes (#124701)
Problem
On the modal when selecting a person on a reporting line:
- A pointer is not shown when hovering over the items.
- The search bar is not focused
Solution
- Changes the cursor to a pointer when hovering over the items, and autofocus the search bar when the modal opens.
Add the ability to remove all roles (#124697)
Problem
- No functionality to unlink all roles of a user.
Solution
Reduce unnecessary page load on edit page (#124704)
Problem
- Inconsistent cursor on user profile's nav tabs
- On the user profile page, when clicking on a parent tab, it unnecessarily loads the first child tab
Solution
- Changed the cursor to hand on the tab headings.
- Changed the user profile navigation to not load the first child tab if a parent is selected. A child tab must be selected to load the content. Also added functionality to reload tab content if an already active tab is selected again
Display the full "Vacant From" date when changing a person's position (#124062)
Problem
- When changing a person’s position, On the modal where you select the Org and vacant Position, the "Positions Vacant From" date is cut off on certain screens. Please ensure that the whole date is displayed. On some screens, the last digit is completely hidden.
Solution
- Increased the width of the date input.
Appointment date verification (#124702)
Problem
- A termination date before the start date can be selected
Solution
- Added a minimum to the termination date, which is the start date of the active appointment
Main Dashboard
Capitalise "All Company Values" (#121397)
Problem
- The heading should be uppercase and the Values should be normal Caps.
Solution
- Changed the modal heading to uppercase and the accordion headings to capitalize
Learning Store
Add product and menu for the learning store (#124712)
Business Rules
- Add a new product learning store that can be activated
- Add menu in product learning store
- When the menu is clicked the learning store page must be loaded for the active theme and ruleset's schema in a frame
- When the learning store page is loaded for V10 with an active session
-
- Remove the header and replace the nav bar buttons with standard buttons- Browse Courses, Currency, Basket
- Remove the login options drop-down
- Add a spanner icon to navigate quickly to the learning store settings
- When clicked load the panel
-
- The learning store panel shows the quick link options of the learning store depending on whether e-commerce is on
Learning Management
[Pathways] [Marksheet] [Notifications] The variable for the class name is not replaced in the subject (#124534)
Problem
- The Class placeholder still showed in the marksheet notification subject.
Solution
- Added the class name to the notification query.
[Pathways] [Class/Group] [Marksheet] Show loading indicator when you click save on a mark sheet (#124280)
- The loading indicator is not showing when saving a marksheet.
- Added a loading indicator when saving a mark sheet.
Kudos
Send Kudo notification (#122323)
Problem
- An email should be sent when the Kudo has been saved by the person sending it.
Solution
- Added notification for the person receiving the Kudo
SigniChat
Load More shown when only 1 search result is returned (#121539)
Problem
- On the direct chat recipient list, if only only one search result is returned, the Load More button icon is shown at the bottom of the Chat panel.
Solution
- Added fix to hide load more button if the search is being used
Layout
Move banner items to have the same space everywhere (#124619)
Problem
- The bulletin message button is too close to the search bar.
Solution
- Added space between the button and the search bar.
HR Processes
Unable to see who is set on a position when clicking on the populated drop-down (#123366)
Problem
- The fallback configuration position drop-downs display only the top 50 records. When you select someone not part of the initial list of 50 people, the selected person will not be automatically selected in the drop-down, when you open the drop-down.
Solution
- Always add the selected person to the list, even if not initially part of the list, so that it will be selected when opening the drop-down.
Create a job to substitute a terminated person with a Fallback approver (#123554)
Business Rules
- Create a job that substitutes a terminated person with a Fallback approver
As a Fallback Approver, I want to receive a notification (#123552)
- Create a specific email for the Fallback approver:
Dear [***ApproverName***] [***ApproverSurname***]
You have been identified as a fallback approver for [***ProcessName***] submitted by [***SubmittedByName***] [***SubmittedBySurname***].
Click on the link below to review this request.
[***UserInboxLink***]
Please contact HR for additional assistance.
Kind regards,
HR Team
As a Fallback Approver, I want to have a section to view all open requests where I can be an approver as a Fallback (#123555)
Business Rules
- Create a section for “OPEN REQUESTS AS FALLBACK APPROVER”
- This section should show all open requests where this (fallback approver) could potentially have been a fallback approver.
- When clicking on the tab:
- Determine all the org units for which the user is a fallback approver
- Get all the employees in the selected orgs, and sub orgs
- List all the open requests for the abovementioned employees
- On all the cards that are “in progress”:
- Show the APPROVE / DECLINE button – similar to what we do now for the Fallback approver, but on the “next card”
- Determine all the org units for which the user is a fallback approver
- When clicking on the tab:
- When opening it, at the bottom of the screen, show an “ESCALATE” button:
- This button should request a reason, and then mark this card as “Escalated” and pass it to the next person in the approval line
- The last card cannot have an “ESCALATE” button.
- Perhaps the escalation can be combined with the existing option that the fallback approver has
- This button should request a reason, and then mark this card as “Escalated” and pass it to the next person in the approval line
Organisational Structure
Incorrect counts displayed (#121311)
Problem
- The number of users shown on the org structure did not match with the number of users on the org unit people groups.
Solution
- Added condition to get users for the org unit people groups only where the job profile is published.
Change hover text for 'Move Position' (#124737)
Problem
- Renaming of tooltip
Solution
- Rename the tooltip from "Move Positions" to "Postitions"
Tenant Management
Styling on expired tenants to be changed (#120195)
Problem
- The tenants expiring soon as well as expired tenants have the orange label
Solution
- Only show the orange label for tenants who will be expiring soon. Show normal text for the expired tenants
Add name and code to modal header (#124740)
Problem
- The Update Subscription modal does not show the Tenant Name.
Solution
- Added new translation and added Name and Code for tenant to the update modal header
Ruleset Management
Ensure all languages start with a capital letter (#124736)
Problem
- Not all languages in the ruleset setup dropdowns are capitalized.
Solution
- Capitalize the languages in the dropdowns
Indicate 'Not Published' Languages (#124741)
Problem
- Show a “Not Published” orange pill next to the languages that are enabled, but that are not published.
Solution
- In the available languages dropdown, added an orange "Not Published" pill for enabled but not published languages.
Master Data
Rename fields (#124738)
Problem
- Rename fields - User File Categories to People Document Categories and fix PermitTypes not having a space
Solution
- Added necessary translations to fix the issues with field names.
Company Values display (#124739)
- When adding a list of items underneath each other in the field “How do we live it out” on the Master Data, it shows as a wrapped paragraph.
- Do not strip out the HTML.
- Changed the company values to keep the whitespace for the “How do we live it out” field.
Notifications
Add time to Welcome email (#124699)
- The time the welcome notification was sent is not showing.
- Display the time the notification was sent.
Implement Priority Emails (#124030)
- OTP, Forgot Password and Tenant creation emails take up to 5 minutes to arrive at the user.
- This causes frustration and doubt that the system is working in these highly sensitive areas.
- Implement priority emails that will be processed immediately rather than queued and then sent. The current flag on the email template must be used to determine if an email should be processed as a priority email as soon as possible
Dates on Schedule Setup are not shown in the preferred language set by the user (#124706)
Problem
- The date fields are shown in the American date format, even though the preferred language is set to English (UK).
Solution
- Replace jQuery date pickers with MDB and fix saving of UTC dates on schedules
Notification - create a standard e-mail template for errors on web MVC for the last 24 hours (#123354)
- There is currently no visibility of the exceptions that are experienced daily by end users
- Create a standard e-mail template to send daily for errors on webmvc.
Restoring to Default does not remove documents attached to Template (#101344)
Problem
- When an email template is restored to default, the old attachments are still on the template.
Solution
- The attachments are now deleted if a template is restored to default.
Language
Capitalize the first letter of the other languages (#121390)
Problem
- When a user selects their preferred language All the languages are capitalised except Portuguese and French. This is because of the method use to get name makes use of those languages' capitalisation norms. This does not look right on the system
Solution
- Implemented a workaround to not make use of the capitalisation norms so that everything is standardized across the entire system
Page reloads when searching in a module (#103759)
Problem
- When making use of the global search on the language page the entire page reloads and reverts to the "global" subtab. No implementation was done to keep track of the active tab
Solution
- Implemented a fix to not reload the page and keep track of the active sub-tab.
People Groups
Incorrect heading for the Org path column (#124530)
Problem
- Incorrect heading for the Org path column
Solution
- Ensure the correct heading is displayed on the table for the org path column
Audit
ValueObjects in tables are not audited (#116420)
Problem
- When only a Value Object has changed on an Entity (as opposed to a normal property) the auditing does not pick up that the entity should be audited because it does not evaluate the Value Object properties of the Entity.
Solution
- Unfortunately, there is no easy way to directly check the previous vs current values of Value Object properties as you would with a normal entity property change. Value Objects are immutable; any 'change' deletes the previous entity reference and adds a new one.
- To still be able to pick up changes, however, you can access all the 'Added' reference entities of an entity (the value objects essentially) and then compare that to the list of deleted entities from the Change Tracking.
- If it is the same type and has the same FK then assume that this Deleted entity is the pre-change version of the Added entity.
- Once the deleted entity is retrieved compare Added against Deleted properties and return true if any changes.
Imports
Employee data import error (#125558)
Problem
- The org nodes are duplicated when no org structure exists and multiple users are linked to the node
- When importing nodes with accents in the name the import fails
- The bulk import to V8 for the job structure is blocked by the full org structure import when errors occur
Solution
- Remove unused caching check between node creation and replace with existence check on the newly created nodes
- Add accent escapes when querying the existing org nodes.
- Reorder the bulk import types
- Correct 1000 appointment recursion error
Signify Employee data import API (#122932)
Add the option on the payroll connector to save and validate a PowerShell script used for import
- When adding a payroll connector
- Move the payroll connector provider to the top of the modal
- Add a new provider Powershell
- When the provider type is Powershell
- Change the display of the screen and show the following fields
- Name - Textbox
- Powershell Script- Text Area
- The text area is pre-populated with a PowerShell script for import from Signify's own APIs. This script servers as the base to be customised from
- The text area is pre-populated with a PowerShell script for import from Signify's own APIs. This script servers as the base to be customised from
- Import Enabled- Toggle
- Name - Textbox
- When the user saves the page the script is run without staging the data
- When the PowerShell script can run through and return data in the format to be stagged the script is valid
- Otherwise through an error
- When the PowerShell script can run through and return data in the format to be stagged the script is valid
- When the manual processing button is clicked then the Powershell script will run and stage
- When more than one PowerShell script is added then all the data will be stagged and processed as a single import only keeping the latest record per user should a user be returned in multiple Powershell scripts
- When more than one PowerShell script is added then all the data will be stagged and processed as a single import only keeping the latest record per user should a user be returned in multiple Powershell scripts
- Each provider's connectors will be processed together and will not include other providers
- This means Payspace connectors will be grouped and Powershell connectors will be grouped and processed as a batch separately.
- Move the payroll connector provider to the top of the modal
Create a PowerShell connector command to process connectors of this type per the ruleset
- The handler retrieves all the PowerShell connectors for active rulesets
- All the connectors for a specific ruleset must be processed as a batch
- The users from multiple connectors will be stagged and imported as a single import
- Should a user be returned by multiple connectors only the latest user according to appointment data should be imported
- Log all steps in the handler as an import occurring and display the status on Notifications| Imports
- Consider the implementation of custom run space when running the import
- Reuse the current payroll connector job to also process powershell connectors
Create SQL notification for support
- When an import runs in the background no notification informs the client if a failure has occurred during the import. The user currently needs to go to the Notifications | Imports tab in the system to access this information.
- When an import completes and any failures occurred during the import trigger a standard system notification.
- Create a PowerShell script to pull data from a client's API and stage the data in Signify
Report Builder
Changes to Styling on Full Report page (#121257)
Problem
- When on the Full report page of the report builder and you scroll down the headers are scrolling out of the page thus it is hard to see which column is for what.
Solution
- Implemented sticky headers so the headers always show when scrolling
Scrollbars to be implemented (#120403)
Problem
- Headers were not sticky and the user needed to scroll up every time to see headers.
Solution
- The preview headers were made sticky
Data Warehouse
Add Improvement Strategy Field (#125557)
Problem
- The Improvement Strategy field is not available when creating a report
Solution
- Added the field in the Data Warehouse for selection
Version 9.1.139.2 (Support Release - 27 January 2025)
Performance Management
PM Allow Employee and Manager ratings on interpolation (#126340)
Problem
- Interpolation was based on having a single Actual Value, however, a client requested that we allow for the manager & person to capture individual actuals as there are scenarios where the actuals might be disputed.
Solution
- Added actual value columns for person and manager, saved relevant actual value according to which person is rating, modified queries and react state assignment to set relevant fields correctly.
Imports
User Import: Change appointment import to import by action type (#121473)
When a user is terminated or transferred in the same file the user conflicts with a new user taking the same position
- The old User was terminated and the New user was appointed in the same position within the same import after the termination
- The old user transfers to a new position and the new user receives the old user's position after the transfer
Split the processing of appointments by action type and process in order
- Terminations
- Transfers
- Corrections
- New appointments
Employee data import error (#125558)
Problem
- The org nodes are duplicated when no org structure exists and multiple users are linked to the node
When importing nodes with accents in the name the import fails
The bulk import to V8 for the job structure is blocked by the full org structure import when errors occur
Solution
- Remove unused caching check between node creation and replace with existence check on the newly created nodes
- Add accent escapes when querying the existing org nodes.
- Reorder the bulk import types
- Corrected org node duplication within the same sheet. Corrected accents issue when constructing the org page.
- Reordered org import to V8 from V9
- Correct staging translation error message
- Correct duplicate org nodes when importing with an org code that exists on the DB
- Correct 1000 appointment recursion error
Version 9.1.139.1 (Support Release - 24 January 2025)
Performance Management
PM Interpolation should allow 0 value (#126280)
Problem
- Currently, when rating on Interpolated items, an actual value of 0 (zero) is not allowed, this should however be an option as you might want to have an actual value of 0 tied to the lowest rating
Solution
- Change the interpolation actual value validation to allow zero to be captured as a value. Note that negative values are still blocked.
People Management
Special Characters on Contact Numbers (#126207)
#1
Problem
- Contact numbers can include special characters not caught by the int tel input IsValidNumber validation.
- For example '575-12345' is allowed, however, this breaks the V8 import which is not allowing the numeric values.
Solution
- Strip any special characters from the input, only allow numeric 0 - 9, spaces and '+'
#2
Problem
- The en-GB product unavailable translation still has the contact support@signify.co.za. I was requested to change to contact your administrator
Solution
- Change the translation to "contact your administrator"
Data Warehouse
Report Builder: Add Improvement Strategy Field (#125557)
Problem
- Add the "Improvement Strategy" Field to the report builder
Solution
- Added Data Source "Competency Proficiency Level" to the report builder that also contains the field "Improvement Strategy"
Final Score calibration (#126258)
Problem
- The below fields do not exist in the report builder:
- Review Year Setup Id
- Review Item Id
- Make the Review Year Setup ID and Review Item ID available in the Data Warehouse
Version 9.1.139 (14 January 2025)
Performance Management
Rate Button not displaying (#125563)
Problem
Solution
- Fix contract state calculation to correctly determine when ratings are in progress when Objectives are completed and when ratings are partially done.
Dashboard screen (#125269)
Problem
- The contract details do not show when the review year if the current date is not within the period.
- Error translation not shown correctly
Solution
- Remove the filter and add ordering on the review year start
- Correct translation key
People Management
Employees Org Structure not syncing correctly from V9 to V8 (#125562)
Problem
- Duplicate positions were created with the same position code when doing a bulk job structure import
- Corrected the external position ID check to ensure the existing position created by the employee import is mapped to the V9 position
People Management: Go to another does not work (#125569)
Problem
- When the summary tab is active on the people management edit, then go-to another does not work
Solution
- Change the selector to fall back to the default summary tab when no subtab is found that is active
Tenant Management
Tenant creation not completed (#124774)
Problem
- When creating a tenant and the logged-in user's username is the same as the tenant administrator's email address, the tenant creation fails.
Solution
- Remove the copy of the logged-in user when creating a new ruleset for the new tenant
Version 9.1.138 (13 January 2025)
People Management
Add Person AppointmentEndDate to MaterialisedUsers tables (#121349)
Problem
- Report builder materialised users fails
- When importing
- Notification users are not created
- Performance reporting lines are not updated
- Appointments are not updated for materialised users
- User data is lost when updating appointments or reporting line data
Solution
- The notification did not implement batch user materialisation and appointments
- Performance management implements batch reporting line materialisation
- Report builder correct code
- Implement updates of materialised data only if changes
- Add migrations to update data across services for report builder and notifications
The page is shown as blank after Saving on editing details (#124445)
Problem
- When saving or refreshing some subtabs on the people management profile, the tab content shows blank.
Solution
- Fixed the issue where only the parent tab, instead of the sub-tab, was always loaded when reloading the page.
Content Management
Confirm the content server setting error (#125366)
Problem
- Cannot upload the employee data file
Solution
- Corrected the password of the production next cloud setup
Data Warehouse
Create a report to show the Tenant details (#116757)
A new report has been created to show the Tenant details
- Tenant Name
- Ruleset Name
- Ruleset Active
- Number of People - All
- Number of People - Active
- Module Name
- People Management
- Performance Management
- eLearning
- Career and Succession Planning
The value in each of the module’s columns can reflect the licenced employees for the module
Data Source items to be added to the Data Source list (#124057)
Add fields to HR Processes:
- Request Reference number
- Comment for each approver (currently, there is only one 'Comments' field)
- Request for more information Comments per approver
- Uploaded Files per request
- Requester details
Add fields to the DWH for the PowerBI reports (#124564)
Problem
- Required fields for a client's dashboard needs to be added to the V8 and V9 Data warehouse
Solution
- Added required fields for Netcampus within V8 and V9 Data warehouse
Main Dashboard
Dashboard screen (#125269)
Problem
- The incorrect contact details are displayed on the main dashboard when a user has multiple contracts in the last year where the review years have the same start date.
- When the conversion of the work anniversary fails the people dashboard does not load.
Solution
- When a review year is not active or deleted exclude it, order the results by the period start, review year start and the display order of the review years.
- Simplify query with inner selects to avoid unnecessary duplication of data
- Add a try-catch to return an empty string when the conversion fails rather than breaking the whole page and preventing the user from continuing
Version 9.1.137 (13 January 2025)
Performance Management
Set Value Survey score to be included when importing (#119743)
Problem
- When calibrating value surveys, if the value survey has been excluded the calibrated score is not included in the calculation because of the survey being excluded.
- Can then only be set from the front end.
Solution
- Ensure when calibrating value surveys that it is included (Excluded = false).
[Interpolation] Reset the modal after entering the actual value (#121040)
- The rating modal was not reset after entering the actual value.
- Ensure modal is reset after entering value and opening modal again.
Nextcloud error pages is displayed when I click the Subordinates button (#124594)
Problem
- On environments where there are separate path bases the subordinate view URL is incorrectly calculated as
"https://kubernetesdev.signifyhr.co.za/Spa/master/performanceManagement/Dashboard"
instead of
"https://kubernetesdev.signifyhr.co.za/master/Spa/performanceManagement/Dashboard" - It works if there is no pathbase eg local and uat and live
"https://live.signifyhr.co.za/Spa/performanceManagement/Dashboard"
Solution
- Changed the URL generation so it correctly prepends the path base Eg 'master' before the entirety of the generated URL.
People Management
Person who is terminated on today's date should still be able to log in until midnight (#124279)
Problem
- A person who has been terminated, cannot log in on the termination date
Solution
- Change the log-out date to midnight
[Profile Summary]: Only underline on Hover (#124268)
Problem
- Only underline on Hover
Solution
- Add underline on hover.
[Profile Summary]: The Summary section does not get Docked/Pinned to the top (#124385)
Problem
- The Summary section does not get Docked/Pinned to the top
Solution
- Dock the Summary section when a user scrolls on the page
Issues with mobile phone numbers (#124248)
Problem
- There should not be a space between the numbers.
Solution
- Trim the contact numbers on the ListUsersExport call
Ruleset Management
Error on creation of ruleset (#124289)
Problem
- The support user is created before the ruleset creation completes on account and the ruleset created is consumed on the job profiler service.
- This causes the ruleset creation process to fail.
- The ruleset-created email is sent even when the ruleset fails to create
Solution
- Remove all the event consumers RulesetCreated
- Move work done by the consumers to a gRPC endpoint per service
- Create a new event CreateRulesetEvent with consumer CreateRulesetEventConsumer that is published after the ruleset has been created on the account service
- The new consumer calls each service to use gRPC to create the ruleset on the service
- Only once all the services have been created in the system and support users have been created
- As a final step, the notification is sent that the ruleset has been created
- The consumer has been constructed for retry only running the request that has not been completed again
Add functionality to retry the creation process of a ruleset which failed to create (#110754)
Problem
- Currently, if a ruleset fails to create, you are stuck, there is no way for you to retry it.
- This applies only to failed rulesets, and not rulesets still in the process of creating/copying.
Solution
- Add an option to retry the creation/copy process. When clicked, send the RulesetCreatedEventConsumer message to the failed services.
Tenant creation not completed (#124774)
Problem
- When creating a tenant and the logged-in user's username is the same as the tenant administrator's email address, the tenant creation fails.
Solution
- Remove the copy of the logged-in user when creating a new ruleset for the new tenant
Imports
Signify Employee data import API (#122932)
- When adding a payroll connector
-
- Move the payroll connector provider to the top of the modal
- Add a new provider Powershell
- When the provider type is Powershell
- Change the display of the screen and show the following fields
- Name - Textbox
- Powershell Script- Text Area
- The text area is pre-populated with a PowerShell script for import from Signify's APIs. This script servers as the base to be customised from
- Import Enabled- Toggle
- When the user saves the page the script is run without staging the data
- When the PowerShell script can run through and return data in the format to be stagged the script is valid
- Otherwise through an error
- Change the display of the screen and show the following fields
- When the manual processing button is clicked then the Powershell script will run and stage
- When more than one Powershell script is added then all the data will be stagged and processed as a single import only keeping the latest record per user should a user be returned in multiple Powershell scripts
- Each provider's connectors will be processed together and will not include other providers
- This means Payspace connectors will be grouped and Powershell connectors will be grouped and processed as a batch separately.
- Move the payroll connector provider to the top of the modal
- Create a new command and handler- PowershellImportCommand
-
- The handler retrieves all the PowerShell connectors for active rulesets
- All the connectors for a specific ruleset must be processed as a batch
- The users from multiple connectors will be stagged and imported as a single import
- Should a user be returned by multiple connectors only the latest user according to appointment data should be imported
- Log all steps in the handler as an import occurring and display the status on Notifications| Imports
- Security when running a PowerShell script
-
- Consider the implementation of custom run space when running the import
- The handler should be able to be run manually for a single ruleset or per schedule for all rulesets
-
- Reuse the current payroll connector job to also process PowerShell connectors
Create SQL notification for support
Notifications
Schedule Setup: The user can set the Once-Off custom schedule to time already passed (#96569)
Problem
- The user is still able to type in a time that has already passed.
Solution
- Added validation to test if the time is valid, if not it will be set to the minimum time
Report Builder
Date fields not shown in preferred language user is set at (#122731)
Problem
- Date fields not converted to user culture and language.
Solution
- Ensure date fields are converted to user culture and language.
Add different font sizes (#123391)
- Have three options for font size: Normal, Small, Extra Small.
- This must just be in the result set panel, including the headings
- It looks like the standard font size is:
-
- Make the Small size:
-
- Make the Extra Small size:
Add 'Show Condensed Results' (#123390)
- Have an option to “Show condensed results”.
- By default, it must be selected.
- When selected, all fields and values must show the first 15 characters with a … (if it is longer than 15 characters).
- When hovering over the value, it must show the complete text/field name.
- This must preferably be done through a JavaScript function that will not cause a reload of the page, but rather change it immediately.
Error when clicking View Full Report button (#124518)
Problem
- An error occurs when clicking the View Full Report button
Solution
- Fixed the issue causing the crash
Data Warehouse
V10 PM Dashboards add Not Started value to the graphs (#123886)
- Add the “Not Started” value to the following two graphs:
- Note: Not Started means the person do not have a contract created for the Review period.
People Groups
Tooltip on Org path displays "Undefined" (#124529)
Problem
- Tooltip on the org path displayed 'Undefined'
Solution
- Ensure that the tooltip displays the full org path correctly.
Incorrect heading for the Org path column (#124530)
Problem
- Incorrect heading for the Org path column
Solution
- Ensure the correct heading is displayed on the table for the org path column
Group cache not being busted when new employees are appointed/imported (#124457)
Problem
- It appears that the People Groups cache is not being busted when you have appointed or imported new employees.
- This means that you cannot see these new employees on the People Management dashboard.
Solution
- Properly clear people group cache and materialised people groups
The active people group set by the user on V9 is not activated as an active subgroup on V8 when clicking on the V8 module menu item (#124215)
Problem
- The active people group is not set as the active subgroup when opening the V8 page in V9
Solution
- Retrieve the active people group ID from the query string
- Select the people group from the user's assigned subgroups
- If not available then the preferred subgroup should be loaded
Main Dashboard
Performance Management Dashboard Widget not showing correct data (#125269)
Problem
- It seems the score and information are not displayed correctly for the user because they have two contracts.
Solution
- Changing the query that populates the dashboard to order the contracts if multiple exits by the display order of the review year.
- This will then allow the dashboard to display the latest data according to this ordering and secondly the start date of the cycle.
- The dashboard will also only display the latest review period for the contract details within the year.
Version 9.1.136 (13 January 2025)
Performance Management
Able to capture contract although period closed (#123871)
Problem
- When a phase is already closed, the dial can be used to view the contract, but the actions (Eg. creating a KPI) are still active.
Solution
- Lock the agreement if the phases are not active.
PM V9 Action plan copy from previous does not work as expected (#124270)
Problem
4 Action plan-related fixes on this PR.
-
This label was updated, it does not reflect Review Periods but rather the Review Setups
-
There was some confusion as to how the Copy Action Plans From Previous should work, the consensus between me, Bertie and Lee-Ann is that you can only copy from your previous review years. You cannot use this to copy APs from an earlier Review Period within the same setup (This should happen with the CreateContractFromPrevious fix 4)
Changed the query for the review years to exclude the year for the current contract. -
The Copy Action Plans From Previous was not copying all the information, only Name and Description. Including now all AP fields on the copy.
-
When doing CreateContractPeriodFromPrevious it must also copy any Action Plans that exist on that contract period. (which it did not do)
Solution
- Updated the translation to correct the label to show Review Setup
- Changed the query for the review years to exclude the year for the current contract.
- Modified the Action Plan handlers and queries to select all the additional information and to also copy that when creating the item. Had to fix an update here and there
- Added a new portion to the CreateContractPeriodFromPrevious handler to check if there are any action plans on the source and then copied that to the new contract. Tries to copy the Ad-hoc items as well as those assigned to specific KPIs.
Cannot Copy from previous (#124269)
Problem
- The CopyFromPrevious / CopyFromTemplate functionality breaks when creating for an employee on a review setup that has leadership behaviours enabled.
- This is because only managers get the section added to their contracts, but the copy from then tries to add the default library items to the employee's contract.
- This breaks because the LB section does not exist to add it to.
Solution
- Do a check to not add the LB items if the employee is not a lIne manager.
- The preceding Create Contract step will not have created the ContractPeriodSections LB section if the employee is not a line manager.
Import the 360 Survey Scores into Performance Management (#112612)
- Add a dropdown with all the Evaluation Periods (V8)
- Evaluation Period
- Required field
- Master Data Table to be added with the 360 Evaluation Periods from v8
- Evaluation Period
- Add a dropdown with the Import Actions
- I want to import
- Options
- ONLY new scores
- When selected, show helper text
- Import new evaluation scores from [selected evaluation period]. Leave existing scores as is.
- When selected, show helper text
- New scores and override existing scores (from evaluations)
- When selected, show helper text
- Import new evaluation scores from [selected evaluation period]. Existing scores will be overridden.
- Business Rule:
- When the setting is inactive and the Manager cannot revise, exclude this option
- When selected, show helper text
- ONLY new scores
- Options
- I want to import
- Integration Tab on Ruleset Setup
- Review Year Review Survey Import
- When selected, the scores should import according to the option selected via the API
- Import from last sync / import date
- Also add a daily sync
- Only run when a Review Setup has a Review Survey
- Review Year Review Survey Import
People Management
Error on New People Group Save (#124474)
Problem
- People group HiLo sequence did not match the Id value in the table that caused a duplicate trying to be created for the same Id
Solution
- Add a script to sync the sequence with the table
The page is shown as blank after Saving on editing details (#124445)
Problem
- When saving or refreshing some subtabs on the people management profile, the tab content shows blank.
Solution
- Fixed an issue where only the parent tab, instead of the sub-tab, was always loaded when reloading the page
Auto-generate employee number (#122694)
- Add a setting that will automatically generate an employee number for a new user on the system. Allow the admin to set the starting value in the range.
- Also, allow the administrator to set prefix and suffix values for the employee number.
Report Builder
Evaluation questions (#123006)
Problem
- Report contain duplicate records.
Solution
- Added a "Select Distinct" filter for the reports
Imports
Import Error (#124391)
Problem
- The allow anonymous tag has been removed which causes the daily syncs to fail.
Solution
Translations
Investigate changing translation keys from key-based to file-based (#119512)
- Translation calls need to be improved, it is used extensively throughout the system
- Investigate to cache the translations with a different key strategy - perhaps we store the entire translation file (JSON object) within a single key
Version 9.1.135 (13 January 2025)
Performance Management
Rating button not displaying (#124149)
Problem
Solution
- Fix the check that determines the contract state on the dashboard.
Improve the performance of queries throughout the system by providing a materialised PeoplegroupUsers table per service (#122980)
Problem
- Improve the performance of queries throughout the system by providing a materialised PeoplegroupUsers table per service
Solution
- You can only exclude users from this custom people group
- It is auto-populated when adding a user either from the front end or via the user import
- For all services, the following must be confirmed
- When adding or terminating a user the user must be automatically added/removed from the people group
- Editing appointments on the front end
- Adding a new user on the front end
- Importing users
- When the people group is used in the service the data is auto-populated
- When adding or terminating a user the user must be automatically added/removed from the people group
- Performance management
- Performance dashboard and the loading of subordinates
- Target Audience Page
- Report Builder
- When drawing a report for a specific people group
- People Management
- Dashboard
- Active, future and terminated should still show correctly
- Dashboard
- Both the Redis cached people groups are removed and the data for the people groups in MaterialisedPeopleGroupUsers are removed
- The MaterialisedPeopleGroupUsers must be materialised when next used in the service e.g PM, People Management, Report Builder
Create master data for evaluation periods pulled from V8 (#112612)
-
- Add a dropdown with all the Evaluation Periods (V8)
- Evaluation Period
- Required field
- Master Data Table to be added with the 360 Evaluation Periods from v8
- Evaluation Period
- Add a dropdown with the Import Actions
- I want to import
- Options
- ONLY new scores
- When selected, show helper text
- Import new evaluation scores from [selected evaluation period]. Leave existing scores as is.
- When selected, show helper text
- New scores and override existing scores (from evaluations)
- When selected, show helper text
- Import new evaluation scores from [selected evaluation period]. Existing scores will be overridden.
- Business Rule:
- When the setting is inactive and the Manager cannot revise, exclude this option
On the Review Years | Review Setup | Review Period | Review Survey
- When the setting is inactive and the Manager cannot revise, exclude this option
- When selected, show helper text
- ONLY new scores
- Options
- I want to import
- Integration Tab on Ruleset Setup
- Review Year Review Survey Import
- When selected, the scores should be imported according to the chosen option via the API
- Import from last sync/import date
- Also, add a daily sync
- Only run when a Review Setup has a Review Survey
- Review Year Review Survey Import
- Add a dropdown with all the Evaluation Periods (V8)
Import PM Scores to V8 SCP (#112597)
- On V8
- When opening the Profile
- Use the API to import the Overall Final Score
- Overall Final Score = Review Period 1, 2 etc has been approved and Review Survey has value / is excluded
- Use the API to import the Overall Final Score
- When opening the Profile
- Materialised view - use table
- PM - Update score to materialised view every 2 hours
- PM Year to use
- The PM Year is irrelevant because only the latest approved Overall Final Score will be used
- Add Import to Integrations tab
- Talent Profile - Latest PM Score Import
Change the Ignore Phase End Date rule (#123374)
The label should be changed to:
IGNORE PHASE DATES
The business rules that should be applied when this setting is enabled:
- The Start Date and End Dates should be ignored
- This will mean that the users can start the phase before the date is reached and they can continue after the date is reached
- Thus, the phase will never be locked
Learning Management
Notifications not sent out (#123776)
Problem
- Notifications are not sent as soon as mark setup is marked as published and send notifications are enabled
Solution
- Add
sendNotifications
call inMarksheet.tsx
when the mark is published and locked. Also, the marks will now be saved before sending the notification
Cannot save marks for a second class (#123870)
Problem
- Some users are missing from materialized users causing the save not to work
Solution
- Increase the retry interval for message processing to 60s for consumer events
- Add migration to sync the MaterializedUsers table again
Add a loading indicator when exporting the list of recipients (#123802)
Problem
- No loading indicator when exporting the list of users that will not receive a notification on the attendance register
Solution
- Add loading indicators on Ajax calls in the attendance notification modal
Data Warehouse
Organisational path - Incorrect (#124143)
Problem
The issue was these 2 users' Appointments were edited last May according to the source data. The data warehouse data for these specific 2 users was not updated with the latest Org data. For Appointments, the data warehouse fetched the data that had been updated for the past 72 hours. I am not sure if the Datawarehouse at that time did not update the Appointment data or if there is perhaps an issue on the data source where the Edited Data did not update correctly, due to this being updated manually on the source DB with support query.
Solution
Adjust the Appointments DWH package to refresh all the appointments daily. This is now possible due to the massive performance improvements that were made within the DWH. This will ensure that the DWH does have all the latest appointments daily going on forward.
'Null' values should return an empty string (#123389)
- The Datawarehouse returned 'blank' if the nvarchar returned NULL values
- Adjusted the V9 DWH to return NULL if the nvarchar column value is NULL
Dashboards: Scores not showing on graphs (#123887)
Problem
- The final rating score field needs to be added within Contract Periods for V9 DWH to implement the dashboard changes
Solution
- Added Final rating score field within Contract Periods
Tenant Management
Email Template Adjustments for Tenant Management (#123472)
Problem
- Spaces between text in the template are too large.
Solution
- Fixed the templates by reducing the spaces between paragraphs
Red Pill Changing to Grey on Manage Person Screen and Organizational Structure Screen (#123795)
Problem
- The licence expiry warning message is grey on people management and org structure.
Solution
- Fixed global styling issue where it conflicts with pill styling
Spelling of Licence (#123827)
Problem
- Incorrect spelling mistake
Solution
- Corrected the spelling from License to Licence
People Management
The system does not Auto-Confirm the User with a valid Email address (#118978)
Problem
- The system does not Auto-Confirm the User with a valid Email address
Solution
- If a user's email is provided, the email will be auto-confirmed. If not provided initially, it will confirm the email if the user is updated with one. The email will also be unconfirmed if it is removed.
The curser does not change when hovering on the People Group selection (#121876)
Problem
- The Curser does not change when hovering over the People Group selection
Solution
- Changes styling to show a pointer when hovering over the people group dropdown
Add a Summary Menu Item (#122957)
Problem
- As a person with access to a person’s profile, I want to have a menu item for the summary
Solution
- Added a summary tab to the user profile
Organisational Structure
Delete modal heading displays incorrectly when Name contains ampersand (#122269)
Problem
- Org Structure delete modal heading displays incorrectly when Name contains ampersand
Solution
- Added fix to show name in heading correctly if it contains special characters
SigniChat
Buttons to be moved away from the bottom border of the Group Chat setup box (#123357)
Problem
- The save group button is near the bottom border.
Solution
- Increased the margin of the footer of the create group modal
Auto Doc
Styling on Delete Template modal to be aligned with mock-up on CR (#104629)
Problem
- On the delete template modal, the name of the template should be replaced by Template and the name of the template to be deleted shown in quotation marks and in bold
Solution
- Fixed the styling of the delete template modal
[Auto Doc][Admin User][Templates] Asterisk to be placed alongside Delete Reason text box label (#102815)
Problem
- Delete modals reason field that is required does not show asterisks.
Solution
- Implemented correct class on the global component to fix issues everywhere
Ruleset Management
Tooltip to be adjusted (#104399)
Problem
- When the creation of a ruleset fails, the 'could not create ruleset' label contains a list of services which could not be set up.
- Please could we insert a space between the 2 words in the name of the Services?
Solution
- Added spaces between the words
Error when trying to save External Link with name with 225 characters (#104617)
Problem
- Error when trying to save External Link with name with 225 characters
Solution
- Increased the length of the external link name to 500 characters.
The Kudos icon is not available on the Change Icons list (#113037)
Problem
- The Curser does not change when hovering over the People Group selection
Solution
- Changes styling to show a pointer when hovering over the people group dropdown
Competency Analysis
Do not display text in Bold (#121394)
Problem
- When a user hovers on the Competency Title the system displays the pop-up text in Bold
Solution
- Changed the tooltip to normal text.
Language
Incorrect product name displayed for Career Conversations (#113009)
Problem
- When on the language page the Career Conversation translation did not work.
Solution
- Saw that some of the translations were missing, so I added the missing values
Notifications
Confirmation message on Create of new Schedule to be corrected (#101309)
Problem
- The confirmation message on Create of new Schedule to be corrected
Solution
- Fixed the confirmation message when saving a schedule
Event Deactivation Reason text box label asterisk to be displayed in red instead of grey (#102805)
Problem
- When deactivating a notification event, the reason field label asterisk (*) needs to be displayed in red.
Solution
- Changed the deactivation reason asterisk to red.
The user can set the Once-Off custom schedule to time already passed (#96569)
Problem
- Able to set a custom once-off schedule to a time today that has already passed.
Solution
- When once-off schedule type is selected, remove time slots that has passed already.
Events: 'Can be scheduled' indicator to be shown on the Notification Events list (#85834)
Problem
- Please consider indicating on the Notification Events page which events can be scheduled.
Solution
- Added a "Can Schedule" column to the notification events list to indicate whether that event can be scheduled or not
Version 9.1.165 (30 June 2025)
People Management
[My Profile] Error shown when user clicks on My Profile (#132878)
Problem
- When a user who does not have an admin role tries to view their own profile, the page breaks.
- The problem is that it tries to fetch the active products for the tenant/ruleset, but the call to get ruleset information is admin-authorised only.
Solution
- Changed to get the tenantid from the available anonymous call, which is then used to fetch the tenant subscription information.
[Imports] Error with future-dated appointment (#132805)
Problem
- When a user is added with a future-dated appointment, the appointment saves on V9 but does not sync with V8.
- When the User Import is manually executed, an error is encountered.
Solution
- Investigation in progress.
Performance Management
[Agreement] Manager Ratings not updated when Manager and Final Ratings can be completed simultaneously (#127230)
Problem
- With the setting to do both final rating and manager rating, the banner scores for Manager Rating are not being updated on the contract.
Solution
- Add a new check to update the Manager Rating along with the Final Rating when both are captured.
[Agreement] Radio buttons not behaving correctly when typing your own KPAs or selecting from the library (#121338)
Problem
- When adding a new KPA/KPI, the radio buttons do not work correctly when navigating between each toggle.
Solution
- Fixed the check to not overwrite the toggle's state.
Login
[Login] Person cannot log in if all MFA options are turned off on a ruleset (#132853)
Problem
- A user is unable to log in when none of the multi-factor authentication options have been enabled.
Solution
- Fixed the local redirect after login to handle the new redirecturl to ensure that users can log in whether MFA is enabled or disabled.
[3rd Party Login] Unable to log in with Microsoft (#132846)
Problem
- A user is unable to log in with Microsoft, and an error displays after account validation.
Solution
- Fixed the local redirect after login to handle the new redirecturl to ensure that users can log in with their Microsoft account.
System Access
Improve Performance opening V8 links from V9 (#131794)
Problem
- The encrypted querystring causes low performance when accessing V8 pages from V9.
Solution
- Replace the encrypted querystring with a time-based security key.
- The security key is valid for 30 minutes and remains unchanged for the period.
- It is built using the username, encryption key and time constant.
- Add deep links to quick links.
Imports
Implement log for import requests (#124033)
Problem
- Currently, onboarding and synchronisation are the biggest issues encountered by the consultants (between V8 and V9 and vice versa).
Proposed Solution
- When doing an import request, on the notification tab, indicate that the import was requested and by whom.
- Change the transactions and error log reports for the import requests to call the V8 integration API to download sysprocess log data when clicking transactions/ errors.
Developer Solution
- In V8, create two procedures: sysExternalImportTransactions, sysExternalImportErrors.
- Read from the sysProcessLog and export the data for the request.
- Add a nullable field in sysProcessLog, ExternalRequestId, this field will contain Import.Imports.Id from V9.
- Add the procedures to the sysObjectWhitelist table to be available in the API.
- When the user clicks on export transactions or export errors, make an API call to the above and export the data as normal.
- Move the singular import requests to log an import like the bulk imports do.
- Add status "In Progress" when the import starts.
- Communicate completion of the import from V8 to V9.
Tenant/Ruleset Management
System Summary Page (#124038)
Problem
- Old V8 installation has documentation on Master Builder, with all client URLs, etc.
- For V9, this seems to have fallen away – is there a way to automatically insert this on Master Builder (Product Table)
Proposed Solution
- Add a system summary page to the tools page that can be accessed by any support impersonator.
- Include the following fields:
- Tenant Id, Tenant Name, SystemCloseDate, RulesetId, RulesetName, LoginURL, SupportURL, ActiveProducts, ActiveUserCount, BaseLicenceCount, SchemaCreatedMessage.
- LoginUrl is going to have an entry for each theme.
Developer Solution
General
Upgrade nuget packages on Signify repository (#129990, #129991)
Problem
- .NET 8 is still used on the Signify solution.
Solution
- Upgrade the Signify solution to .NET 9 and test that the modules are still working.