# RELEASE NOTES
# List of the Release Notes
[](https://signature.signifyhr.co.za/uploads/images/gallery/2021-03/nxdzYg0bFNlOMpIC-Release-Notes_2.jpg)
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 are changing. A list of the Release Notes for the different versions is shown below.
Click on the **Download** links below to download the documents.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2021-03/qzszvWWV43LpOnu3-Signify-Line-Image.jpg)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2021-03/qzszvWWV43LpOnu3-Signify-Line-Image.jpg)
- This pull request updates the configuration for allowed file types in the `appsettings.json` file to expand the range of supported formats for content management.
*Expanded the `AllowedFileTypes` list to include additional image,
audio, video, document, and archive file formats, such as `.ics`,
`.vcs`, `.bmp`, `.tiff`, `.webp`, `.heic`, `.wav`, `.aac`, `.flac`,
`.ogg`, `.m4a`, `.wma`, `.avi`, `.mov`, `.mkv`, `.wmv`, `.flv`, `.webm`,
`.xlsm`, `.csv`, `.ods`, `.odt`, `.dot`, `.dotx`, `.mdb`, `.accdb`,
`.ppsx`, `.odp`, `.txt`, `.rtf`, `.md`, `.zip`, and `.rar`.
- When editing a person in people management, the user clicks on the appointment tab, the children are revealed, AND the footer for transfer employee, etc., is also revealed, even though the appointment page is not loaded.
**Solution**
- Added JavaScript to determine if the tab is a sub-tab or a parent tab and only reveal the footer when a sub-tab is clicked. EXCEPT for the summary tab, which does not have any "children", the footer can directly show when this element is clicked.
---
#### **Tenant Management**
##### \[Mentoring & Coaching\] Banner Heading Changes (#121985)
- Mentoring and coaching were incorrectly displaying Learning Management for their banner
- When a template has KPI / KPA custom items that have the exact same name, the contract is created with the section items linked. Leading to a similar issue as previous where changing 1 item affects all of them. This is restricted on a per contract basis, so at least won't affect across contracts.
- Added used Ids list that populates when assigning the ids for the new custom section items, ensures that used Ids are not accidentaly assigned to all section item that have the same name.
---
#### **Content Management**
##### Document does not get attached on the first attempt (#133862)
**Problem**
- When selecting the upload document, selecting a file, closing the modal, and then reselecting the same file, the file does not get selected not bound to it.
**Solution**
- When clicking close modal, the file is not cleared, and therefore is seen as selected, so no file change event triggered
---
#### **Notifications**
##### Strip HTML from SMS Templates before sending SMS (#129165)
**Problem**
- SMS links display HTML tags
**Solution**
- Did not include HTML tags when sending an SMS
---
- When generating the report builder curl file, if the ValueString are empty, it fails on the GRPC side
- When clients require API integration to retrieve data similar to what they see in the report of report build we need to build custom APIs for each request.
- Create an API to retrieve the report builder results for any Report Builder report via a single API
- V8 and V9 require their own FullRefresh column within PackageSettings
**Solution**
- When moderation has been sent for quality assurance, no in-progress indication is shown on the dashboard
- Add a new check that, when sent to Quality Assurance, shows Moderation In Progress
---
#### **New Development - Performance Management**
##### Show fewer people on the Other People to Evaluate Section (#132590)
- When you need to evaluate others on Performance Management, the area displays:
We want staff members to see the scores as well. Essentially, what managers see, we want staff to see.
` method in `src/Web/WebMVC/Services/MasterDataService.cs` to improve the handling of `RecordIds` during filtering. The changes simplify the logic and ensure the original `RecordIds` are preserved for filtering operations.
##### Cannot access employee (#133837)
**Problem**
- Busting the cache doesn't always clear all the cache because we wait for the task to finish execution
- When setting cache, we don't wait for the response, but always use a false response, which causes ambiguity in logs
**Solution**
- Wait for the cache to be busted
- For some master data methods, use the default behaviour of waiting for the actual response after setting the cache
---
#### **Imports**
##### Payroll sync with ITS (#133878)
**Problem**
- When auto-processing PowerShell connectors, the connectors fail to complete due to the parallelism
- The PowerShell command is not robust and any failure fails the whole import on all rulesets
**Solution**
- This pull request refactors the `ProcessPowerShellPayrollConnectorsCommandHandler` class and simplifies the validation logic in the `UserImportStaging` domain model. Key changes include replacing parallel processing with sequential loops, adding error handling for PowerShell script execution, improving logging, and removing redundant validation methods.
---
#### **System Access**
##### Support URL not working (#133655)
**Problem**
- When the user has opened the themed login URL and then opens the support login, the redirect is a fully qualified URL, whilst if the user only opens the support URL, then the redirect URL is local
**Solution**
- Updated the redirect behaviour in SupportLogin to use Redirect for absolute URLs and LocalRedirect for relative URLs, ensuring correct handling of external return URLs after support login.
##### Add terms of use to the login page (#133812)
**Problem**
- Terms of use are not on the login page
- New URL for terms of use
**Solution**
- Add terms of use to the login page and update the R1 default to the URL
- Add a fallback to R1 from other rulesets when their own URL is not defined
---
# Version 9.1.170.2 (Support Release - 9 July 2025)
#### **People Management**
##### \[Kudos\]\[End-User\]: An error when sending a Kudo with a customised message (#133771)
**Problem**
- The user is unable to send a Kudo to a colleague. Recently, there has been a change which removes the "given\_name" key from the \_identityService authentication. Kudos directly uses Given Name, which caused it to not work anymore
- There is a duplicate auto-complete tag on the login page for the password input. Removed the "off" setting
**Solution**
- Use the username instead of the given name
##### HCO | New Tenant Creation | Errors (#133954)
**Problem**
- When a user with the people admin role and "Manage my data" active edits their own profile, any non-required fields on the summary or profile pages are marked as required.
**Solution**
- This pull request refines the conditional logic in the `_ProfilePersonal.cshtml` and `_Summary.cshtml` files to improve clarity and ensure consistent behavior when determining the visibility and editability of form fields based on user permissions and requirements.
---
#### **Ruleset Management**
##### \[Translation\] Add nl (Dutch) to the system - v8 and v9 (#133891)
**Problem**
- The language is not available for translation in the system
**Solution**
- Add nl (Dutch) to the system
---
#### **Imports**
##### User Import: Add rules to the import sample sheet (#134071)
**Problem**
- No description of the rules of each column in the user import
- When data is provided for a column without a heading, then the import fails obscurely
**Solution**
- This pull request introduces improvements to the `CreateListFromExcelStreamV1` method in `src/Web/WebMVC/Services/OpenXMLService.cs` to enhance code clarity and ensure data validation when processing Excel files. The most important changes include adding comments for better readability and implementing a check to avoid adding invalid or empty property names.
**Code readability improvements**
- Added a comment explaining the purpose of retrieving the first sheet from the workbook part's Sheets collection to clarify its role in worksheet data processing
**Data validation enhancements**
- Introduced a check to ensure that values are only added if the corresponding property name (header) is not null, empty, or whitespace, preventing invalid data from being processed
---
# Version 9.1.170.1 (Support Release - 2 July 2025)
#### **Performance Management**
##### Moderated agreement not shown as moderated on dashboard (#132770)
**Problem**
- When moderation has been sent for quality assurance, no in-progress indication is shown on the dashboard
**Solution**
- Add a new check that, when sent to Quality Assurance, shows Moderation In Progress
---
#### **Data Warehouse**
##### Add settings to PackageSettings to disable modules (#133513)
**Problem**
- V8 and V9 require their own FullRefresh column within PackageSettings
**Solution**
- Added new fields V8FullRefresh and V9FullRefresh within PackageSettings
---
#### **Imports**
##### Organisational Structure Not Reflecting in Target Audience (#133417)
**Problem**
- The reference to the import API was incorrectly pointing to Rapax, leading the V8 additional services imports not to report as completed.
**Solution**
- Corrected the Import api proto reference. Already corrected on Master.
---
# Version 9.1.170 (30 June 2025)
#### **Data Warehouse**
##### Add settings to PackageSettings to disable modules (#133513)
**Problem**
- Other clients do not use all the modules within the system, which will cause the DWH to fail
**Solution**
---
#### **Learning Management**
##### LMS Portal: Marksheet: Save does not work when entering and Removing Input in an Empty Row (#132306)
**Problem**
- When adding a value in a cell where there is no user, the marksheet can not be saved, even after removing the value
**Solution**
- Add new validation to ensure that the row has a user before taking any value to save
##### Only show First Name in comments (#133519)
**Problem**
- The full name displays instead of only name
**Solution**
- Change the full name on the marksheet to only display the name
---
# Version 9.1.169 (30 June 2025)
#### **Tenant Management**
##### Using Commas rather than periods causes loss of field data (#132987)
**Problem**
- When a "," is used to update decimal values of a field, the values are lost
**Solution**
- Convert commas to dots for consistency
---
#### **System Access**
##### The default displayed language is not applied from the Login page (#132901)
**Problem**
- The list of languages on the login screen always had the first alphabetical item in the list set as the selected value
**Solution**
- Try to get the User's preferred language from their cookies and fallback to the UI culture (most likely en-GB in most cases) if the cookie does not exist
---
#### **Imports**
##### Default Timeout for HttpClientWrapper to 5 minutes and remove option to set after initialisation (#132811)
**Problem**
- Since only one HttpClient is used and injected, its properties cannot change once any requests have been made. There are instances where the timeout is tried to be set after the HttpClient has already processed a request. This results in an error of " This instance has already started one or more requests. Properties can only be modified before sending the first request"
**Solution**
- By default, the HttpClient instance has a timeout of 5 minutes when it is initialised.
---
#### **Notifications**
##### Port and Time Out text box labels incorrect (#102607)
**Problem**
- When the page is displayed, the Port and Time Out text box labels have the border box drawn through the label.
**Solution**
- Change the floating labels to normal labels
---
#### **Report Builder**
##### \[Report Builder\]\[Admin User\]\[Delete\] Delete click area to be increased (#132803)
**Problem**
- Currently, the delete button is very small, and if you click a little off the icon, the Report's details are opened, which is not ideal.
**Solution**
- Increase the "My report builder" report delete button size
##### Previously deleted report imported by new user shown as previous user being the owner (#133015)
**Problem**
- Previously deleted report imported by a new user is shown as the previous user being the owner.
**Solution**
- Ensure that the user who imported the report shows as the owner of the imported report.
##### \[Report Builder\]\[End User\]\[Date Format\] Date format (English SA) not being applied on report (#133070)
**Problem**
- User culture was not always used in the report builder report results for date fields.
**Solution**
- This happened because when we checked for a date field before formatting according to user culture and timezone, we did not check for "datetime2" fields.
---
#### **Performance Management**
##### Unable to start Period 2 on a Bi-Annual setup (#133387)
**Problem**
- When starting a contract in the second review period,
**Solution**
- Added null values when copying a contract for the action plan items of training interventions that need to be bound
##### Linked setup items go over the edge of the card (#120465)
**Problem**
- When the Review Setup name or description has a lot of content, it pushes off the columns to the right, which causes the page to have a scroll and not be within the card
**Solution**
- Add a new wrapper around to scroll within the card, and not allow the page to grow horizontally.
---
# Version 9.1.168 (30 June 2025)
#### **Performance Management**
##### \[Recalculate Scores\] Results include deleted contracts (#133399)
**Problem**
- Deleted contracts are being retrieved when selecting the contract to recalculate
**Solution**
- Exclude deleted contracts
##### \[Recalculate Scores\] Search filters reset after recalculation (#133038)
**Problem**
- When agreements are selected to recalculate, selections are cleared because the new score might not show directly.
**Solution**
- Add a message indicating that recalculated scores can take up to 5 minutes to display
##### Key Competencies do not get highlighted when scrolled to (#133092)
**Problem**
- When the user is in the check-in phase and scrolls down, it does not hit the last section and highlight the nav menu on the left
**Solution**
- Resolved case to increase offset to ensure the section gets hit to highlight on the nav menu
##### Linked setup items go over the edge of the card (#120465)
**Problem**
- When the Review Setup name or description has a lot of content, it pushes off the columns to the right, which causes the page to have a scroll and not be within the card
**Solution**
- Add a new wrapper around to scroll within the card, and not allow the page to grow horizontally.
---
#### **Tenant Management**
##### Unable to delete the tenant, which could not be created from the list (#133126)
**Problem**
- We were unable to delete a tenant that could not be created from the list due to the delete modal not being initialised correctly at times.
**Solution**
- Remove the data-mdb-toggle="modal" and data-mdb-target tags from the button to ensure that the modal always initialises and displays correctly (this causes the modal to display automatically without having to bind a click event). Also, bind the click events directly on the document so that we don't have instances where we try to bind the event before the elements are rendered on the page.
---
#### **Report Builder**
##### Condition button missing on first Filter By entry (#133101)
**Problem**
- The **Condition** button is removed from the first **Filter By** entry on the **Filtering** canvas.
**Solution**
- Move the condition column to the left
---
#### **Learning Management**
##### \[Shared Links\] Links do not open the Pathways (#132844)
**Problem**
- Shared Pathway links don't open but give a Not Found error. This is caused by a malformed URL.
**Solution**
- Avoid adding empty redirect URLs to the query string because it causes the query string to have duplicates. Duplicates create an invalid resulting URL.
---
# Version 9.1.167 (30 June 2025)
#### **Data Warehouse**
##### As a Report Builder Administrator, 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)
##### New Scorecard Status Report (#127073)
**Problem**
- The DWH did not exclude disabled years when generating the list dropdown values
**Solution**
- Adjusted the DWH package to exclude disabled years for list dropdown values
#####
##### Add additional fields to accTenantStats (#132864)
**Problem**
**Solution**
---
#### **Ruleset Setup | Image Resources**
##### Unable to upload Banner Image (#133162)
**Problem**
- The file name included in the directory creation is causing issues with the image stream
**Solution**
- Only used the directory in creation
---
#### **Report Builder**
##### Date Parameters Logic vs Results (#132813)
**Problem**
- When date filters were being applied, it would also consider the time and thus end up being inconsistent and unintuitive
**Solution**
- The date filters should only consider the date value, not the time at all
##### \[Value Text Box\] Value text box is not emptied when changing the operator to 'list' (#133110)
**Problem**
- When the operator is changed to 'list' after already inserting text into the 'Value' text box, the box is not emptied when selecting the 'list' type operator. The text box has been disabled for this operator, so it cannot be emptied.
**Solution**
- Make sure that the Value text box is cleared when the Operator is cleared.
---
#### **Performance Management**
##### As a Performance Management Administrator, I want to recalculate performance scores from Bulk Actions (#130420)
**Problem**
- When a new review survey is added or review period weights are adjusted, all agreements that have already been done are/was calculated on the current weights being used
**Solution**
- Add a new Event to recalculate agreements
---
#### **Tenant Management**
##### Time to be displayed on the system Close Date shown on Description tab (#129940)
**Problem**
- Please 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**.
**Solution**
- Fixed system close dates not displaying consistently across the system.
- We also now display *(at the end of the day)* next to the dates, to make clear when the system will close or expires.
- Finally, display "ExpireD" vs "ExpireS" on based on if the expiry date is in the future vs if it is in the past, when displaying the warning for system admin users.
---
#### **General**
##### Help Files: Feedback Label not displaying correctly (#133157)
**Problem**
- Feedback Label not displaying correctly
**Solution**
- Corrected the path for the translation
##### \[Tools page\] \[System Summary\] \[Styling\] Improve column spacing (#132973)
**Problem**
- Improve column spacing
**Solution**
- Adjusted spacing and wording, additionally, in the case of overflow, the ellipse and tooltip, the text
##### Always log an error when throw is used in code (#130740)
**Problem**
- Sometimes an error is caught and thrown, but not logged to the error log. This makes it difficult to investigate some errors experienced in production
**Solution**
- Added loggers where appropriate to WebMVC, Notifications, Audit, Identity, Master Data, Import, Job Profiler, Performance, Learning, and Content Management
- Added explicit typing where I encountered any generics
- Reformatted some pages to follow the convention
---
# Version 9.1.166 (30 June 2025)
#### **Report Builder**
##### Objective Settings Queries (#133021)
**Problem**
- The Select Distinct set on the report is not applied when exporting, only on viewing, leading to duplicate records being displayed when exported.
**Solution**
- If DistinctRows is not provided, fall back to the configuration on the report.
##### Allow report builder admins to set certain filter criteria fields as drop-downs in a report (#129916)
**New Development**
***User Story 1 – Add a step to the DWH SSIS packages***
- Add a step on the DWH SSIS packages to check for any filters that are of Operator type 'Is Equal to (from List)', and then select a unique list of the values into a new table that contains the relevant data source ID and data field ID and then the individual item values. E.g.
DataSourceId DataFieldId RulesetId ListItemValue
1 1 10 FY24
1 1 10 FY25
1 2 11 Mid-Year
1 2 11 Final
***User Story 2 – As a Report Builder Administrator, I want to have a new operator available named is equal to (from the list)***
- Add a new filter Operator
- Is equal to (from list)
- When this is the operator type, do not show the input, as the list will be determined at runtime
- Ensure the data that is displayed is Ruleset-specific
***User Story 3 – As a Report User, I want to select the dropdown with the available values***
- Modify the View Report page to check for 'Is Equal To (From list)' filters and prefetch the unique values from the DWH table created above, add tand hat as list items to the page
- When the report is run the ,actual text value is still sent through, modification required to the report builder SP to handle 'List' operator filters as if it is 'Is Equal To (From list),' which does an exact match
- On the end-user view, the filter will show as follows, where the edit box on the right will show as a drop-down list.
##### Report Builder: Date Parameters Logic vs Results (#132813)
**Problem**
- When date filters were being applied, it would also consider the time and thus end up being inconsistent and unintuitive
**Solution**
- The date filters should only consider the date value, not the time at all
---
#### **Help Files**
##### As a person with access to the Help Files, I want to have an updated layout with feedback functionality (#129792)
**Problem**
- Change the help page modal's text to be more descriptive. Change the toggle functionality such that when checked, it would allow the content to be shown instead of hiding the content (reversed current toggle logic). For consistency, I standardised the pop-up design by adding a close (X) button to the top-right corner of all general modals (Only general modals for now).
**Solution**
- Added a generic close button at the top of each general modal. I also updated the help page's translations and fixed how the toggle works.
##### Add a feedback Template (#131914)
**Problem**
- The help screen modal should allow users (managers, employees, or administrators) to provide feedback on different parts of the system.
- It should have a feedback button to provide access to the new feedback functionality.
- The feedback form should show a new modal with three questions rendered as a partial view inside the modal.
- There should be appropriate error handling and navigation flow management.
- Upon submission, the following information should be sent to the Official Signify Documentation Email:
- A screenshot of the parent page embedded as a base64 image.
- The URL of the current window location.
- User details: username, first name, surname.
- Ruleset ID.
- Responses from the completed form.
- This functionality should be integrated using the existing "manual test notification" method.
**Solution**
- Altered the help page modal to include a button for showing the new feedback form.
- Added a new modal in the original CSHTML page containing the help page modals.
- Had the new feedback modal load the questions to answer in a new partial view, which uses JavaScript to manage when certain questions should be shown and other navigation flow management.
- Added translations for the new feedback modal in the languages
- Reused an existing method to send notifications. Most values are hardcoded, as they are unlikely to require changes.
##### Add feedback form (#131915)
- When the feedback button is clicked, open a new feedback model
- - Get the template ID from the notification service based on the code
- Get the user data from the users service
- On the model, implement show hide accordions according to the selection
- When feedback is clicked, trigger the manual test notification with the following
- - Send an email to documentation@signify.co.za
- Include the data
- Screenshot of parent page embedded as a base64 image
- URL from window location
- Username, name, surname,
- RulesetId
- Answers from the completed form
---
#### **Performance Management**
##### Manager rating cannot be saved - error message (#133058)
**Problem**
- When FinalRatingsOnly is enabled and the items are interpolated, it does not save the Manager Score along with the Final score (as it would when not interpolated). This causes the validation to fail when trying to approve the ratings.
**Solution**
- Ensure that the manager score values are also saved when the ratings type is FinalOnly, and correctly update the SPA after the save.
##### PM UPLOAD document button missing (#132985)
**Problem**
- When the contract is in the Objective phase but not yet in the Rating phase, users are unable to upload documents. As the Ratings phase where the only phase that where being checked/validated.
**Solution**
- Updated the validation logic to correctly parse and assess the current contract phase, ensuring document uploads are allowed during appropriate phases.
##### Incorrect Total after 10/10 Self-Rating and Error on Submit Final Rating (#131647)
**Problem**
- The scores within ContractPeriods do not round correctly when they round to above 100
**Solution**
- Adjusted the rounding issue for ContractPeriods scores to ensure it does not exceed 100
##### Move the "Modify Final Scores" option to the dashboard (#93147)
**Problem**
- When an agreement has been finalised and rated, you need to navigate within the agreement to select 'Modify Final Rating' when wanting to modify the agreement
**Solution**
- Added new Ellipse menu item to modify the Period Contract, and a new modal to select the Review Period to modify.
##### Radio buttons not behaving correctly (#121338)
**TBC**
---
#### **Data Warehouse**
##### Implement Additional Billing Fields for subscription (#132464)
**Problem**
- The default decimal precision of the decimal columns was set to 2, causing the entity framework to not update correctly, and the data not being there to be saved
**Solution**
- Set the decimal precision to match the appropriate values (38 numbers, 18 decimals)
##### Absenteeism tracking (#132467)
**Problem**
- The client requires a report that will show the absence history
**Solution**
- Added a new DataSource called lmAttendance that will provide the required data
##### Report Builder: 200 Data Value Fields in the HR Process Request Pivot Data Table (#132915)
**Problem**
- jpHRProcessRequestPivotData requires 100 extra custom fields
**Solution**
- Add 100 extra custom fields within jpHRProcessRequestPivotData
##### Years of service report (#133024)
**Problem**
- Field YearsOfService is required as requested by the client
**Solution**
- Added new field YearsOfService within Appointments
---
#### **Learning Management**
##### Manual overriding of marks - Report cards (#132474)
**Problem**
- Cannot add a negative mark that will not be counted in the average
**Solution**
- Allow the Teacher / Administrator to add a -1 for an absent student
- This mark should then be excluded from the average calculation
##### As an Administrator with access to the Learning Management setup, I want to import the Training Requirements and export the list (#131531)
**New Development**
***Create an import file to import the Training Requirements***
- Country
- Training Intervention Code
- Training Intervention
- Required Field
- Job Title
- Organisational Unit
- Job Grade
- Start Date in Position
- Requirement Start Date
- Requirement End Date
- Days required to complete the training
***Validation***
- If a Country Master Data value does not exist, the entire record will be rejected
- If a Training Intervention Code does not exist, the entire record will be rejected
- If a Training Intervention Code does not match the Training intervention, the entire record will be rejected
- If a Training Intervention does not exist, the entire record will be rejected
- If a Job Title does not exist, the entire record will be rejected
- If an Organisational Unit does not exist, the entire record will be rejected
- If a Job Grade Master Data value does not exist, the entire record will be rejected
- The Requirement Start Date cannot be after the Requirement End Date
- The Requirement End Date cannot be before the Requirement Start Date
***Export***
- Add Export functionality to export the table
·
---
#### **Tenant Management**
##### Time to be displayed on the system Close Date shown on Description tab (#129940)
**Problem**
- The time does not show for the System Close Date
**Solution**
- Ensure the time component is also displayed
##### Dates not displayed according to what was set on the update (#130503)
**Problem**
- When viewing the dates on the system, they do not match up with what has been set. It appears as though the date 202504-10 11:59 is shown in UTC +2, which would be 2025-04-11 @ 1:59.
**Solution**
- Fixed system close dates not displaying consistently across the system.
- We also now display (at the end of the day) next to the dates, to make clear when the system will close or expires.
- Finally, display "ExpireD" vs "ExpireS" on based on if the expiry date is in the future vs if it is in the past, when displaying the warning for system admin users.
---
#### **Imports**
##### Payspace Employee import rejections (#132840)
**Problem**
- When pulling users from Payspace, users without ID numbers have no employment statuses and are excluded from mapping without a reason.
**Solution**
- When the user does not have an ID number, fall back to the employee number when grouping the user's appointments to retrieve the latest record
- Add error logs for the users who are excluded
- Stage the excluded users into user staging for the Payspace import
- Ensure the provinces can be created case and culture-invariant.
**Another rule to be aware of is that the Payspace pull only imports terminated users when they already exist on the ruleset with the payroll ID from Payspace. Any user terminated on Payspace before today that does not exist in the payroll ID on the ruleset is excluded and will not be imported.**
##### Import log shows successful, but transaction log is empty (#132526)
**Problem**
- Not all import types are developed to export data; therefore, when a user clicks 'User validation report', it will export but have no data
**Solution**
- Add a new check to validate and ensure the import type is allowed to be validated
##### Automated Employee Details Import (1) (#104244)
**Problem**
- The import service Swagger is not working.
**Solution**
- Rename the duplicate message in the proto
---
#### **Content Management**
##### Bulk signing attempts fail immediately (#132716)
**Problem**
- When trying to sign attempts on multiple assessments, the process fails immediately. The retry also fails immediately.
**Solution**
- Add option to retrieve document by external request ID used for retry in V8
##### License documents are not digitally signed (#132379)
**Problem**
- When you print a license and then save it as a PDF, it does not have the certificate to show that it has been digitally signed.
**Solution**
- Correct problem when there is more than one signatory, the subsequent signatures show as invalid
---
#### **People Management**
##### Username with ' in it displays wrong when clicking on Performance Management tab (#132879)
TBC
---
# 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 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 tenant ID 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**
- Support users added to export a user for import to V8.
- Further investigation is in progress.
##### \[Appointments\] Terminated appointments can be deleted (#132690)
**Problem**
- When an end date (or termination date) has been added to an appointment record, it is possible to delete the appointment.
**Solution**
- The user cannot delete the latest primary appointment, even if there is a termination date.
- It is possible to delete a primary appointment that is not the latest.
##### \[Payroll integration\] User import fails when access to OrganisationPositionDetail is not granted (#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-catch statements when pulling data for the OFO code to suppress and log the failure should it occur, and then continue with the import.
#####
V9: Import Issue (#132815)
**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
---
#### **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.
##### As a Performance Management Administrator, I want to recalculate performance scores from Bulk Actions (#130420)
**Problem**
- When a new Review Survey is added or Review Period weights are adjusted, it affects all agreements that have already been completed.
- The completed agreements were calculated based on the previous weightings.
- If the weights are later updated, and a user opens an existing or completed agreement, the score now appears differently than it should, based on the new weights.
**Solution**
- A new bulk action has been added to allow agreements to be recalculated using the updated weights.
- Users can now click on "Recalculate Scores", apply the necessary filters, and select all agreements that need to be recalculated.
- The process will then run and update the scores for those agreements accordingly.
##### As a System Administrator, I would like to enable a setting on the Review Setup to inherit contract section weights (#130993)
**Problem**
- Change the description of the settings for Auto copy and for the Inherit Contract Weights.
- Add a total on the Edit Section Weights modal.
**Solution**
- Update the Translations to the new value.
- Add a total weight to the Edit Section Weights modal.
##### As a Language Administrator, I want to be able to translate the new fields (#130422)
**Problem**
- A new feature was added to the Performance Management for bulk recalculating of performance scores, but the new fields were not enabled for translations.
**Solution**
- Translation functionality was enabled for the new fields.
##### As a Performance Administrator, configuring Review Setups, I want a setting to allow training to be added to the PDP (#118125)
**Problem**
- When configuring a Review Setup, a Performance Administrator wants a setting to allow training to be linked to the personal development plan (PDP).
**Solution**
- A new setting was added that allows training interventions to be linked to a PDP.
##### \[Bulk Actions\] Errors display when you land on the Bulk Action Logs screen (#132668)
**Problem**
- When navigating to the Bulk Actions logs on Performance Management, it results in an error.
**Solution**
- Add a new column in the query that was created for the recalculation of performance management scores.
##### Performance Management: Incorrect Total after 10/10 Self-Rating and Error on Submit Final Rating (#131647)
**Problem**
- The scores within ContractPeriods do not round correctly when they round to above 100
**Solution**
- Adjusted the rounding issue for ContractPeriods scores to ensure it does not exceed 100
##### \[PM\] \[Full Agreement import\] Add more information to error messages (#129133)
**Problem**
- When there are errors on the Full PM import, it can be difficult to determine the exact section that the error relates to if there are multiple items used across sections.
**Solution**
- Improved the error messages to include the section that the error applies to in the error message, and had to add an additional parameter to get the translated section name to be able to correctly report the section in the error message.
##### The manager cannot modify objectives if objectives are approved and the ratings phase is inactive (#121163)
**Problem**
- When an agreement is within the ratings phase, which has not been started, it can be moved to modify objectives in the dashboard side, but it is unable to when navigating to the contract
**Solution**
- Fixed logic check to be able to modify objectives within the contract period view.
##### 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
##### Move the "Modify Final Scores" option to the dashboard (#93147)
**Problem**
- When an agreement has been finalised and rated, you need to navigate within the agreement to select 'Modify Final Rating' when wanting to modify the agreement
**Solution**
- Added a new Ellipse menu item to modify the Period Contract, and a new modal to select the Review Period to modify.
##### \[View/Print\] Unapproved ratings show on the report (#119167)
**Problem**
- Ratings are displayed on Print/View even if the scores have not been submitted
**Solution**
- Add a new check to only show the score when scores have been submitted
##### \[Check-ins\] Historical Check-ins do not show the rating the manager gave (#120070)
**Problem**
- Cannot see the rating for the person's historical check-in
**Solution**
- Remove the check to only view manager rating checks
##### \[Moderation\] Add a clear button (#129908)
**Problem**
- Within the Moderation section, there is no way to clear selections other than manually clearing one
**Solution**
- Add a new Clear selections button to clear all input
##### \[PM\] \[Templates\] 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
---
#### **Login**
##### \[Login\] A 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 redirect URL to ensure that users can log in with their Microsoft account.
---
#### **System Access**
##### Improve Performance opening V8 links from V9 (#131794)
**Problem**
- The encrypted query string causes low performance when accessing V8 pages from V9.
**Solution**
- Replace the encrypted query string 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.
##### Send V8 notifications through V9 (#129209)
**Problem**
- A client with a configured token-based own SMTP on V9 needs a separate basic SMTP for V8.
- V8 notifications do not handle token-based SMTP authentication.
**Solution**
- Make the endpoint available on the notification service on V9 to receive and process messages.
- V8 attachments need to be handled.
##### Implement Encrypted Fallback config (#131882)
**Problem**
- The new security key implementation in V9 requires all V8 counterparts to also be upgraded.
**Solution**
- Add a config setting on V9 to whitelist rulesets by Id to use the previous query string encryption.
- When a ruleset is not part of the config, then the new security key method will be used.
##### As a person with access to the Help Files, I want to have an updated layout with feedback functionality (#129792 )
**Problem**
- The Help page modal's text needs to be more descriptive.
- The toggle functionality needs to be updated. When checked, it should allow the content to be shown instead of hiding the content (thus reversing the current toggle logic).
- Standardise the pop-up design by adding a close (X) button to the top-right corner of all general modals (only general modals for now).
**Solution**
- Added a generic close button at the top of each general modal.
- Updated the Help page's translations and fixed how the toggle for permissions works.
- A feedback button will be added in upcoming updates for this feature.
##### \[v9 URL\] Bookmark URL (#127982)
**Problem**
- Clients are experiencing issues when they bookmark the secure login URL for the Signify system.
**Solution**
- Change the identity login page to accept a theme URL as the redirect URL
- Allow the theme redirect to be used should the cookies or the ruleset have changed
- Make the theme's redirect URL reusable
---
#### **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).
**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.
##### V9: Import Issue (#132815)
**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
##### 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 cast to shortdatestring for datetime and datetime? fields
##### \[Integration\]\[Admin User\]\[People Import\] Import log shows successful but transaction log is empty (#132526)
**Problem**
- Not all import types are developed to export data; therefore, when a user clicks 'User validation report,' it will export but have no data
**Solution**
- Add a new check to validate and ensure the import type is allowed to be validated
---
#### **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)
**Developer Solution**
- Add a new button on the tools page to access the system summary.
- Create a new page with a table with paging, 50 per page and global search.
- Includes useful information for support (such as Tenant Id, Tenant Name, RulesetId, RulesetName, SystemCloseDate, LoginURL, SupportURL, and ActiveProducts).
- Includes a list of Subscriptions, ActiveUserCount, BaseLicenceCount, and SchemaCreatedMessage.
- Add a gPRC call in the Account Service to do the query with the requested fields.
---
#### **General**
##### Upgrade nugget 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.
---
#### **Data Warehouse**
##### \[DWH\] WFA 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 **t**he Term 2 and Term 4 EXAM Marks within the subject list
---
# Version 9.1.164.4 (Support Release - 25 June 2025)
#### **Report Builder**
##### Objective Settings Queries (#133021)
**Problem**
- The Select Distinct set on the report is not applied when exporting, only when viewing and leading to duplicate records being displayed when exported.
**Solution**
- If DistinctRows is not provided, fall back to the configuration on the report.
---
#### **General**
##### Unable to upload Banner Image (#133162)
**Problem**
- The file name included in the directory creation is causing issues with the image stream
**Solution**
- Only used the directory in creation
---
#### **Imports**
##### Payspace Employee import rejections (#132840)
**Problem**
- When pulling users from Payspace, users without ID numbers have no employment statuses and are excluded from mapping without a reason.
**Solution**
- When the user does not have an ID number, fall back to the employee number when grouping the user's appointments to retrieve the latest record
- Add error logs for the users who are excluded
- Stage the excluded users into user staging for the Payspace import
- Ensure the provinces can be created case and culture manner.
##### Appointment error on Own (#132805)
**Problem**
- When logged in as a support user, the user cannot open the V8 pages
**Solution**
- Include users of type support in the export function from V9 to allow it to be imported on V8 and open the pages.
##### 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 cast to shortdatestring for datetime and datetime? fields
##### Skip the OrganizationPositionDetail for the OFO population (#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
---
#### **Performance Management**
##### Manager rating cannot be saved - error message (#133058)
**Problem**
- When FinalRatingsOnly is enabled and the items are interpolated, it does not save the Manager Score along with the Final score (as it would when not interpolated). This causes the validation to fail when trying to approve the ratings.
**Solution**
- Ensure that the manager score values are also saved when the ratings type is FinalOnly. And correctly updates on the SPA after the save.
##### PM UPLOAD document button missing (#132985)
**Problem**
- When the contract is in the *Objective* phase but not yet in the *Rating* phase, users are unable to upload documents. As the *Ratings* phase where the only phase that where being checked/validated.
**Solution**
- Updated the validation logic to correctly parse and assess the current contract phase, ensuring document uploads are allowed during appropriate phases.
##### Performance Management: Incorrect Total after 10/10 Self-Rating and Error on Submit Final Rating (#131647)
**Problem**
- The scores within ContractPeriods do not round correctly when they round to above 100
**Solution**
- Adjusted the rounding issue for ContractPeriods scores to ensure it does not exceed 100
##### Project Management: Text Sanitation Changes '&' to '&' (#132912)
**Problem**
- When viewing the Review Setup, the & is showing incorrectly
**Solution**
- Added new sanitation, to show the correct & and not the encoded one.
##### 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
---
#### **People Management**
##### Error shown when user clicks on My Profile (#132878)
**Problem**
- When a user that does not have an admin role tries to view their own profile, the page breaks. Problem is that it tries to fetch the active products for the tenant/ruleset, but the call to get ruleset information is admin authorized only.
**Solution**
- Changed to get the tenant ID from the available anonymous call, which is then used to fetch the tenant subscription information.
# Version 9.1.164.3 (Support Release - 12 June 2025)
#### **Ruleset Management | Image Uploader**
##### Unable to upload Banner Image (#133162)
**Problem**
- The wrong directory is being created for the copy of the existing default banner, causing an error on upload
**Solution**
- Changed the directory existence check and creation from `sourchPath` to `copyPath`
---
#### **Imports**
##### Payspace Employee import rejections (#132840)
**Problem**
- When pulling users from Payspace, users without ID numbers, who have no employment statuses, are excluded from mapping without a reason.
**Solution**
- When the user does not have an ID number, fall back to the employee number when grouping the user's appointments to retrieve the latest record
- Add error logs for the users who are excluded
- Stage the excluded users into user staging for the Payspace import
- Ensure the provinces can be created in a case and culture invariant.
**Another rule to be aware of is that the Payspace pull only imports terminated users when they already exist on the ruleset with the payroll ID from Payspace. Any user terminated on Payspace before today that does not exist by Payroll ID on the ruleset is excluded and will not be imported.**
##### 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 cast 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
##### V9: Import Issue (#132815)
**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
---
#### **Performance Management**
##### Manager rating cannot be saved - error message (#133058)
**Problem**
- When FinalRatingsOnly is enabled and the items are interpolated, it does not save the Manager Score along with the Final score (as it would when not interpolated). This causes the validation to fail when trying to approve the ratings.
**Solution**
- Ensure that the manager score values are also saved when the ratings type is FinalOnly. And correctly updates the SPA after the save.
##### PM UPLOAD document button missing (#132985)
**Problem**
- When the contract is in the *Objective* phase but not yet in the *Rating* phase, users are unable to upload documents. As the *Ratings* phase where the only phase that where being checked/validated.
**Solution**
- Updated the validation logic to correctly parse and assess the current contract phase, ensuring document uploads are allowed during appropriate phases.
##### Performance Management: Incorrect Total after 10/10 Self-Rating and Error on Submit Final Rating (#131647)
**Problem**
- Due to the increasing number of KPIs and the distribution of their respective weights, there is a potential for precision-related discrepancies during the selection and calculation of the final rating. As a result, the computed value may appear as 10.001 instead of the expected 10.
- The final ratings could not be submitted due to the system not accommodating a score of 100.0000, which resulted in a submission failure
- The scores within ContractPeriods do not round correctly when they round to above 100
**Solution**
- New logic was implemented in the score calculation to allow for slight overcalculations, which are then adjusted to the appropriate floor value.
The system has been updated to allow for larger max rating scores.
- Adjusted the rounding issue for ContractPeriods scores to ensure it does not exceed 100
##### 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
##### Project Management: Text Sanitation Changes '&' to '&' (#132912)
**Problem**
- When viewing the Review Setup, the & is showing incorrectly
**Solution**
- Added new sanitation to show the correct & and not the encoded one.
---
#### **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 tenant ID from the available anonymous call, which is then used to fetch the tenant subscription information.
---
# Version 9.1.164.2 (Support Release - 5 June 2025)
#### **Performance Management**
##### Performance Management: Incorrect Total after 10/10 Self-Rating and Error on Submit Final Rating (#131647)
**Problem:**
- The scores within ContractPeriods do not round correctly when they round to above 100
- Due to the increasing number of KPIs and the distribution of their respective weights, there is a potential for precision-related discrepancies during the selection and calculation of the final rating. As a result, the computed value may appear as 10.001 instead of the expected 10.
- The final ratings could not be submitted due to the system not accommodating a score of 100.0000, which resulted in a submission failure
**Solution:**
- Adjusted the rounding issue for ContractPeriods scores to ensure it does not exceed 100
- New logic was implemented in the score calculation to allow for slight overcalculations, which are then adjusted to the appropriate floor value.
- The system has been updated to allow for larger max rating scores.
##### 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
---
#### **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 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 tenant ID from the available anonymous call, which is then used to fetch the tenant subscription information.
---
#### **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 cast to shortdatestring for datetime and datetime? fields
##### Person not updating via Import (#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
##### V9: Import Issue (#132815)
**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.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**
- Added a missing navigation tab for image resources when navigating from the notifications tab.
---
#### **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 **t**he 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)
**Problem**
- 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.
**Solution**
- 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)
Problem
- The system does not use the specified org code when importing a new level 1 node
**Solution**
- 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)
**Problem**
- The integrity report has been developed and is not used frequently for monitoring purposes
**Solution**
- Send DWH integrity report weekly via DB Mail by creating a new SQL Job
---
#### **Notifications**
##### Styling on Reason for deletion to be standardised (#122689)
**Problem**
- Styling in the delete modal in Main Banner | Inbox | Notification | Exports did not match other standard modals' styling in the system.
**Solution**
- 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)
**Problem**
- 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.
**Suggested Development**
Add a button to the people group summary page to manually force a refresh of the open people group on all services
- 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.
Add a MaterialisedDataLog table to each service
- 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)
**Problem**
- 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.
**Solution**
- 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)
**Problem**
- When creating a new Tenant &/or Ruleset, all products and the system menus are inactive.
**Suggestion**
- When creating a Tenant or a new Ruleset from blank, make the products and system menus active according to the Tenant's subscription.
**Development**
- 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:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/jQrMdg5p8m2g78B2-116680-1.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/rjj2a9aBzKfyEORu-116680-2.png)[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/3cAzqvOCfWha3YBv-116680-2-1.png)
- Extended Core
- Add a new product, Mentoring and Coaching, that is active when Extended Core is active.
- Report Builder, Insights:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/Owp0Pqogau9emVlr-116680-3.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/9V0EiFYgq30DpO8n-116680-4.png)[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/3ZhjFN4NbyVSAStc-116680-5.png)
- - Rename the license to Insights and Report Builder.
- eLearning:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/JLXSfLbneqRnLhlv-116680-6.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/rSZwSKCe4qGd11cA-116680-7.png)
- Add a new product, PDP, and link the PDP menu to it:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/cDCtHPcWfLCZr5Rs-116680-8.png)
- Performance Management:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/HiYrMkNYiJwiIK7M-116680-9.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/oNAmmNYGTh4sNcnD-116680-10.png)
- Leave Management:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/9lYmvcMFhbL61tM7-116680-11.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/pPXbGQuxMhELCK4q-116680-12.png)
- Career and Succession Planning:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/CAM4FWryl6fQBt6N-116680-13.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/Z5wgjNOsDxIg9omQ-116680-14.png)
- Recruitment:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/TaAX32mMpJ1axKAS-116680-15.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/2elXJLOhpREkNRyk-116680-16.png)
- Learning Store:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/jhoCwLVEzociWNtI-116680-17.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/6dDpNKNxa1JaB88N-116680-18.png)
- Training Scheduling:
- Rename the license and product to Event Scheduling
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/K9TRp04mymu5oC2x-116680-19.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/vsHcTlqDZNRr6tDi-116680-20.png)
- Salary Review:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/ZCjYAIzCmuWzhKed-116680-21.png)[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/78ezVXVGQ6AlrgVw-116680-22.png)
- 360 evaluations:
- Add a new product and move the 360 Employee Evaluations Menu to it
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/Ic6ITqzNwTFuUTqD-116680-23.png)
- Show and hide menus in People Management config based on the active products and licenses.
- Always show:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/ZSHkc3bab61Abjv0-116680-24.png)
- 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
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/5aKK1Na19rSqlu0M-116680-25.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/7KLRegSzYJ1PCgny-116680-26.png)
- 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
- Show the menu in the grid view:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-06/SGpiIcl8vtecXCmm-116680-27.png)
- 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)
**Problem**
- 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.
**Solution**
- 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)
**Problem**
- Data Dictionary joins are added manually with deployments to different environments
**Solution**
- 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)
**Problem**
- There are no drop-downs that can be used as filters on end-user reports
**Solution**
- 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).
**Solution**
- Updated text as well as improved formatting to preserve neatness.
---
#### **People Management**
##### Contact detail wording changes (#127975)
**Problem**
- Request to update the contact text in people management.
**Solution**
- 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)
**Problem**
- Contract print preview breaks for unfinalized contracts because it expects there to be a premoderation score.
**Solution**
- 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**
1. 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.
2. 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**
1. 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.
2. 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)
**Problem**
- 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)
**Problem**
- 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.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/3cyCJrK9cxktjm1L-image.png)
- 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.
**Solution**
- 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.
**Solution**
- 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)
**Problem**
- 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.
**Solution**
- 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)
**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 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.
**Solution**
- 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**
1. When a class group linked to a subject has comments or attendance records linked to it, the group cannot be removed from the subject
2. 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.
3. 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
4. When editing a subject and saving from the modal the data does not save
5. When editing a cycle and saving from the modal the data does not save
6. A subject's end data can be saved as a date before the start date
7. A cycle's end data can be saved as a date before the start date
8. A cycle can start before the subject started
9. A cycle can end after the subject has ended
10. The weights of the cycle or the interventions can be set to more than 100%
11. You cannot delete a training intervention from a cycle where marks have already been assigned
12. When a user is appointed from the front end or import the user is not materialised in the learning service
**Solutions**
1. 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.
2. 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.
3. Amend all queries to not display the pathway groups that as been deleted as linked items on the subject.
4. Correct the form submitted when saving on the subject model
5. Correct the form submitted when saving on the cycle modal
6. Add domain exceptions to validate the subject dates
7. Add domain exceptions to validate the cycle dates
8. Add domain exceptions to the max weights
9. Implement the soft delete on training interventions linked to a cycle
10. 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
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-03/eAQnTvu8zuNCq4SI-image.png)
1. Rename 1st column from “People Reporting To” to “People Group Name”
2. 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).
3. In the Position column, remove the code in brackets, and show it on hover.
4. 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**
- The clear button is right on the edge of the search box overlaps the edge.
- When the filter option is visible, the left edge of the filter button overlaps the clear button.
- This means you need to click the left edge of the clear button else the filter button is triggered.
**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)
**Problem**
1. There are areas in V9 that still use **IN @{Ids}** when querying the database. When there are more than 2100 IDs the query breaks because of a SQL limitation.
2. MaterialisedPeopleGroupUsers used as a list of userids
**Solution**
1. Replace ALL INSTANCES in the system where IN @{Ids} are used with DapperInBatched
- 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)
**Problem**
- 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.
**Solution**
- 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
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/Sv0H2oGTrvZjYb72-image.png)
**Navigation to the Moderation page**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/UWqtEllHhWrEisQb-image.png)
- Search according to Review Year, Review Setup and Review Period:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/4D0sXZ2KiPLs87VG-image.png)
- People with Agreements
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/vrPCwLvJuaWI0qmY-image.png)
- Select Moderate button
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/yxOEEdzMpxK8NrvT-image.png)
- After Moderation, Quality Assure is required (if setting has been enabled)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/Lbgwu573awR3Kxxt-image.png)
- When Quality Assure is opened, the moderation can be done as well
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/UY3unCSDg4Y3CHHr-image.png)
**Performance Management Dashboard**
- If an agreement has been Moderated, the Overall Final Score will show Moderated and on hover the original score
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/xjii3JtqGksPzuAw-image.png)
- The Agreement also shows which KPI has been moderated
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-04/JJ5d4AykNeSq4CME-image.png)
# 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.
**Solution**
- 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)
**Problem**
- 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.
**Solution**
- 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 call `saveAttendanceRegister` before creating notifications.
- Changed `includeParent` state in `AttendanceNotificationModal` to `true` 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.
**Solution**
- 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 call `saveAttendanceRegister` before creating notifications.
- Changed `includeParent` state in `AttendanceNotificationModal` to `true` 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:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-03/KFZN9GDVerB4eq1K-image.png)
- Then the section weights are copied from the review setup
- If both settings are enabled:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-03/QkhQG3ty12Qu2cfe-image.png)
- 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.
**Solution**
- 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> 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***
**Problem**
- When multiple payroll connectors are set as scheduled imports, the parallel execution causes a DBContext conflict.
**Solution**
- 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.
***Issue 3***
**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**
- Added the button to the check for the user approved to always display in the rating phase
- Add the button to the default fallback also
##### 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.
**Solution**
- 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.
**Solution**
- 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.
**Solution**
- 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)
**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 re-arranging the headers. This resulted in the incorrect orders sometimes being saved, especially if you drag very quickly.
**Solution**
- 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)
**Problem**
- Data is deleted on a full refresh
**Solution**
- 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)
Replace the three imports with one full performance agreement import that can handle both creating new contracts as well as updating existing contracts. To achieve this, the following has been done:
- 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**
- The submit button gets disabled when clicked, therefore it cannot be submitted again if the form is invalid.
**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)
**Problem**
- Barched queries failed due to too many of the same foreign keys
**Solution**
- 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)
**Problem**
- 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)
**Problem**
- Inactive Positions are not being accounted for correctly by the system.
**Solution**
- 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 the `NextOfKinInfo` record in `UserViewModel.cs`.
- Updated the `NextOfKinInfo` record in `UsersServiceV1.cs` to include the `Username` field.
- Modified the `RecipientConfirmationExportInfo` message in `learning_management.v1.proto` to include `recipient_username` and reordered the fields.
- Added the `Username` field to the `NextOfKinInfo` message in `user_management.v1.proto`.
- Updated the `AbsenteeNotificationsRecord` and `AbsenteeNotificationExportInfoRecord` records in `NotificationViewModel.cs` to include the `LearnerUsername` and `RecipientUsername` fields respectively.
- Modified the `LearningManagementServiceV1` class to include the `Username` field in various LINQ queries and response objects.
- Updated the `AttendanceNotificationExportViewModel` class to include the `Username` field in the `NotificationEmailExportDTO`.
- Added the `Username` field to the `NotificationEmailExportDTO` record in `AttendanceNotificationDTO.cs`.
- Modified the `LearningManagementExportService` class to include the `Username` field in the data export process.
- Updated the `learningManagement.json` localization file to include the `recipientUsername` key and its translations in multiple languages.
- Ensured consistency in the `learningManagement.json` file by adding the `recipientUsername` 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**
- The Delete button remains disabled, and therefore, a Schedule cannot be deleted
**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)
**Problem**
- 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.
**Solution**
- 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)
**Problem**
- Drag and drop positions incorrectly increment people count for org unit rather than vacancy count.
**Solution**
- 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**
- Add the button to the check for the user approved to always display in the rating phase
- Add the button to the default fallback also
##### 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.
**Solution**
- 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`. Updated `axios.get` call to use `generateUrl`
##### 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**
- Updated the \[Authorize\] attribute on the `ListUsersLinkedToRoles` method in the` IdentityService` class to allow access for users with either the `PeopleManagementAdministrator` or `LearningAdministrator` roles. Previously, only users with the `PeopleManagementAdministrator` role could access this method
---
#### **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:
1. 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.
2. 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:**
1. 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.
2. 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)
**Problem**
- 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
**Solution**
- Made prototype nullable and chose name field based on visible container.
---
#### **Performance Management**
##### Copy Over Scorecard (#128182)
**Problem**
- 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.
**Solution**
- 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)
The following changes were made:
- 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)
1) 2 offline refresh jobs were still running that I stopped I believe they were holding onto resources
2) At the same time 3 update processes were running that were blocking one another, I think the offline refresh jobs may have affected these, once the jobs stopped the processes were completed.
3) One of the queries pulling PG info is intermittently slow, although it seems to be fine now. There may be PG changes happening which is requiring refreshes on the PG and affecting the speed of the call. We will have to keep monitoring this, if we do experience significant performance problems again we can investigate further to try and see if we can identify something.
---
#### **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 previous Interpolation Actual Value field now serves as the Final Actual Value.
The following 2 fields were added:
- InterpolatedManagerValue
- InterpolatedUserValue
##### Adjust DWH deployment workflow for V8 DWH packages (#126906)
**Problem**
- Workflow can only deploy V9 DWH packages
**Solution**
- 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)
**Problem**
- User authentication and user forgot password used the incorrect placeholder's name for "ResetOTP"
**Solution**
- 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:
1. The default appointment record did not get created leading to the user being seen as inactive due to not having an appointment.
2. 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)
**Problem**
- Workflow can only deploy V9 DWH packages
**Solution**
- Adjust workflow (by adding a dropdown for V8 database names) to deploy the V8 DWH package.
##### 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
##### The 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
---
#### **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)
**Problem**
- Barched queries failed due to too many of the same foreign keys
**Solution**
- 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)
**Problem**
- 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.
**Solution**
- 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.
1. This label was updated, it does not reflect Review Periods but rather the Review Setups
2. 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.
3. The Copy Action Plans From Previous was not copying all the information, only Name and Description. Including now all AP fields on the copy.
4. When doing CreateContractPeriodFromPrevious it must also copy any Action Plans that exist on that contract period. (which it did not do)
**Solution**
1. Updated the translation to correct the label to show Review Setup
2. Changed the query for the review years to exclude the year for the current contract.
3. 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
4. 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**
- Added a button on the PM dashboard to go to the evaluation page.
##### As a Performance Management Administrator, I want to have an additional setting that hides the Evaluation Summary page from employees (#123617)
**Problem**
- As a Performance Management Administrator, I want to have an additional setting that hides the Evaluation Summary page from employees.
**Solution**
- 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)
**In V8**
- Add an Endpoint to return all Evaluation periods that are active from
- Add an Endpoint to pull the 360 scores based on a DateTime
**In V9**
- 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)
**Problem**
- Duplicate master data is causing issues in the system.
**Solution**
- 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)
**Business Rules**
- 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 ()
- 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.
- 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)
**Problem**
- The system does not allow users to indicate the uptime of the services
**Solution**
- 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)
**Problem**
- The location field not syncing to V8
**Solution**
- 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)
**Problem**
- Manager people groups are not created automatically on V9 for all managers. This creates a lot of unnecessary data that is not always used.
**Solution**
##### 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)
**Problem**
- When a file upload fails because of invalid Nextcloud credentials, it is not clear from the error log
**Solution**
- 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)
**Problem**
- 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.
**Solution**
- 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)
**Problem**
- Barched queries failed due to too many of the same foreign keys
**Solution**
- 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)
**Problem**
- 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:
1. The default appointment record did not get created leading to the user being seen as inactive due to not having an appointment.
2. 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)
**Problem**
- User authentication and user forgot password used the incorrect placeholder's name for "ResetOTP"
**Solution**
- Ensure that those events use the correct placeholder's name.
---
#### **Performance Management**
##### Unable to Link Scorecards to Users (#127841)
The following changes were made to the bulk create and delete pages to allow it to work for small and large datasets
- 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)
**Problem**
- Barched queries failed due to too many of the same foreign keys
**Solution**
- 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)
**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.
---
#### **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:
1. The default appointment record did not get created leading to the user being seen as inactive due to not having an appointment.
2. 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 . 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)
**Problem**
- Full refreshes of DWH tables are required on an ad-hoc basis
**Solution**
- 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**
- The save button does not enable when going to a different tab than 'global' and also not when searching. The issue is that the 'active culture' gets overwritten because of incorrect lookup to the wrong nav-tabs which resulted in it not picking up the correct stored translation mapping and not determining any changes.
- The second problem is when searching or reloading the page on the current sub-tab, the Save button does not work, this was because the form to post is defaulted to {culture}-global and not to whatever tab you are currently on.
**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
**Appointment Import Rules**
**Terminations**
- 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
**New Appointments**
- 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
**Transfers**
- 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
**Appointment Corrections**
- 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**
- Added a button that will unlink all the roles of the user.
##### 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)
**Problem**
- The loading indicator is not showing when saving a marksheet.
**Solution**
- 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”
- 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
---
#### **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)
**Problem**
- 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.
**Solution**
- Changed the company values to keep the whitespace for the “How do we live it out” field.
---
#### **Notifications**
##### Add time to Welcome email (#124699)
**Problem**
- The time the welcome notification was sent is not showing.
**Solution**
- Display the time the notification was sent.
##### Implement Priority Emails (#124030)
**Problem**
- 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.
**Solution**
- 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)
**Problem**
- There is currently no visibility of the exceptions that are experienced daily by end users
**Solution**
- 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
- 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
- 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.
**Create a PowerShell connector command to process connectors of this type per the ruleset**
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**
**Problem:**
- 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.
**Solution:**
- When an import completes and any failures occurred during the import trigger a standard system notification.
**Recipient:** Front End Import- Person who started the import
Backend Import- Send to admins of product linked to import type
**CC:**
**Email Body:**
Dear [RecipientName] [RecipientSurname],
The [ImportType] import is completed with [ErrorCount] errors.
Please follow the below link for more information
[Link To Notification | Import]
Kind Regards
HR Team
**Create a PowerShell script to pull data**
- 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)
**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
**Solution**
Split the processing of appointments by action type and process in order
1. Terminations
2. Transfers
3. Corrections
4. 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 . 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
**Solution**
- 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**
- Rate button not shown to either party when both have submitted but one or the other has rated but not yet submitted ratings
**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
**Solution**
- 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)
**Problem**
- The rating modal was not reset after entering the actual value.
**Solution**
- 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](https://kubernetesdev.signifyhr.co.za/Spa/master/performanceManagement/Dashboard)"
instead of
"[https://kubernetesdev.signifyhr.co.za/master/Spa/performanceManagement/Dashboard](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](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)
**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 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
- 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.
**Create a PowerShell connector command to process connectors of this type per the ruleset**
- 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**
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.
**Solution**
When an import completes and any failures occur during the import trigger a standard system notification.
**Recipient:** Front End Import- Person who started the import
Backend Import- Send to admins of product linked to import type
**CC:**
**Email Body:**
Dear [RecipientName] [RecipientSurname],
The [ImportType] import is completed with [ErrorCount] errors.
Please follow the below link for more information
[Link To Notification | Import]
Kind Regards
HR Team
---
#### **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:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-01/Ehd0oN6R5PBsRfIn-image.png)
- - Make the Small size:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-01/gBCaqKPEjbMeiXEM-image.png)

- - Make the Extra Small size:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-01/oA7CTDCDUKMnbU4n-image.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-01/EXIROsr5cMLzz2jU-image.png)
##### 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.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-01/EXIROsr5cMLzz2jU-image.png)
##### 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.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-01/0zbg4cmgrKnJoF7i-image.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-01/MLk052cVctOQiUB8-image.png)
---
#### 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.
1. This label was updated, it does not reflect Review Periods but rather the Review Setups
2. 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.
3. The Copy Action Plans From Previous was not copying all the information, only Name and Description. Including now all AP fields on the copy.
4. When doing CreateContractPeriodFromPrevious it must also copy any Action Plans that exist on that contract period. (which it did not do)
**Solution**
1. Updated the translation to correct the label to show Review Setup
2. Changed the query for the review years to exclude the year for the current contract.
3. 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
4. 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)
On the Review Years | Review Setup | Review Period | Review Survey
- 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
- 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.
- 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
[](https://signature.signifyhr.co.za/uploads/images/gallery/2025-01/ySUM0GMiIlQdrq7N-image.png)
- 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
---
#### **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**
- Added anonymous tags to ensure the daily syncs work again.
---
#### **Translations**
##### Investigate changing translation keys from key-based to file-based (#119512)
**Problem**
- Translation calls need to be improved, it is used extensively throughout the system
**Solution**
- 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**
- The rate button not shown to the employee when the manager has not yet submitted objectives
**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**
A new people group all people has been added and includes everyone in the system with an appointment
- 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
All services that make use of People groups
- 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
- 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
Busting the cache from the front end
- 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
- 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.
- 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
- 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
#### 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
- 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 in `Marksheet.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)
**Problem**
- The Datawarehouse returned 'blank' if the nvarchar returned NULL values
**Solution**
- 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
---
# List of Release Notes (2024)
# Version 9.1.134 (2 December 2024)
### Performance Management
#### The Modify objectives button is disabled when the phase is active (#123736)
**Problem**
- Cannot modify objective settings when approved and the rating phase is not active.
**Solution**
- Change the rule when the modify settings button is disabled
#### Objective Settings Queries (#123654)
**Problem**
- When the manager approves the objective settings and the user has not yet in dual approval then the status of the user displays incorrectly on the manager check-in dashboard for the user
**Solution**
- Add 2 new rating statuses based on the approval state of the objective settings
#### Employee profile locked (#120818)
**Problem**
- Employees cannot access the contract because it is locked.
**Solution**
- Added confirmation modal to request if the user is still busy on the page. If the user clicks 'Continue', the lock is refreshed, otherwise, after a minute the lock opens and reverts the user back to the PM dashboard.
#### Rating scale (#123348)
**Problem**
- When rating an evaluation excluded rating scales are not available to rate with
**Solution**
- Remove the filter on exclusion and correct the score that is now nullable
- This displays the extra scales
#### Performance Agreement - System Issues (#123305)
**Problem**
- The Date field is displayed as incorrect
**Solution**
- On blur add the active class to display the label on top and empty the value when not completed
Remove the word axios.ts from the generic error
---
### People Management | System Module Roles
#### A person without Organisational Structure Permissions can access the Org (#121709)
**Problem**
- Even though the user has no access to Organisation Structure rights, they can access the Org Structure.
- This is because the user has Job Profiler Admin rights.
**Solution**
- Remove the Job Profiler Admin rights from accessing the Org Structure
---
### HR Processes
#### Changing the Fallback selection on the workflow setup removes the settings on the Workflow Fallback Configuration (#123738)
**Problem**
- Changing the Fallback selection on the workflow setup removes the settings on the Workflow Fallback Configuration.
**Solution**
- Ensure that the settings on the Workflow Fallback Configuration does not get cleared when changing the Fallback selection.
---
### Imports
#### DISABILITY STATUS (#123550)
**Problem**
- When disabilities like none, not disabled, no, no disability are imported in the user import the expectation is that the user will not be made disabled in the system even though a disability is provided for the user.
**Solution**
- Add a bool field to exclude certain disabilities from being imported where the client determines what disability term indicates not disabled
- Add translation error handling in MVC
---
### Data Warehouse
#### Claim Report for Sage Import (#122871)
**Problem**
- Datasource jpHRProcessRequestData needs to be added that contains the JSON response entries
**Solution**
- Added data source jpHRProcessRequestData within the V9 Data warehouse
#### Performance status report (#123397)
**Problem**
- No results returned when running the report:
**Solution**
- This was due to an issue on the DWH that was picked up now with jpReportingLines, where the Datawarehouse package did not cater for Username, Name and Surname changes that can occur withinthe DataSource table "JobProfiler.UserReportingLines", as the DWH only checked for changes that occurred within Database table "JobProfiler.MaterialisedUsers".
#### Performance Management: Exclude job titles from performance management (#122661)
**Problem**
- Performance Management Records are returning for Smollan, although the Job titles are excluded.
**Solution**
- Created a custom container within V9 DWH that will remove Performance Management entries for Smollan if they are included in the Job Title exclusion list
#### Evaluation questions (#123006)
**Problem**
- The report shows the rater as anonymous when the KPI evaluations are sent out anonymously.
**Solution**
- Added new fields
- **PersonThatDidTheEvaluationUnAnonymous,**
- **ContractPeriodOverallEvaluatorEmailUnAnonymous,**
- **ContractPeriodSectionItemEvaluatorNameUnAnonymous,**
- **ContractPeriodSectionItemEvaluatorEmailUnAnonymous**
- This will return the user details regardless if the Anonymous setting is set to true or not
---
### Learning Management
#### Period info not displayed above the mark sheet (#123698)
**Problem**
- Missing title with subject, period and class name
**Solution**
- Added .marksheet-card class in Marksheet.scss for top border styling
- Added title with the subject, period and class name above the Excel mark sheet
#### The mark sheet shows that the same people group has been linked twice (#123772)
**Problem**
- Classes should be listed with the same node instead of the same student group/class
- Existing People group select throwing errors when retrieving a bigger group
**Solution**
- Updated the method signature for `ListPeopleGroupClassSubjectGroupsAsync` in the `ILearningManagementQueries` interface to replace `peopleGroupId` with `nodeId`. Corresponding changes were made in the `LearningManagementQueries` class, including updating the SQL query. Adjusted calls in `LearningManagementServiceV1` to pass `request.NodeId` instead of `request.PeopleGroupId`. Modified the `ListClassSubjectGroupsRequest` message in `learning_management.v1.proto` to replace `people_group_id` with `node_id`.
- Updated AttendanceRegisterViewModel and MarksheetViewModel to use ListPeopleGroupUsersRequest and ListPeopleGroupUsersResponse instead of ListRulesetPeopleGroupUsersRequest and ListRulesetPeopleGroupUsersResponse.
#### Remove the text box below the spreadsheet (#123639)
**Problem**
- There is a text box below the spreadsheet which is not shown on the mock-up.
**Solution**
- Remove the text box
#### Absent learners not saved / Error when saving again (#123744)
**Problem**
- `ClassSubjectId` is incorrectly saved as `ClassSubjectGroupId` in the attendance table. Therefore, when attempting to save, it appears that the operation is not successful.
**Solution**
- Replaced `request.ClassSubjectId` with `request.ClassSubjectGroupId` in the `CreateUpdateAttendancesCommandHandler` class.
#### Reset the toggle each time Publish & Lock opens (#123707)
**Problem**
- Send Notification is enabled in `PublishAndLockConfirmationModal.tsx` when it should be disabled at the time the modal is opened
**Solution**
- Implemented `useEffect` in `PublishAndLockConfirmationModal` to reset `sendNotification` state to false when the show property changes to false, ensuring the state is cleared when the modal is closed.
#### \[Pathways\] \[Class/Group\] \[Marksheet\] Open the comments modal when you click in the comments cell (#123536)
**Problem**
- The user has no clear indication of how to open the comment modal
**Solution**
- Introduced a new feature to display a translated instruction message in the comment cell when it is empty. The message is shown in grey and changes to black when an actual comment is added and the comment column width is increased from 180 to 200.
- Added translation key `doubleClickToAddComment` in `learningManagement.json`.
#### Marksheet not saving all data (#123551)
**Problem**
- Auto marks already overridden are being overridden again by the V8 import of marks.
**Solution**
The changes introduce a new boolean property, `Overridden,` to the `Mark` class and related data structures. This property determines if the V8 import of marks should update the mark.
- Updated `Mark` class and constructors to include `Overridden`.
- Modified `CreateUpdateMarksCommandHandler.cs` to handle `Overridden`.
- Updated `LearningManagementCommands.cs` and `LearningManagementQueries.cs` to include `Overridden`.
- Enhanced `LearningManagementViewModel.cs` and `LearningManagementServiceV1.cs` to manage `Overridden`.
- Added `Overridden` to `learning_management.v1.proto` messages.
- Updated various DTOs and records to include `Overridden`.
- Added a new migration file to create the `Overridden` column in the `Marks` table.
#### \[Pathways\] \[Class/Group\] \[Marksheet\] Unable to retrieve comments error when I open a mark sheet (#123530)
**Problem**
- Adding a new class or group to a pathway and accessing the mark sheet leads to erroneous data displayed onthe UI. This is caused since the data is not yet imported to V9 and the Class/Group is not yet linked to a subject
**Solution**
- Updated `MarkController.cs` to wrap error messages in an object with a `message` property for `ConfigurationErrorsException` and `RpcException`.
- Modified `Marksheet.tsx` to check for `error.response.data.message` in the `catch` block and conditionally render `ButtonLinkSlider` and `MDBAccordion` based on `navLinks` and `markSetupList` lengths. Added alerts for no-mark setups or students.
- Added new localized messages in `learningManagement.json` for scenarios with no subjects or students
#### \[Pathways\] \[Class/Group\] \[Attendance Register\] Teacher / Facilitator shown on attendance register (#123365)
**Problem**
- LearningAdmin included in Attendance Register and Marksheet page
- Attendance history student order does not match with other pages
- Teachers with LearningAdministrator Roles can manage the Master Data
**Solution**
- Added `IdentityClient` in AttendanceController and MarksheetController. Update the Create method signature to include Identity.IdentityClient and call ListUsersLinkedToRolesAsync to filter out Learning Administrator role users.
- Updated the SQL query in `LearningManagementQueries.cs` to order results by `s.Surname` and `s.Name` .
- In `RolesViewModel.cs`, removed the `LearningAdministrator` role from one list of roles with standard permissions and re-added it to the customizable list specifically for when assigning the role to a teacher
---
# Version 9.1.133 (2 December 2024)
### Data Warehouse
#### As a Report Builder, I want all the new fields available in the DWH (#120979)
Added the HR Processes additional fields:
- Comments
- Special Instructions
- Cancel Reason
- Decline Reason
#### Import-export (#121920)
- Certain fields/tables will need to be added to the data warehouse to create a report on the report builder that can be used as a template to Import People's Data on V10
#### Job Profiler sync from V9 to V8 (#121932)
**Problem**
- Not all Job Profiler fields sync to V8
**Solution**
- Amend the sync to include:
- Occupational Category
- Occupational Level
- OFO Codes
#### Table consolidation and Data Dictionary cleanup (#121644)
**Problem**
- There is data in the Data Dictionary tables across tenants
- There are unused columns in the data warehouse tables
- There are tables in the data warehouse that can be combined
- There are columns in the Data Dictionary where the content of the column is unclear
- This requires a rename of the alias of such columns
- Column names do not appear in an expected / logical order
**Solution**
- Cleanup data so that there is only Data Dictionary data in tenant 1
- Work through all columns in the Datawarehouse and identify unused columns
- Identify tables in the data warehouse that can be combined
- Review all columns and suggest wording where it is not clear what is stored in the column
- Order columns in a logical order
- Ensure data sources appear in their correct categories
#### Duplicate Reports were created when adding a new report (#110700)
**Problem**
- Duplicate reports were created when clicking on the tabs multiple times before creating the report.
**Solution**
- Ensure that only a single report gets created when adding a new report.
---
### Learning Management
#### Prevent users from clicking the attendance Register link if there's no period (#122073)
**Problem**
- There is no indication that periods need to be set up
- Error message for period retrieval is the wrong message
**Solution**
- Add a warning message to indicate periods need to be configured
- Added new message to indicate retrieval error
#### \[Pathways\] \[Class/Group\] \[Attendance History\] Make sure the horizontal scrollbar is always visible (#123369)
**Problem**
- The space beneath the card does not match the space on all other sides.
**Solution**
- Removed the fixed viewport height percentage from `.card-attendance-history` in `AttendanceHistory.scss`.
- Updated `AttendanceHistory.tsx` to add `h-100` class to outer `div` and `MDBCard` component, ensuring they take up 100% of the parent container's height
#### \[Pathways\] \[Class/Group\] \[Attendance Register\] Teacher / Facilitator shown on attendance register (#123365)
**Problem**
- LearningAdmin included in Attendance Register and Marksheet page
- Attendance history student order does not match with other pages
- Teachers with Learning Administrator Roles can manage the Master Data
**Solution**
- Added `IdentityClient` in AttendanceController and MarksheetController.
- Update the Create method signature to include Identity.IdentityClient and call ListUsersLinkedToRolesAsync to filter out Learning Administrator role users.
- Updated the SQL query in `LearningManagementQueries.cs` to order results by `s.Surname` and `s.Name` .
- In `RolesViewModel.cs`, removed the `LearningAdministrator` role from one list of roles with standard permissions and re-added it to the customizable list specifically for when assigning the role to a teacher
#### \[Pathways\] \[Class/Group\] \[Marksheet\] Reduce padding of the rows in the Setup section (#123538)
**Problem**
- There is too much padding of the rows in the Mark Setup section
**Solution**
- Added CSS rules in `Marksheet.scss` to set padding and font weight for table headers and cells within the `#table-marks` element.
- Modified the `Marksheet` component in `Marksheet.tsx` to include additional class names and styles for the accordion header and body.
- Changed the `MDBTable` element to have an `id` of `table-marks` to apply the new CSS rules.
#### \[Pathways\] \[Class/Group\] \[Marksheet\] Marks displayed in reverse order (#123559)
**Problem**
- The marks shown are not in alphanumeric order
**Solution**
- Added ORDER BY `cci.Mark` clause. To order the items by name
#### \[Pathways\] \[Class/Group\] \[Marksheet\] Unable to retrieve comments error when I open a mark sheet (#123530)
**Problem**
- Adding a new class or group to a pathway and accessing the mark sheet leads to erroneous data displayed on the UI. This is caused since the data is not yet imported to V9 and the Class/Group is not yet linked to a subject
**Solution**
- Updated `MarkController.cs` to wrap error messages in an object with a `message` property for `ConfigurationErrorsException` and `RpcException`.
- Modified `Marksheet.tsx` to check for `error.response.data.message` in the `catch` block and conditionally render `ButtonLinkSlider` and `MDBAccordion` based on `navLinks` and `markSetupList` lengths. Added alerts for no-mark setups or students.
- Added new localized messages in `learningManagement.json` for scenarios with no subjects or students
#### \[Pathways\] \[Class/Groups\] \[Attendance Register\] Able to save when the attendance register has not been configured (#123525)
**Problem**
- The save and notification buttons can still be used even without periods and students.
- Able to use the send notification button even if the attendances have not yet been saved
**Solution**
- Added a `disabled` attribute to the "Save" and "Send Absent Notifications" buttons in the `AttendanceRegister` component. These buttons will now be disabled if no students are on the list.
- The notification button will now also be disabled until all the attendances listed on the page have been added to the DB
#### \[Learning Management\]\[Product Setup\] Cycle Intervention Setups - Dropdowns not Functional (#123531)
**Problem**
- When creating subjects with new subjects, the intervention dropdowns are not initiated properly because of duplicate names between cycles. Also, there is a problem editing a cycle. It is treated as a new cycle instead of an existing cycle
**Solution**
- Use the cycle nr instead of the id for newly created cycles as the id is 0 when created. This fixed the dropdown problem. Also, add action on the cycle modal to properly distinguish between an edit or an add of a cycle as using the id is 0 for newly created cycles.
#### \[Pathways\] \[Class/Group\] \[Marksheet\] Marksheet shows that a mark was set as manual when it was set as automatic (#123608)
**Problem**
- The auto setting does not pull through to the mark sheet.
**Solution**
- Fix argument list in MarkSetupDTO contructor
---
### Tenant Management
#### Date Picker Defaults set to Future Date rather than currently configured date (#122611)
**Problem**
- When opening the "edit expiry date modal" the "Current expiry date" is a day after the actual date"
**Solution**
- Added a fix to convert the date to the correct date so that it is not a day ahead.
#### Wrong Notification Template used for 1 Day After Notification (#122732)
**Problem**
- Licence Process Notifications are sent on the wrong dates.
**Solution**
- Ensure licence process notifications are sent on the correct date.
#### Activate all products and system menu's according to the subscription when creating the Ruleset (#114394)
**Problem**
- Menu items not activated from active subscription products on ruleset and tenant creation
**Solution**
- Ensure menu items are activated from active subscription products on ruleset and tenant creation
---
### People Management
#### An unspecified error when saving the profile without specifying the required fields (#122954)
**Problem**
- When the **Citizenship** field is omitted and the user tries to Save the newly added profile, an unspecified error is displayed.
**Solution**
- Add a descriptive message
#### Default Banners missing (#123303)
**Problem**
- The system does not have the Default Banners
**Solution**
- Display the ruleset 1 banner on the image resources page when the current ruleset has no images uploaded yet
---
### Translations
#### Performance Management: Implement domain error handling with translation keys (#121935)
**Problem**
- Domain errors have no translations
**Solution**
- Replace all the domain errors with translations.
- All messages handled across all the services should show a detailed error on the front end.
- Supported languages:
- en-US, af-ZA, de, fr-CF, pt-MZ, ar-SA, am
---
### Job Profiler
#### Search field does not filter Profile Codes (#122768)
**Problem**
- The Search field does not filter Profile Codes
**Solution**
- Enable the search field to filter the Profile Codes as it does on the Position page
---
### Report Builder
#### \[Report Builder\]\[Admin User\]\[Date\] Changes to date field (#121255)
**Problem**
- There is only a Date (Default) field available on the fields
**Solution**
- Change the current one above to Date and time (Default)
- This time shows as: 2024-10-07T07:30:53.8235783
- Show as standard date/time function, but aligned to the selected culture and timezone. In the above example, it should be: 2024-10-07 9:30:58
- Add another option for Date only
- This option must show the date without the time component
#### Snack message translation missing (#121621)
**Problem**
- When changing the selection on the People Group drop-down, the message on the Snack Bar is not translated.
- This only happens when the Default Ruleset language is set to the same as the user's preferred language.
- In the example, the user's preferred language is set to English - United Kingdom and the default for the ruleset is set as English - United Kingdom.
**Solution**
- Corrected the translation issue to display the correct message
---
### SigniChat
#### Group Members count inaccurate (#121907)
**Problem**
- The member count shows 3, but there are only 2 people on the members list.
- It appears as though the 'support user' may have been included in the count but does not appear on the list.
- If this person should be on the list, then they need to show as a member, if not, then the count needs to be reduced to 2.
**Solution**
- Exclude the support user from the user count
#### Styling on Chat Search box to be made standard (#120691)
**Problem**
- There is an issue where search events are not bound when going from create chat to the active chat list
**Solution**
- Fixed the issue of always binding search events when loading active chats
---
### Imports
#### Import fails when Name and Surname are not required and not provided (#122030)
**Problem**
- It is possible to make the Name and Surname fields not required on the People Management module configuration. This setting affects the front end as well as the people's import.
- When these fields are not required and you import a user with no name and/or surname, the import fails be cause the back-end still validate these fields.
**Solution**
- Removed name/surname validation when staging data and not set on ESS as required
---
### Competency Analysis
#### Add detail to Category when collapsed after rating (#112814)
**Problem**
- The competency subtext is not correct when all competencies are assessed
**Solution**
- Ensure the subtext is correct when all competencies are assessed
#### Additional Competency List displays Competencies linked to the Job Profile (#109846)
**Problem**
- When clicking on the "Do self-assessment" button and then clicking on the +Competency button for the Additional Competencies modal, will result in an empty dialog.
**Solution**
- Ensure that the Additional Competencies modal is not empty, after clicking on the "Do self-assessment" button
---
### Notification | Email Setup
#### Port and Time Out text box labels incorrect (#102607)
**Problem**
- When the page is displayed, the Port and Time Out text box labels have the border box drawn through the label.
**Solution**
- Fix the input style
---
### Ruleset Management | Signify Mobile App
#### As a System Owner, I want to create a web page to embed the bot (#121383)
- Signify created a web page where the bot will be embedded as per the standard sharing capability of Landbot.
---
# Version 9.1.132 (18 November 2024)
### Performance Management
#### Unapproved ratings shown on the report (#119167)
**Problem**
- The scores should not be displayed until the ratings have been approved
- The Review Survey should be shown on the View/Print
**Solution**
- Fix the score shown on Print Preview when ratings are not approved.
- Fix the Survey section on print preview.
#### Evaluators to see all the employees they need to rate in one list across Review Setups (#123183)
**Problem**
- Currently, a person rating others gets 2 or more lists when people are in different review setups
**Solution**
- Ignore the review setups and periods when creating the list of people someone must evaluate
- Show ALL people you need to evaluate across review setups
- Add a column to show the review setups' due date
#### Emails for 360-degree evaluation (#123028)
**Problem**
- When the Evaluation Sent template is triggered it gets the list of evaluation items it needs to email out, each of these items are then updated to 'Sent' status. However, with large data sets the handler appears to time out and never return any recipients to the notifications client.
**Solution**
- Changed the UpdateEvaluationSentcommand handler to do a Bulk Update which required bypassing the normal aggregate root update. Also fixed the query selecting evaluations to mail out since it only needs to be sent out when the contract is in the ratings phase (objectives approved)
#### Search on create contracts screen not working (#118638)
**Problem**
- Sql command timeout occurs when selecting people with people groups for bulk action.
**Solution**
- Optimise query on select people for pm bulk action to create contracts from the template. Join on temp user-id table instead of selecting all records from cteOrderedAppointments
#### Hide setting: "Allow the manager to override who will approve and rate" (#122951)
**Problem**
- The setting has been added but is still in the pipeline to be developed
**Solution**
- Hide the setting until this functionality has been added
#### 2 emails being sent with separate links for one Evaluation (#122047)
**Problem**
- 2 emails were sent when a review setup was linked to multiple years.
**Solution**
- Fixed issue by checking which review year set up the contract belongs to
#### Sent to Wrong Person Results not Saving Correctly Under Evaluations (#122676)
**Problem**
- If the evaluations were saved first, then submitted with "Sent to the wrong person" selected, the saved ratings were still shown on the evaluation summary
**Solution**
- If an evaluation is saved as a draft and then "Sent to the wrong person" is selected, the overall evaluation is deleted and the evaluation rating is set back to null
#### After Evaluation Results Submitted, Notification Sent Status Changes to Unsent (#122667)
**Problem**
- After Evaluation Results are Submitted, a Notification Sent with Status Changes to Unsent
**Solution**
- Fixed bug made by the changes of the new save functionality.
---
### Job Profiler
#### Job Profiler sync from V9 to V8 (#121932)
**Problem**
- The dropdowns when creating or editing a job profile are confusing as it looks like the default is always selected
**Solution**
- Add empty translated default
#### Job Code Search not working (#123312)
**Problem**
- On the Job Profiler admin screen the search is only checking against job title, you cannot thus search by Job Code
**Solution**
- Included Job Code on the search filter to allow searching for Job Title or Job Code.
---
### People Management
#### SELECT NEW PROFILE PICTURE not available (#123135)
**Problem**
- The Image Resources settings handling the display/upload of Avatar images were also affecting the profile image selection and upload.
**Solution**
- Removed the if check determining the display of the Profile Picture selection and upload as this must ALWAYS be visible and not be affected by the Avatar settings.
---
### HR Processes
#### Multiple persons on the topmost (root) node as fallback (#121882)
- Add the Workflow Fallback Configuration to the Process Flow page as well.
- It will first look at the Organisational Unit's setup and if no one is found, then it will look at the config on the Process Flow page.
- If the config is nowhere added, then there will be no Fallback and the process will break.
#### Linespace to be added on the Process Flow setup page (#123178)
Styling fixes
#### Fallback approvers set on the child node are shown for the person on the node above this node that the fallback is set for (#123180)
**Problem**
- Instead of selecting the user on the top node, it selected someone on the second-highest level.
**Solution**
- Fix fallback user calculation
---
### Learning Management
#### Make default absent email more generic (#123136)
**Problem**
- Need to change template to be more generic, changes to subject not applied to email.
**Solution**
- Change absent email template to be more generic, also allow subject to be custom
#### Date Picker styling (#122907)
Styling fixes
#### \[Attendance Register\] Show Username (#123009)
**Problem**
- Please consider displaying the Username of the employees on the Attendance register
**Solution**
- The username has been included within the student column for the attendance register, attendance history and mark sheet
#### Prevent users from clicking the attendance Register link if there's no period (#122073)
**Problem**
- There is no indication that periods need to be set up
- Error message for period retrieval is the wrong message
**Solution**
- Add a warning message to indicate periods need to be configured
- Added new message to indicate retrieval error
---
### Tenant Management
#### Date Picker Defaults set to Future Date rather than currently configured date (#122611)
**Problem**
- When opening the "edit expiry date modal" the "Current expiry date" is a day after the actual date"
**Solution**
- Added a fix to convert the date to the correct date so that it is not a day ahead.
#### Wrong Notification Template used for 1 Day After Notification (#122732)
**Problem**
- Licence Process Notifications are sent on the wrong dates.
**Solution**
- Ensure licence process notifications are sent on the correct date.
---
### Data Warehouse
#### Performance Management: Exclude job titles from performance management (#122661)
**Problem**
- Performance Management Records are returning for Smollan, although the Job titles are excluded.
**Solution**
- Created custom container within V9 DWH that will remove Performance Management entries for Smollan if they are included in the Job Title exclusion list
#### Reportbuilder.Materializedusers not updated (#121762)
**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
#### Competencies not in DWH (#121863)
**Problem**
- Competency datasources needs to be added to the V9 DWH
**Solution**
- Added competency datasources within the V9 DWH
#### Claim Report for Sage Import (#122871)
**Problem**
Datasource jpHRProcessRequestData needs to be added that contains the json response entries
**Solution**
Added datasource jpHRProcessRequestData within V9 Datawarehouse
# Version 9.1.131 (18 November 2024)
### People Management
#### Users cannot send Kudos - People group problem (#122263)
**Problem**
- When a user does not have an active / default people group, the My Team / My Department / My Company user lists don't load.
- This is incorrect, as for those views, it does not require the user to have a people group, and it will return only relevant people based on the reporting line/org.
**Solution:**
- Removed the check to not call getUsers when a user does not have an active people group.
#### Active people indicator shows employees as Future Dated when the appointment date is in the past (#121617)
**Problem**
- When hovering over the Active People count for a newly created ruleset, the count shows that the 1 person appointed is future-dated.
**Solution**
- Ensure that the person is not seen as future-dated but active
#### Support user visible on newly created ruleset (#121931)
**Problem**
- The support user is shown on the People Management Dashboard
**Solution**
- Hide the user from the front-end
#### Fit initials into bubble (#122322)
**Problem**
- The initials do not fit in the bubbles
**Solution**
- Make the font smaller
---
### Main Dashboard
#### Update size of middle block (#122320)
**Problem**
- The My Colleagues widget is bigger than the rest
**Solution**
- Align the widget with the rest of the widgets
---
### Global Search
#### Search field loses focus (#121885)
**Problem**
- You type a few characters, and then the page reloads to show the relevant filtered data, but it loses focus, and you have to click on it again to refine your search.
**Solution**
- After the result set has been filtered, place the focus back in the search box so that you can continue to refine without having to click in the box again.
---
### Imports
#### Disabilities duplicated (#121903)
**Problem**
- When reimporting a user the disabilities are duplicated and all disabilities added on the front end are deleted
- The importation of long org codes fails at the DB level.
- When creating a new user, if there are empty disabilities in the master data, the import fails with the object reference issue.
**Solution**
- Change the domain update of disabilities when importing as disabilities in the DB are not loaded
- Correct the length of the org code in the pre-validation
- Add checks for null disabilities when creating a user
#### 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
---
### Organisational Structure
#### Line Manager details spill off the page (#121877)
**Problem**
- With the Zoom at 90%, (values higher than 80%) the **Line Manager details** for the positions spill over the right border of the page.
**Solution**
- Wrap the text with the zoom
---
### Learning Management
#### Unable to view all Learning Portal contents once logged in using copied link (#122264)
**Problem**
- Opening the pathway shared link for V10 prevents navigation to the normal learning portal
**Solution**
- The portal link is cached when opening the lms portal on V10. Adjusted the logic to only cache the link if the menu item is used and not when a shared link is used.
#### Not able to link learning manage role to user (#122890)
**Problem**
- The role for Learning Administrator is not available in V9
**Solution**
- Create a Learning Administrator role
---
### Data Warehouse
#### Table consolidation and Data Dictionary cleanup (#121664)
**Problem**
- There is data in the Data Dictionary tables across tenants
- There are unused columns in the Datawarehouse tables
- There are tables in the Datawarehouse that can be combined
- There are columns in the Data Dictionary where the content of the column is unclear
This requires a rename of the alias of such columns
- Column names do not appear in an expected / logical order
**Solution**
- Cleanup data so that there is only Data Dictionary data in tenant 1
- Work through all columns in the Datawarehouse and identify unused columns
- Identify tables in the Datawarehouse that can be combined
- Review all columns and suggest wording where it is not clear what is stored in the column
- Order columns in a logical order
- Ensure data sources appear in their correct categories
---
### Performance Management
#### Cannot submit agreement (#122734)
**Problem**
- Error when attempting to save a comment.
- The section item weight must be greater than 0.
- The section weight is, however, 5%, and the employee is still busy capturing the remainder of the information and balancing the scorecard.
**Solution**
- Skip validation for weight on values and behaviours when setting auto distribution is enabled
#### Move tooltips up for buttons on the agreement page (#118757)
**Problem**
- When you view an agreement, several buttons can be found at the bottom of the screen. Some of them display a tooltip on hover, but it sometimes gets in the way then the click is not registered.
**Solution**
- Move the tooltips to display above the buttons
#### As a Performance Administrator viewing the Review Setups, I want to have a setting to determine whether the timeline should show on Performance Dashboard for the end-user (#121303)
**Problem**
- People requested to not see the timeline on the Dashboard
**Solution**
- Add a setting to hide the timeline on the Dashboard
#### As a Performance Administrator viewing the Review Setups, I want to have a setting to determine whether the Agreements can be edited when using the API to create Agreements (#121302)
**Problem**
- No functionality existed to lock an agreement from editing
**Solution**
- Added new settings
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/GdQadNRoTb0UWiGI-image.png)
#### As a person doing the evaluation, I want a Save button to save my progress for later (#122391)
- Added a Save button before the Submit button on the evaluator page
- The Save has been added on the Back arrow as well
- This is to allow the person to add ratings and comments and then come back later
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/HbU7rBnBv9BYHrB6-image.png)
#### As an employee creating the evaluations, I want to see the people's name, surname and email (#122390)
**Business Rules**
- When the setting is enabled for the Manager and Employee not to see the results, and the employee and/or manager is creating the evaluations, the selected people's info should be shown
- Do not show the results on the create evaluation modal
- Summary modal stays as is
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/5dtCexsK9BCnQPc5-image.png)
**Employee and Manager creating Evaluations**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/HD5Dgd3q3t73Cu6K-image.png)
**Summary**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/pKN1L7g1SRLOKd5L-image.png)
- When the setting is selected that the employee may not see the results, but the manager can, then the same as for the employee above should be implemented
- For the Manager, it stays as is
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/biHlEfYq9wdAKbbs-image.png)
**Manager**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/Q3Kd5OYXHrbRecp4-image.png)
**Employee**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/1e55JZnehcI2nKDy-image.png)
**Summary - Employee**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/yKXy0ww5HAz5ewRs-image.png)
**Summary - Manager**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/j7mD73J6FMPsERo9-image.png)
#### Action Label Requires Correction (#122015)
**Problem**
- When a user receives an evaluation request link via email, when the link is opened the Action Heading is displayed as ACTION.ACTION - this should be ACTION
**Solution**
- Added the translation for Action
---
### System Menu
#### The translate button on the My Heading field does not navigate the user to the Menu Heading field translation field (#121904)
**Problem**
- When clicking on the **Translate** button on the Menu Heading field, I am navigated to the first item on the translation list.
**Solution**
- Ensure that the user is taken directly to the **Menu Heading** field on the list of translations.
---
### Report Builder
### Changes to date field (#121255)
**Problem**
- When right-clicking on a date field in Report Builder, the following options show and there is no option for time:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/6SgAw5tMFfo2yBVx-image.png)
**Solution**
- Change the current one above to Date and time (Default)
- This time shows as: 2024-10-07T07:30:53.8235783
- Show as our standard date/time function, but aligned to the selected culture and timezone. In the above example it should be: 2024-10-07 9:30:58
- Add another option for Date only
- This option must show the date without the time component
---
### API
#### As a System Owner, I want to create an API call to import Performance Agreements from a third-party system (#121301)
Business Rules
- An API call should be created to import the agreements from a third-party system
- The agreements will be imported per employee for a Review Setup linked to the Review Year for a Review Item as an Overall Approved Agreement
- The fields needed for the API are:
- Ruleset Code
- Username\*
- Review Year\*
- Review Setup\*
- Review Item\*
- Section\*
- Section Weight
- Perspective
- Perspective Weight
- Is Perspective Library Item
- KPA
- KPA Weight
- Is KPA Library Item
- KPI
- KPI Weight
- KPI Measures
- KPI Ratings
- KPI Activities
- Is KPI Library Item
- Person Rating\*
- Person Comment
- Manager Rating\*
- Manager Comment
- Final Rating
- Approved (Use Approve Contract .approvecontractperiod
- If there is no rating, the record should be rejected
- The Manager Rating is the Final Rating
- When only the Manager Rating column has been populated, make the Final Rating the same as the Manager Rating
- When a score of 0 is sent through the API call for a specific review item, the review item should be excluded
---
### New Development
#### HR Processes (#116458)
**User Story 1 - As a People Management Administrator accessing HR Processes from the Inbox, I want to go directly to the Product Setup**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/yfcPXLsCXlczY8yc-image.png)
**User Story 2 - As a person with access to the Organisational Structure, I want to have a new section for the Workflow Fallback Configuration when adding or editing an org unit**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/jHcu1SPjP4Clb5H8-image.png)
**User Story 3 - As a People Management Administrator accessing HR Processes Product Setup, I want to have a section for the Workflow Fallback when adding or editing a Process Flow**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/aBe6hnEWJWqX9hbD-image.png)
**User Story 4 - As a People Management Administrator accessing HR Processes Product Setup, I want to have new fields available when adding the Approval Levels for a Process Flow**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/Ej5SfJdow7IfdNs7-image.png)
**User Story 5 – As an Approver, I want to be able to upload files**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/WpB7t294t8IeEYXy-image.png)
**User Story 6 – As an Approver, I want to be able to Cancel a Request**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/bGluAH4XiNV0wzuK-image.png)
**User Story 7 – As an Approver, I want to be able to request more information from the previous approvers or submitted person**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/bvfyfwcHFcX3nMyp-image.png)
**User Story 8 – As a Fallback Approver, I want to be able to select another approver**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/ZgfFSYddnUM3kFAP-image.png)
**User Story 9 – As a Ruleset Administrator, I want to have a Notification Template for the request for more information option**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/6Iu8eoAsSJQXB69F-image.png)
**User Story 10 – As a Translation Administrator, I want to have the new fields available for translation**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/v02H0rCFjwhduykx-image.png)
**User Story 11 – As a Report Builder, I want all the new fields available in the DWH**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/pHJhkDB6EU4LoxT6-image.png)
**User Story 12 – As an approver, I want my approvals not to be updated at the same time if there is an approval in between**
- The approval will have to be done again if there is another approver after the first approval
**User Story 13 – As a System Owner, I want each request to have a reference number which displays on the Request and Notifications**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/93CJmuvHOZ7w9HHA-image.png)
**User Story 14 – As an Approver, I want to see my Historical Approvals**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-11/8opiGKWOBODvCm2F-image.png)
---
# Version 9.1.130 (5 November 2024)
### Performance Management
#### The performance manager’s comments have disappeared (#122076)
**Problem**
- Manager comments were disappearing.
- Audit data indicated that on the Final Rating of the item, the manager's comment was set to null which should not happen, it must take the comment provided on the front end.
- Eventually, it was determined issue was with Copy Ratings To Final functionality which was resetting the Manager and Private comments to *null*
**Solution**
- When Copy Ratings To Final then take the L3 item's comments as is currently.
- Also, fixed the problem preventing the editing of VB items during the Objectives phase.
#### Move Employees (#121775)
**Problem**
- Searching on this tab was the front end only.
- Duplicates were returned
**Solution**
- Do the searching back-end on all available data.
- Ensure that the people are grouped, so that duplicates are not returned.
#### Unable to add final ratings (#122313)
**Problem**
- There are scenarios that occur, however unlikely, where one of the parties approves ratings without the objectives begin approved.
- This should not be possible, but could perhaps be caused by leaving the contract page open for an extended time, and then the other party unapproves the objectives.
**Solution**
- Added additional validation to the rating approval to check that both User (for dual approval) and Manager objectives are submitted.
- Also on objectives unapproval, check if ratings are approved and unapprove as well.
- Unit tests updated.
---
### Ruleset Management
#### Refresh to continue error when accessing Learning Portal on copied ruleset (#122331)
**Problem**
- When a ruleset is copied the corresponding schema is not created and the V8 pages break when accessed
**Solution**
- Add the request step to the ruleset copy process
---
### Imports
#### New jobs not importing on V8 (#122003)
**Problem**
- The jobs are not importing to V8 using the bulk import
**Solution**
- Ensure that the Position's Org Path sync
---
### Data Warehouse
#### New scorecard status report issues (#122383)
**Problem**
- Duplicates occurred within jpAppointments due to daily appointments import and the section within the Datawarehouse was removed to remove and only keep the latest record.
**Solution**
- Updated the script within jpAppointments container for V9 Datawarehouse that will delete and only keep the latest appointment entry per Job Position and User
#### Objective setting date visible but status still false (#122380)
**Problem**
- There issue on the system where a date field will be populated, although the related boolean value is still false
**Solution**
- Added section within pdmContractPeriods container for V9 Datawarehouse that will clear Date fields if the related boolean is still set to false to resolve reporting issues
#### Employees not showing on Report (#122004)
**Problem**
- In the Datawarehouse for jpAppointments, the incorrect appointment entry was removed due to Datawarehouse logic that only keeps the max appointment entry per user, JobPosition
**Solution**
- Adjusted the SQL script to exclude Famous Brands that will remove historic records and only keep the max appointment entry per user, JobPosition
---
# Version 9.1.129 (30 October 2024)
### Performance Management
#### Approved ratings that are empty (#122271)
**Problem**
- There are contracts that have FinalScoreApproved = true, but none of the items have a Final Rating.
- This should be impossible, as when submitting ratings for approval, there is front-end validation to ensure all items have ratings.
- Also, I cannot find another means to replicate this issue.
**Solution**
- To try to mitigate the problem, additional checks were added on the domain-side validation for the rating approval to ensure that when final ratings are submitted, all items must have a rating.
#### Incorrect ordering of the ratings (#122246)
**Problem**
- Ratings are shown as they are added
**Solution**
- Change the ordering to look at the Setup's order
#### Move Employee Scorecard from 1 setup to another (#121906)
**Problem**
- The bulk move message is lost when a failure occurs or is only available in the services log
- The add of the user on the people group fails due to being unauthenticated in the backend process.
**Solution**
- Return message form move command and concatenate
- Only include users when there are any users to include
- Allow anonymous linking of people group items when the ruleset is provided.
#### Display of Original Final score decimals (#122029)
**Problem**
- The original Score is not shown with 2 decimals
**Solution**
- Change the display of the original score shown in the tooltip after importing a calibrated score, to show 2 decimals
#### Misalignment with the table headers (#122076)
**Problem**
- When the final rating is excluded, and the employee views that finalized contract there is a misalignment of the table cell and the headers.
**Solution**
- Fix the alignment caused by the final rating being excluded.
#### Final Ratings Calculations (#122077)
**Problem**
- The scores that are displayed on the user banner when viewing a contract has an issue on the calculation when you rate an item, or change a rating, and when the sections have different max ratings.
- The rated score is calculated per section and summed instead of using the percentage scores and then multiplying by the max year score.
**Solution**
- Fix calculation to correctly base of Performance Max Year and not rated score per section totalled.
- Also, the same fix on UserRatingScores saves (Saved for informational purposes.)
---
### Report Builder
#### Unable to edit publish status on Report (#121524)
**Problem**
- When trying to publish a report it does not save the published value and also does not indicate the saved snack message. Modal also did not close.
**Solution**
- Model validation failed because of recent People Group additions, excluding PeopleGroupList from model state validation on Update.
- Also picked up checkboxes from report form was getting serialized in duplicate, once for each state the checkbox had (once for false and then if it toggled another state for true).
- Added code to filter out the duplicates.
#### No data is available on the performance status report (#122008)
**Problem**
- Timeout in PG refresh for 83K users
- Incorrect syntax when username or position had accents
**Solution**
- Extend the timeout to 10min when calculating the PG
- Add exclusion of or path when listing users
- Make the max received bytes larger for the channel as 83k exceeds the 4MB default
- Escape accents in username, surname and position title
- Change query to delete the users that have been removed from the PG and add the users that have been added to the PG
---
### SigniChat
#### Styling on Chat Search box to be made standard (#120691)
**Problem**
- The S**earch** box styling on the chat header is not correct.
**Solution**
- Implement the standard search box as in the Main Banner
# Version 9.1.128 (25 October 2024)
### Performance Management
#### Move Employee Scorecard from 1 setup to another (#121906)
**Problem**
- When a custom people group is linked to an org node that includes a child node it is seen as an org people group rather than a custom. A source review setup that is linked to this custom people group cannot be moved because it is not seen as a custom people group
**Solution**
- Remove the filter for custom people groups
---
### Report Builder
#### People Group not applied when exporting report (#121917)
**Problem**
- Users are included in the people group of org units where they have historical appointments. They are then visible on the PG of the previous appointment org nodes as well as the current active appointment org node.
**Solution**
- Users should only be included in the people group of the org unit on which they are currently actively appointed.
- Filter the org unit People Group Users select on appointment start and end date
---
### Data Warehouse
#### People Profile Report (#121987)
**Problem**
- Fields missing when creating a report
**Solution**
Added the below fields to display under the Appointments
- Occupational Category
- Occupational Level
- OFO Code
---
# Version 9.1.127 (24 October 2024)
### Performance Management
#### Cannot submit - Phase not active (#121535)
**Problem**
- The phase active check was not taking the end date as inclusive, it matches against the date only.
- This means that if the phase ends on 14 October, it does not include the current day. All the period/phase dates are inclusive.
**Solution**
- Change the calculation for phase active to check the end date as inclusive.
#### Print/View button not showing in the contract (#121816)
**Problem**
- When in the rating phase and the manager and user scores are approved or the final score is approved a user cannot see the print button under more options.
**Solution**
- In this case, rather return the print button than nothing to allow the user to print the agreement.
#### People's names are showing on the Evaluation Summary in the Objective Setting Phase (#120919)
**Problem**
- When the 'Show the results anonymously' setting is active, the usernames still show while in the Objective Setting Phase.
**Solution**
- Implemented a fix to ensure that the user names are not showing while the setting is active and in that phase.
#### Ratings Deadline for Mid-Year Review Notification dates incorrect (#121814)
**Problem**
- The data placeholders for the PM emails are not formatted according to the default language selected for the ruleset
**Solution**
- The culture formatting that uses the default languages for the following PM emails has been added:
- Objectve Setting Deadline
- Rating Deadline
- Check-in Deadline
- Check-in Started
- Evaluation Sent
#### Add a hand icon on the items that can be selected when copying a Template (#120056)
**Problem**
- The cursor does not change to show an item can be selected
**Solution**
- Enable the selection hand to show an item that can be selected
#### Notification Status Displaying Incorrectly (#120055)
**Problem**
- An evaluation was submitted and the evaluator submitted a rating and comment - however, it is displaying as though it has not yet been sent (Notification & Status are incorrect) this is problematic as it would allow the deletion of an already submitted evaluation.
**Solution**
- Ensure the statuses are pulled through on all pages
#### Backspace does not clear V&B weight (#113302)
**Problem**
- When the setting is to distribute the weights of **Values & Behaviour** items, you can't clear the text field with the backspace key. It stops in front of the last number.
**Solution**
- Enable the clear of the weight field when using the backspace key
#### Username overlaps when it is very long (#113525)
**Problem**
- When you have a long username, it overlaps with the instructions
**Solution**
- Add ellipses when a username has more than a certain number of characters and then have it displayed in a tooltip on hover
---
### People Management
#### Banner Image not updated on Manage Profile Page (#121918)
**Problem**
- The ruleset's default banner was not displayed on the card view when the user had no selected banner
**Solution**
- Include the ruleset ID, when generating the image paths to ensure the current schemas default is used if it exists rather than R1s default
#### Cannot delete the alternative email (#121868)
**Problem**
- The alternate email cannot be cleared
**Solution**
- Remove the default domain functionality when updating contact details to empty
#### Password reset confirmation (#110536)
**Problem**
- The modal shows incorrect wording
**Solution**
- Instead of showing "The Person" the modal now shows the person's email address
---
### Imports
#### Improve reporting line sync - reporting lines created with reporting line import from V9 to V8 (#119203)
**Problem**
- Currently reporting lines are synced to V8 from V9, row for row
**Solution**
- Do reporting line sync in bulk or batches, at least
- Only do incremental updates where there are changes, not all every time
---
### Report Builder
#### People Group not applied when exporting report (#121917)
**Problem**
- Exporting a report on ReportBuilder does not filter based on the selected People Group.
**Solution**
- Send through the selected People Group ID to the Export Report handler.
####
#### Terminated people not showing up on Report (#121805)
**Problem**
- The people group on the report builder only contains data for active users; thus, reports cannot be drawn for terminated or future-date users.
**Solution**
- Remove the caching select that only contains active users
- Include all users for the target audience when selecting data from the job profiler
- Ensure the query does not break when the position is not linked to an active org node
#### Changes to Styling on Full Report page (#121257)
**Problem**
- When viewing the **full report**, and when there are many columns, the paging buttons are off the screen and cannot be seen.
**Solution**
- Move the paging buttons left
#### Changes to styling on the Preview pane (#121256)
**Problem**
- No message is displayed to inform the person that only a certain amount of people is displayed
**Solution**
- Add a message:
- Only the **top 10 records** are shown. Click on the **View Full Report** button.
---
### Data Warehouse
#### Create a workflow to deploy DWH packages to UAT and Live (#119232)
**Problem**
- Datawarehouse packages are deployed by hand at present and are a manual process
**Solution**
- Create a Github Actions workflow to deploy DWH packages to UAT and Live
- There are possibly 4 steps:
- - Create a Powershell script to build and package the V9 DWH project for connection managers that connect to master (juliet\\sql2019)
- Extend the Powershell script to deploy the packages to master
- Extend the Powershell script to update the Data Dictionary
- Finally, create a Github Actions workflow that will run this Powershell script on WindsorHytbrid with input parameters - the input parameters will be discussed at this point
#### Add Unapproved and Approved Final Score (#121702)
**Problem**
- The unapproved shows as approved
**Solution**
- Add the Unapproved score to the DWH
---
### Tenant Management
#### Notification sent out based on historic dates (#120742)
**Problem**
- Notifications are sent out for historical licences
**Solution**
- Only send notifications for current active licences
---
### Main Dashboard
#### Unable to cycle banner images after New ones are selected (#120501)
**Problem**
- When a different set of images is selected or the selection is changed in any way and the user saves these changes, after these changes have been effected the User is unable to use the navigation arrows to cycle through the image selections
**Solution**
- Refresh the images to allow the images to cycle through
#### Months of the year not translated on the Dashboard (#120788)
**Problem**
- The months on the calendar strip at the top of the Dashboard are not translated.
**Solution**
- Add translation for the months on the timeline
---
### SigniChat
#### The terminated employee shows as a member of the Signichat group (#121260)
**Problem**
- The members listed include terminated employees
**Solution**
- Terminated people are removed from the People Groups. The same logic has been implemented on the SigniChat Groups
---
### Job Profiler
#### The system does not prevent a user from Unpublishing a Job Profiler with Active Positions (#120455)
**Problem**
- The system does not prevent a user from Unpublishing a Job Profiler with Active Positions.
**Solution**
- Prevent an Admin from "Unpublishing" a Job Profile with Active Positions.
- Add a tooltip:
- The Job Profile cannot be unpublished because there are Active Positions linked.
---
### Organisational Structure
#### Employee import error (#121076)
**Problem**
- The Employee Import allows an org code that is longer than 100 characters and then trims the code during validation which causes unexpected results.
**Solution**
- First, validate that the org length is not longer than 100 characters before validating the org structure.
---
# Version 9.1.126 (21 October 2024)
### Performance Management
#### Unlocking of a Scorecard (#121195)
**Problem**
- A 0.00 score rating is different than an excluded rating (it means you did REALLY badly). 0.00 ratings are allowed but on the ratings, submission check the !(level3\[name\] as Rating)?.score incorrectly flags a 0 score as true.
- Additionally picked up on the main dashboard that the contract score calculation had a hardcoded max rating of 5, this is incorrect and should use the performance year max score.
**Solution**
- Change the validation check to specifically check whether rating score is null and not excluded (implies no rating yet).
Correctly calculate dashboard PM score using PM Year max rating.
#### Phase Dates (#121535)
**Problem**
- The phase active check did not take the end date as inclusive; it matches against the date only. This means that if the phase ends on 14 October, it does not include the current day. All the period/phase dates are inclusive.
**Solution**
- Change the calculation for phase active to check the end date as inclusive.
---
### Job Profiler
#### OFO Codes cannot be selected (#121425)
**Problem**
- The on click events were only set once when the general tab was loaded, causing some rows that are not on the first page to not have an onclick event set.
**Solution**
- Updated `job-profile.js` to set click events on dynamically created rows within the OFO codes table using the DataTable plugin.
---
### Identity
#### MS login improvement (#121045)
**Problem**
- Users who log in with MS are often (when logged in with one account) not given the option to "See" which account they logged into and then the message "User is not active" is displayed.
**Solution**
- Change the "User is not active" message to "User \[username\] is not active.
- In the case of normal logins, this should display the username e.g. User \[username\] is not active
- In the case of any third-party login, it should display
- **User \[person@thirdparty.co.za\] is not active** so the username at least displays for fault-finding purposes
- In addition, when logging in with MS display the following message in addition to the above:
- **If you want to log in with a different Microsoft account, please sign out here and log in with the correct account. After signing out, return to this page to log in again.**
- **sign out here** opens [https://www.office.com/](https://www.office.com/)
---
### SigniChat
#### Timestamps on Sent view is 2 hours behind (#121259)
**Problem**
- Timestamp is 2 hours behind
**Solution**
- Implement the UTC time rule
---
### System Access
#### Empty pages on some V8 menu items (#121452)
**Problem**
- The controller mapping for the default theme URL caused the Additional services controller to be intercepted on load. This resulted in the page never loading.
**Solution**
- Added custom path for additional service pages
- Included user-id in the query string object
---
### Imports
#### Copy wwwroot/content in the build phase (#120305)
**Problem**
- Content/import samples should be synced to the image while building
- Also, there are image folders that should copy
**Solution**
- Add a step to Dockerfile to copy the content folder from the build to the final image
---
### Data Warehouse
#### PAS report add Contracting Completed Status (#121603)
**Problem**
- The client wants an extra column added showing a ‘**Contracting Completed**’ status when the following 2 columns are both TRUE:
- Employee Objective Setting Started
- Manager Objective Setting Started
**Solution**
- In Datasource "Contract Periods", I have added the requested field "Contracting Completed" within the Report Builder.
#### Create a workflow to deploy DWH packages to UAT and Live (#119232)
**Problem**
- Data Warehouse packages are deployed by hand at present and are a manual process
**Solution**
- Create a Github Actions workflow to deploy DWH packages to UAT and Live
#### Actual Values available in the DWH (#119385)
**Problem**
- With the Interpolation development, the actual score should also be added to see the interpolated score
**Solution**
- Added new fields to the DataSource "ContractPeriodSectionItems"
- Logic has been added for when the Interpolated is equal to "true", it will then update the User-, Manager - and Final Rating scores where the scores should be the same
#### V9 PM Reports (#119854)
- Within the Data Source "Contract Periods", the requested PM stats fields are available now on the Report Builder.
- For Data Source "Appointments", the requested new field "Grade Names" has also been added to the Report Builder.
# Version 9.1.125 (21 October 2024)
### Ruleset Management
#### Better ruleset URL handling (#120938)
**Problem**
- A vague error message is displayed when the ruleset cannot be determined from the URL.
**Solution**
- Display a more appropriate message when the URL is incorrect.
#### Improve reporting line sync - reporting lines created with reporting line import from V9 to V8 (#119203)
**Problem**
- Currently reporting lines are synced to V8 from V9, row for row
**Solution**
- Do reporting line sync in bulk or batches, at least
- Only do incremental updates where there are changes, not all every time
---
### Imports
#### New employee created when you update the username while using the externalId or Employee Code setting (#121154)
**Problem**
- The username import settings could not be saved on the integrations tab
- The setting did not trim the values correctly when comparing the string fields
- The external ID is not updated to the new value the user is imported with
- The message displayed after the import was incorrect
- The order of the import tab was not correct
**Solution**
- Correct the js that selected the checked value of the settings
- Added trims when comparing employee and/or ID number fields
- Used the correct external ID when updating the user
- Change the message displayed from
---
### Data Warehouse
#### Add a field for the agreement check-in ratio (#120046)
**Contract Periods:**
- Agreement Check-In ratio
**How will this work?**
**Number of KPIs** | **Number of Check-ins** | **Number of KPIs checked in** | **Agreement check-in ratio** |
10 | 23 | 8 | 80.0% |
- You have 10 KPI's
- Total number of check-in across the KPI's is 23
- Check-ins per KPI's is 8
**Number of KPIs Checked-in / Number of KPIs \*100 = Agreement check-in ratio**
#### Add a step to DWH SSIS Packages to clear the People Group Users table (#115619)
- Add a step on the DWH SSIS packages to clear out the DWH people group users table nightly.
---
### Report Builder
#### Have the People Group by default to use when running the report (#115616)
- Always include the People Group filter when adding a report with people data
- This is added as a dropdown in the Report Filter Options Accordion
- This option is always the first one
- The Active People Group will be used as default but can be changed
When viewing the report will be an option to change the PG
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-10/tmWH5xPKl9rSzz2p-image.png)
#### Modify Report Builder Stored Procedure (#115618)
- Modify Report Builder Stored Procedure to include join to DWH people group users table when ‘Users’ data source is included on the report
- Alternatively, we might be able to set up the DWH table as a JOIN to Users, this table should just never be selectable as a data source on the Data Dictionary
# Version 9.1.124 (21 October 2024)
### Imports
#### Data file upload (#121204)
**Problem**
- When the ruleset does not use payroll connectors the import breaks when updating user data
- When the username has been accented the import of appointments fails
- When the job profiles are imported without a code, only the first job profile is imported into the sheets, and the import fails at the positions step.
When the org codes are not provided the import uses the ruleset name as the root node rather than the org level 1 when constructing the org path and the position step fails because the org could not be found.
- When you save on the integration tab and the content server validation fails the other settings on the page are not saved.
When the content server has a valid password and you save the validation fails because the password is not sent to the server.
**Solution**
- Initialised payroll connector as null rather than new
- Sanitise the username in dapper queries when accents are present
- Add fallback to the title when the job code is empty when determining the unique jobs to create
- Use the org level 1 when creating the path
---
### Ruleset Management
#### User Name Changes (#119426)
**Problem**
- When you save on the integration tab and the content server validation fails the other settings on the page are not saved
- When the content server has a valid password and you save the validation fails because the password is not sent to the server
**Solution**
- Change the order of the actions in the update so the content server is updated at the end
- Change the selector that retrieves the value of the password field
#### Handle invalid ruleset error better (#120938)
**Problem**
- A vague error message is displayed when the ruleset cannot be determined from the URL
**Solution**
- Display a more appropriate message when the URL is incorrect
---
### HR Processes
#### Claims Report (#120508)
**Problem**
- On the Historical Requests tab, the display limit is currently 10
- When clicking on Load More it does not appear to work and still only displays 10, when there are more than 10 items in the database
- The problem is with the container ID used for each tab ('Awaiting', 'Open', 'Historic')
- All 2 use the same partial to populate information
- This partial had a wrapper div with an id="process-requests-container."
- When clicking on the next displayed tab, it loads the partial into the next v-tab—"container," with the result being that there is more than 1 element with id="process-requests-container."
- When the Load More then tries to add the next batch of requests, it looks for #process-requests-container and adds the requests to the first element it finds which adds the historical records to the 'Awaiting' tab
**Solution**
- Changed the partial wrapper div id to be determined based on the selected tab, changed the page hidden fields to be class references to not have duplicate id elements present
- Changed the Load More functionality to look for the specific tab container ID and add the items to that to ensure the correct elements are used
---
### Performance Management
#### Add domain validation (#112141)
**Problem**
- There is a rare occurrence where an L3 weight ends up being 0% which causes unwanted problems on the contract
- To address that it does not need to add domain-level validation to ensure that weights are always greater than 0% on a domain-level
- However, with this change, an additional change needed to be made on the Templates with regard to the Hide Scores setting, which only flagged the first item as 100% and the rest as 0% since it did not matter at the time
- When the contract is created from the template and then submitted the weights are distributed
**Solution**
- Add domain validation to ensure captured weights are greater than 0
- Distribute weights on the template when hide scores are enabled
#### Cannot Print Agreements (#121253)
**Problem**
- When impersonating and clicking on View / Print an error is shown indicating the user does not have access to the contract, the impersonation is not getting sent through to the view/print pages.
**Solution**
- Include the ImpersonateUserId on all the view / print links if available to allow the impersonator to view / print the contract.
- Fix the issue with auto weight distribution when hiding scores and allow perspectives off
- Fix weights displaying on the template when hiding scores on
- Fix add key competencies breaking when hiding scores on
#### Ratings (#120918)
**Problem**
- For the next action and stage of the contract, the next action seems to display the correct translation.
**Solution**
- Change the wording generically to:
- Complete and submit the Manager Ratings
---
### Data Warehouse
#### Claims Report (#120508)
- Corrected the update of ApprovalStatus
# Version 9.1.123 (7 October 2024)
### People Management
#### Unable to access People Management module (#121118)
**Problem**
- When a user opens the people dashboards LM is terminated or the LM's position is deleted or inactive the dashboard breaks
**Solution**
- Change the active check to get the user to use the latest appointment of the user rather than the active appointment.
- Remove the check on the position's deleted or active fields
- Added a catch when loading the manager's data to ensure the people dashboard does not break because the LM's details could not be loaded
#### The content of the box remains unchanged even though people are filtered on selected subgroups (#121164)
**Problem**
- On People view when changing the active people group from the dropdown the users are filtered correctly, but the dropdown selected value does not change along with it, it remains on the 1ste item.
**Solution**
- On item change also set the selected option state variable so it sets the selected value on the dropdown correct
---
### Theme Management
#### Menu Portal Language Translation not working (#121198)
**Problem**
- When the default language on one ruleset is en-US and you open a new ruleset where the default is en-UK the cookie storing the culture is not cleared.
- When a single language is active the cookie is then used to set the preferred language even though it is not active causing incorrect translations to display
**Solution**
- Clear the cookie when switching theme URLs
- When storing the preferred language if it is not part of the enabled languages of the ruleset do not store data in the language rather clear the culture to use the ruleset default going forward
# Version 9.1.122 (7 October 2024)
### Exports
#### Performance Agreement Status Report - Editing after download (#109250)
**Problem**
- When you export a list or report to Excel you cannot edit it before you unblock the content.
**Solution**
- Removed the sheet protection that blocked editing on the sheet, object, and scenario, which is unnecessary.
---
### Performance Management
#### Cannot copy the Manager ratings to the final ratings (#121067)
**Problem**
- Manager ratings could not be copied to the final.
**Solution**
- Ensure manager ratings can be copied to the final.
#### When opening the ratings, the loading of ratings takes a long time and shows an incorrect message (#120771)
**Problem**
- On slow connections when opening the ratings modal for an item, the "no ratings configured" alert box is shown until after the ratings have loaded.
**Solution**
- Added a flag to indicate whether the ratings have loaded yet and instead show the Loading component. Once loaded if still no ratings are returned then show alert.
#### Sections are shown in red in the scrollspy list (#118744)
**Problem**
- During check-ins, the side scrollspy menu is showing in red/invalid. Even though the objectives phase has passed and all items weights should already be correct.
**Solution**
- The scrollspy check to determine whether any section or child items are invalid was recently corrected/improved, on the check-ins, the item weights were not returned which resulted in the invalid being displayed.
- Included the item weights on the check-in fetch to allow the validation to work correctly.
### Able to save blank perspectives (#118739)
**Problem**
- When adding a perspective and only providing the weight the user could add an empty perspective when clicking on Save Add New. Save correctly validates that weight must be > 0 and perspective item must be selected.
**Solution**
- Add perspective-selected validation to save and add a new function.
### Approve Employee Self-Rating (#120785)
**Problem**
- The start date of the period is not included when ignored end dates are true
**Solution**
- Ensure the start date of the period is included when calculating if the period is active
#### Hide the second column of the Interpolation Ratings section (#121065)
**Problem**
- The interpolation descriptions on the print view need to be hidden
**Solution**
- Hide interpolation description on print view as it clutters the screen
#### Reset the modal after entering an actual value (#121040)
**Problem**
- The rating modal was not reset after entering the actual value.
**Solution**
- Ensure the modal is reset after entering the value and opening the modal again.
---
### Mobile APP
#### PM Menu item does not appear (121074)
**Problem**
- The account API call to get the active products on a ruleset has roll-specific authorization. This presents an issue on the Mobile App which uses this call to determine which V9 products are active, resulting in the call failing auth and it returning no products being active on V9.
- None of the V9 product icons then show for a normal user only for users that are ruleset admins.
**Solution**
- Removed the roll-specific requirement from the call.
- Checked on MVC where it does utilize this call a roll-specific check is already in place so should not affect Web functionality too much.
---
### Datawarehouse
#### Create workflow to deploy DWH packages to UAT and Live (#119232)
**Problem**
- Datawarehouse packages are deployed by hand at present and are a manual process
**Solution**
- Create a Github Actions workflow to deploy DWH packages to UAT and Live
- There are possibly 4 steps:
- - Create a Powershell script to build and package the V9 DWH project for connection managers that connect to master (juliet\\sql2019)
- Extend the Powershell script to deploy the packages to master
- Extend the Powershell script to update the Data Dictionary
- Finally, create a Github Actions workflow that will run this Powershell script on WindsorHytbrid with input parameters - the input parameters will be discussed at this point
---
### Main Dashboard
#### Investigate unnecessary DB calls in v9 modules (#110710)
**Problem**
- Performance issue on the Main Dashboard
**Solution**
- Some unnecessary calls were being made in a parent and child component, where the value could just be passed as a param to the child component (modal). Also, combined two http get requests into a single request. Each request returned a single property from the same controller, so it made sense to rather combine it.
# Version 9.1.121 (7 October 2024)
### People Management
#### Username to be removed on card view (#120911)
**Problem**
- Clients do not want the username to display on the Card View
**Solution**
- Hide the username on the card view of the People Management dashboard
#### Pop-up stays on screen after selecting a People Groups (#120423)
**Problem**
- The tooltip stays on the screen after hovering
**Solution**
- Make sure the tooltip does not stay on the page after navigating away
---
### Identity and Authorisations
#### Clicking Cancel on the Disclaimer pane shows a white screen indefinitely (#120664)
**Problem**
- When a user clicks on the Cancel button on the Disclaimer page, the user is navigated to a white browser page.
**Solution**
- Ensure the redirect when clicking on the Cancel button takes the user to the login page
---
### Ruleset Setup
#### Products setup on Report Builder Product tile unresponsive (#102675)
**Problem**
- The Product Setup menu option is displayed although there is no setup
**Solution**
- Hide the Product Setup menu option
#### Styling on Disclaimer to be tweaked (#120659)
**Problem**
- The Disclaimer message needs styling changes
**Solution**
- Removed the superfluous vertical scroll bar on the right-hand side when an image has been added
- Move the image and Disclaimer text to the right, instead of right up against the pane's border.
- Show the link
#### Default Badges did not copy when the new Tenant and Ruleset was created (#114454)
**Problem**
- When creating a new tenant the default badges are not created. Also found an issue when creating only a new ruleset.
**Solution**
- Implemented changes to create default badges when a new tenant is created and when a new ruleset is created.
#### System Menu: No indication that changes will be lost (#106936)
**Problem**
- When changing anything in a menu item and then navigating away without clicking on 'Save' the changes are lost.
**Solution**
- Added a warning message that unsaved changes will be lost
---
### Imports
#### Error when people try to log in (#120909)
**Problem**
- When an existing user is imported a duplicate claim is made for the given name.
- The family\_name was updated to given\_name in AspNetUserClaims.
- When the user logs in the page breaks
**Solution**
- Ensure the surname is added as family\_name and not the given name
#### User name changes (#119426)
**Problem**
- When a username changes when importing a new person if the external ID is not used the person will be created as a new user on the ruleset
**Solution**
- Add settings to use additional fields to update the username
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/mjZP5SNmDB9c8CPO-image.png)
- Check on the settings in order starting with employee code, ID number and external ID to try and find the user to change the username for
- Should the unique field be in duplicate either in the import file or on the ruleset throw an appropriate error
- Add checks to ensure if the user was seen to have a username change but failed that it is not created as a new user.
- When exporting data via the ListUserExport API the start date in the group and the start date in the company are populated
- When a page is left open for an extended period the user will be redirected to the error page after the next click should the error not be handled
---
### Performance Management
#### When rating KPI the area is not clickable anymore (#116413)
**Problem**
- To rate an item, the user must click the Rate / Change buttons.
- This is slightly inconvenient and the request was made to allow clicking anywhere on the row to access the item to rate (where it does not overlap with other functionality Eg the action buttons).
**Solution**
- Make the entire row clickable to allow rating regardless of whether the final score is approved, and update the person rating active configuration accordingly.
---
### Technical
#### Domain Errors (#113747)
**Problem**
- The JSON errors were displayed as the page content
**Solution**
- Refactor the exception handler
- Add redirects in the auth controller for expiry
- Refactor error controller for Ajax and MVC loads, cater for session expiry
- Add retry on the general error page to reload
- Add session expired page with logout button for MVC, allow Ajax to directly logout when the session is expired.
- Reduce the batch size of exception consumer
---
### Translations
#### Static translations missing (#118237)
**Problem**
- The static translations for all the core supported languages are not added, which are:
- - de, af-Za, en-UK, en-US, AM, pt-MZ, fr-CF, ar-SA
- Static translations are not visible on the language module and cannot be changed from the front end and needs to be added on the Identity service.
- So far it looks like only German has been completely translated.
**Solution**
- Added static translations for all the core supported languages
---
### HR Processes
#### Non-descriptive error displayed when adding process with name & code which already exists (#119243)
**Problem**
- The generic error message displays
**Solution**
- Added a descriptive message:
- This process code has already been used
---
### Job Profiler
#### The system does not prevent a user from Unpublishing a Job Profiler with Active Positions (#120455)
**Problem**
- The system does not prevent a user from Unpublishing a Job Profiler with Active Positions.
**Solution**
- Prevent an Admin from "Unpublishing" a Job Profile that has Active Positions.
---
### Tenant Management
#### Error when creating tenant without specifying a reseller (#119573)
**Problem**
- When not specifying a Reseller and the Create button is clicked, a non-descriptive error is given.
- This does not happen when a reseller has been selected.
**Solution**
- Add a message:
- Additional service creation could not be created
---
### New Functionality
#### Performance Management: Interpolation (#115065)
#####
##### Introduction
Interpolation is used to map Actual Values to the Rating Scales. During the Rating Phase, Actual Values are entered and then mapped to give a rating.
This functionality is available when creating Templates, when an agreement is Copied, as well as when a Blank Agreement is created.
##### Mapping Setup - Objective Setting Phase
When adding/editing a KPI, a new toggle is available
- Automatic score calculation (Interpolation)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/PJGBH2hgq8MTzZLv-image.png)
When this toggle is enabled, the mappings open where the Actual Values can be configured
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/NYpFWMojiLPiazpk-image.png)
When the Actual Values have been inserted:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/NBVI5EPjdEYnSePr-image.png)
##### Ratings Phase
When rating a KPI, the Actual Values are inserted instead of selecting a rating.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/oVfn53OKkiarA78A-image.png)
A rating can also be excluded:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/iHFazqLhpxGMvWvr-image.png)
When the Actual Value has been inserted, the score is shown:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/QC9MSTskhT6dxZDj-image.png)
The score is shown after the rating has been saved
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/VvcBMdmZNBlEPtJI-image.png)
##### View / Print
When opening the Print View, the Interpolation ratings are also shown:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/1wMmRF5FqlCk9pGN-image.png)
# Version 9.1.120 (23 September 2024)
### Imports
#### Import visibility on LMS (#120517)
**Problem**
- Employees not importing although their profiles are being sent through by Payspace. They are also not on the list of exceptions.
**Solution**
- Fix date validation issue
# Version 9.1.119 (23 September 2024)
### Job Profiler
#### Printing job profile displays "Details Required" (#120415)
**Problem**
- "Details Required" displays on each page of the Job Profile print
**Solution**
- Replace the "Details Required" with the Job Title
---
### Performance Management
#### PM contracts without PDP's (#119221)
**Problem**
- Functionality does not allow a user to submit an agreement if there are no items linked to a section
**Solution**
- Added functionality to allow a user to submit agreements with no items in a section when the section weight is 0%. Excl Primary Goals section.
---
### Identity and Authorisations
#### Unable to log into newly created ruleset (#120777)
**Problem**
- Cannot log into a newly created Ruleset
**Solution**
- Ensure the user is created during the Ruleset creation process
---
### HR Processes
#### Approver seeing item to approve on Dashboard even though they are not the next approver (#120552)
**Problem**
- The user, who is the 3rd approver, is seeing an item to approve on their dashboard. Still, when navigating to the Awaiting Your Approval page, the item is not shown yet, since the previous approver (approver 2) has yet to approve the request.
**Solution**
- Ensure the approval items are only shown when the person needs to approve a request.
---
### Ruleset Setup
#### Unable to deselect English (United Kingdom) on the dropdown (#120576)
**Problem**
- Cannot deselect English (United Kingdom) from the Available Languages dropdown
**Solution**
- Only the default language selected will be disabled in the available languages dropdown.
# Version 9.1.118 (23 September 2024)
### Performance Management
#### Internal People List loading requires optimization (#120320)
**Problem**
- The loading of Internal People takes too long
**Solution**
- Optimise the query that brings back the list of people
#### The evaluation icon not showing on the agreement (#119959)
**Problem**
- The issue is that a review setup with its review periods is linked to more than 1 review year.
Eg Managers Review Setup with Mid-year and Final-Year is used on FY2023 and FY2024
- When the contract detail is retrieved and it determines whether or not to show the evaluations it checks whether the evaluation due date is captured for the period (Mid-Year) but does not filter based on the Year.
- This means it technically finds 2 Mid-year review items , with 1 having an evaluation date set and the other not.
- It picks the first one and then returns.
- This is why it may also appear to work 'randomly' because of the natural ordering of the query the one with the evaluation date sometimes gets picked first.
**Solution**
- The query now also takes into account the ReviewYear of the contract to ensure the correct review item dates are retrieved.
#### Add functionality to close the evaluation and show as wrong person on summary (#120155)
- When the toggle is selected, and submitted, mark the evaluation as completed
- Items to evaluate is then ex 0 / 6
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/OgtrqfeD4zRBXIHB-image.png)
On the Evaluation summary, show in the comment the toggle wording:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/WuPiwLoxvLlLp1oJ-image.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/kxV5obyTuazKD6VT-image.png)
#### The final score in the system is not the same as in the Performance Agreement Status report (#119225)
**Problem**
- There is a rounding issue on the DWH and therefore the scores are not matched
**Solution**
- Create custom rounding function to force round half up rounding and replace toFixed usages
####
#### The manager’s general comments are not visible in the employee's contract (#119923)
**Problem**
**Solution**
- Always show General Comments to both parties
---
### Ruleset Management
#### No load indicator is displayed on the screen when clicking on the Ruleset or Cancel button (#102903)
**Problem**
- There is no loading indicator when clicking on a Ruleset
**Solution**
- Implemented the loading indicator
---
### Languages
#### Add default culture en-GB (#114371)
**Problem**
- Currently, the date displayed in the V8 system is American and this causes the date picker not to work
**Solution**
- Replace en-US/en-UK with en-GB as the default language
---
### People Management
#### Fix the styling of the Manage Person button (#113511)
**Problem**
- Styling is not standard
**Solution**
- Make the button a standard button
---
### Identity
#### SSO issues (#120492)
**Problem**
- The SSO integration between V8 and V9 not working
**Solution**
With the update to .NET 8, the user identity ID is now retrieved from the 'nameidentifier' claim instead of the 'sub' claim.
# Version 9.1.117 (13 September 2024)
### Technical
- Revert .NET 8 upgrade
# Version 9.1.116 (13 September 2024)
### Performance Management
#### Check-in phase - The edit last comments button is not available on the employee check-in screen (#120366)
**Problem**
- When an employee loads a check-in comment initially (without a manager's comment) that comment cannot be edited. The manager can always edit their comments. Only after the manager's comments were added did the Edit Last Comment button show, although was still not working for the employee.
**Solution**
- Correct check to show Edit Last Comment relative to whether the user or manager is viewing and has added comments previously. Correct call that updates column to correctly set state after save.
#### Clicking on the Evaluate button gives an error (#120422)
**Problem**
- When clicking on an evaluation, it does not open
**Solution**
- Do not return excluded rating items for evaluations
---
### Identity and Authorisation
#### When using the welcome email to set your password and selecting the "Back to login" button a white screen is displayed after login (#120252)
**Problem**
- The back to Login button shows a white screen
**Solution**
- Fix the Welcome email breaking because of the anonymous ruleset code get
- Add theme key and ruleset code to reset password reset URL and validate reset password token on load
---
### Master Data
#### Race field did not update via employee import (#120325)
**Problem**
- Race was not implemented to add Master Data when importing users
**Solution**
- Allow Race to be created as Master Data when importing
---
### Job Profiler
#### Occupational Level Field gets erased after approx 12 hours (#120301)
**Problem**
- The problem is that the occupational level is not currently retrieved from V9 with the V9 user import request.
- This resulted in setting the occupation level to 0 (nothing) when the import runs.
**Solution**
- The syncing of employees to V9 where the employee's occupational level has also been set on V9 Job Profile, should pull through to V8.
# Version 9.1.115 (10 September 2024)
### People Management
#### People Management Service Unavailable (#120109)
The issue is that the system tries to determine the Next Anniversary Date if the user's anniversary has already passed by looking at exactly 1 year from the current year as the next anniversary.
In the case of the user's appointment starting on a Leap Day Eg. 29 Feb 2024, the next anniversary date is calculated as 29 Feb 2025 which does not exist and causes the people page to stop working.
---
### Imports
#### The user is not being placed into the correct Org when importing from V9 into Version 8 (#120118)
**Problem**
- People are appointed in the first org level 1
**Solution**
- Corrected the import to select the correct org level
---
### Performance Management
#### An Error occurred on Uploading Documents (#120261)
**Problem**
- The page breaks when trying to view uploaded content for performance management items. The issue is the incorrect IIF check that somehow snuck through with the PM evaluations merge.
**Solution**
- Corrected the IIF check to be correct, and added a semicolon to the start of the CTE with a statement for sanity.
#### Print/View report shows duplicate records (#119949)
**Problem**
- The join to the Contract Period Phase Dates on the ContractPreview query to determine whether the check-ins phase is active and the check-in comments should be displayed was incorrectly not also filtering on the relevant review year setup.
- This caused duplicate records to be returned.
**Solution**
- Also added the ReviewYearSetupId to the join that checks whether the check-ins phase is active.
# Version 9.1.114 (9 September 2024)
### People Management
#### Various fixes (#119885)
- Hide the username from the Summary on the card view
- The person and Line Manager
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/9BoGKD0famxvW2uR-image.png)
- The Grid View is ONLY available on the Manage People section
**Manage People**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/8lBfWHq9GcWbIiQQ-image.png)
**My Team, My Department and My Company**
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/In9nPk8hzWTYDfuk-image.png)
- Change the wording under the User Permissions
- Change “System Modules Admin” to “*System Module Roles*”
- Change “Additional Roles” to “*Additional System Module Roles*”
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/0EXDkWMK2DmXuKcD-image.png)
#### System errors (#120034)
- A change has been made to how the Ruleset ID is handled when a user's session expires.
- Suppose the user becomes unauthenticated at any point due to session expiry.
- In that case, an unauthorised error will occur but when the Ruleset ID is not found then the standard Ruleset ID is null error will occur.
- In this process, authorisation was also added to the People Group services, which caused the error to be unhandled.
#### Correct appointment creation when adding a new user on the front end (#118751)
**Problem**
- When appointing a user with RabbitMQ slightly lagging the appointment creation collides with the user materialisation trying to create an existing user.
- When creating a new tenant with a code that belongs to a deleted tenant the page breaks
**Solution**
- Only materialise a user when it does not exist and do not throw the exception
- Change the existence check and unique constraint on code to only check for tenants that have not been deleted.
---
### Performance Management
#### Incorrect display in the header of contract (#119961)
**Problem**
- The slash ('/') in the Review Setup name and the display of that translation being HTML-safe encoded resulted in the text to not displaying correctly
**Solution**
- Ensure that the slash ('/') is displayed without strange characters
#### Search doesn't work on the "Move agreements screen" (#119960)
**Problem**
- The global search's default functionality was triggering a form submission and reloading the bulk actions page which resets all the filters and defaults to the logs page.
**Solution**
- Detach and override the global search submit button on Bulk Actions. This allows the standard data table functionality to work and filter.
#### Evaluations - Headings should not be caps (#119892)
Change the first rating item's heading to:
- WHAT IS YOUR OVERALL EXPERIENCE OF THIS PERSON? (OPTIONAL)
- Caps
- Bold
The rest of the items in grey should NOT be bold - keep sentence case as is
#### Evaluations - The icon does not indicate whether an evaluation has been added (#119871)
- Added icon to indicate the number of evaluations
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-09/aIC8CZNZEJAcWCTV-image.png)
#### When evaluations are not enabled, the summary button should not be visible on the Rate modal (#120072)
- Hide the summary button on the rate model when the settings for evaluations are not enabled
#### Evaluation Summary - Evaluation Comment should have a max display (#119945)
- Added the standard rules for text-areas
- Text-area display max: 200 characters
- On hover: 350 characters
# Version 9.1.113 (9 September 2024)
### Import - People Management
#### Add validation in user import to prevent an org node from having multiple parents in the same sheet (#119247)
**Problem**
- Importing org units with multiple parent nodes breaks the import
**Solution**
- Improve the error logging
- Add pre-import validation to prevent data where a node has multiple parents from being staged
- The following error will be logged in this case:
- Org node with code: \[Org Unit Code\] has different parent nodes
#### Allow multiple level 1 nodes on organisation structure (#118209)
**Problem**
- Currently, only one level 1 node is possible when creating an org structure
**Solution**
- The import will now import all data added to org level 1 as the level 1 node on the ruleset
- When org level 1 is left empty in the sheet then it will use the IN01 node as the default for this node
#### Use external user ID for employee number changes (#115559)
**Problem**
- When importing data from V9 into V8 the employee number is used as the unique identifier and relies on the ID number for employee number changes.
- Because the ID number is not a required field in V9 and is also not unique it causes inconsistent updates of data.
- Incorrect movement of information between employees also occurs when more than one user has the same ID number on V8.
**Solution**
- Add a unique per schema identifier to prsEmployees to store the external user ID of users imported as employees from V9.
---
### Performance Management
#### Copy of PM templates not working (#119586)
**Problem**
- When paging PM Templates the copy onclick event is not attached to the subsequent pages.
**Solution**
- Re-attach the on click event to the data table rows' eye icons when the user pages.
#### Overall Final Score not recalculated to include Value Survey Score (#119575)
**Problem**
- The calculation of the Overall Final Score was not correctly taking the calibrated score into account and using the original score
**Solution**
- Fix the overall score dial calculation to use the calibrated score from the value survey if available.
#### Value Survey calibrated score "lost" when you exclude/include score (#119577)
**Problem**
- When excluding a Survey the calibration score is not reapplied on React, only when the page is reloaded does it show again.
**Solution**
- On Survey include/exclude re-apply the calibration score so it reflects the calibration correctly.
#### Exponentially more templates are created each time you copy a template (#119700)
**Problem**
- When copying PM Templates the copy event is attached in duplicate on each reload of the table causing templates to create in duplicate.
**Solution**
- Detach before re-attaching the onclick event on the PM template copy event.
#### Check-Ins - The manager wants to review (#119502)
**Problem**
- Contract preview broke if a check-in comment contained a colon (":") or semicolon (";").
**Solution**
- Ensure that comments can contain those characters without breaking functionality.
#### Unable to include the Value Survey score (#119745)
**Problem**
- Saving a contract survey gave SQL Dapper error because of one of the objects having changed with the new phase EvaluationEndDate but the query was not updated to select the value.
**Solution**
- Modified query to also select EvaluationEndDate.
#### Clicking on the gauge in the overall section opens the wrong screen (#119957)
**Problem**
- Clicking on any gauge in the Overall Summary Section is always directed to the contract's rating phase regardless of state.
**Solution**
- Change the gauge click to relevant to either Ratings or OS screens depending on whether the user has submitted objectives.
#### Bulk Performance Contract Linking (#119916)
**Problem**
- When you open the page to bulk link users for contract creation for a review setup that does not have a defined TA then the page will time out.
**Solution**
- Ensure the page does not time out
---
### New Development
#### Performance Management - Evaluations on Level 3 items
New functionality has been added to allow a user to select other people to evaluate them on the level 3 item (KPI, Values, Leadership Behaviours, Competencies).
When the Objective Setting is approved by both the Employee and Manager, the evaluator will receive a link to enable them to evaluate the people. Comments and ratings are saved in the Evaluation Summary.
Settings are available to enable this functionality. A setting is also available for Anonymous evaluations. The results are shown, but not who submitted the evaluations.
---
# Version 9.1.112 (26 August 2024)
### Report Builder
#### Report not exporting (#119368)
**Problem**
- When invalid XML characters within the data need to be exported, the export to Excel fails.
**Solution**
- A method to sanitize the data was added, removing any invalid XML characters before exporting.
---
# Version 9.1.111 (26 August 2024)
### Performance Management
#### Include both Manager and Employee Check-in Comments (#118556)
**Problem**
- Only the person viewing the ratings can see their comments and not the other person's comments as well
**Solution**
- Include both manager and employee check-in comments
#### Include the Review Survey import when calibrating (#118980)
**Problem**
- The Review Survey score cannot be imported when using the Calibration Import
**Solution**
- Allow functionality also to import the Review Survey Score
---
# Version 9.1.110 (16 August 2024)
### Performance Management
#### Changes Done By Individual is Reflected For All Team (#119278)
**Problem**
- On Goals import, when the custom KPI or KPA items are added that have the same name to different users it creates only 1 section item and links that to both contracts.
**Solution**
- Always create custom section items, then iterate through the import records, assign the created items as required and remove them from the list if used.
- This ensures that if the same KPI name exists on more than 1 contract, each will have their own section item created.
- Also added steps to return the current existing contract KPI / KPA ids and then assign the Ids for that to the import items.
- Last step added to delete the 'new' master data section items that were not allocated to prevent orphaned section items being created.
---
### People Management
#### Users not imported to V8 (#112848)
**Problem**
When forcing a bulk import of users, the newly created users (created today) are not imported.
**Solution**
- A SQL job executing the following must be setup to run on the V8 DB to actually import the data, otherwise clicking the bulk import of users will only stage the data in V8
---
# Version 9.1.109 (16 August 2024)
### Ruleset Management | Payroll Connectors
#### PaySpace: Add job to process daily (#116644)
**Problem**
- The front end of the payroll connectors offers a feature to pull or push data on a schedule daily but no such job exists.
**Solution**
- Add a quartz job in the import services to run all the active payroll connectors regardless of type daily.
- The job should fire the global command handler that serves as the controller to call and process the payroll connectors according to their configuration.
- Currently, only PaySpace connectors will be processed.
- Add the daily schedule to appsettings and the Helmcharts of the import service.
---
# Version 9.1.108 (16 August 2024)
### Performance Management
#### Text not changed to "Calibrated" (#119122)
**Problem**
- When the contract has not yet been approved, the precalibrated score is *null.* When importing calibration it only sets the final score and because of the null does not validate against the pre-calibrated score.
**Solution**
- It was changed to always read the final score and pre-calibrated scores as 0.00 (instead of null) and changed the comparison accordingly.
#### Improve error message when importing to a period that has not been started (#119120)
**Problem**
- The error message is not clear when a period has not been started
**Solution**
- Update the message:
- - The user "\[Username\]" does not have an active agreement for the review year "\[Review Year\]" with review setup "\[Review Setup\]" for period item "\[Review Period\]"
---
### People Management - Import
#### User Import: Add additional fields to user imports (#115463)
**Problem**
- Not all fields that are required are available on the User Import
**Solution**
- Refactor user import and extend with additional fields
#### Improve the error when importing an overlapping position (#119083)
**Problem**
- The error message for an overlapping position needs to be improved
**Solution**
- Changed the message:
- "User (Username of person imported), Another appointment exists for the position between \[StartDate\] and \[EndDate\] for \[Username of person in position\]"
---
### Master Data
#### Master Data "in Use" data (#114637)
**Problem**
- The generic error message displays when deleting master data that is already "linked" to other data
**Solution**
- Implement a modal to inform the user why he cannot delete the master data item
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-08/z7H5VQFtFtyFvaSi-image.png)
---
### System Access
#### Enabled Disclaimer prevents ID Validation (#118639)
**Problem**
- When the disclaimer is enabled, the 2nd authentication code is not checked for validity.
**Solution**
- Run the base authentication. If successful, return the disclaimer SignInCustom. Otherwise, return the authentication result.
---
### System Menu
#### Cannot add the PDP Dashboard on the System Menu (#111669)
**On V8:**
- Add a Gear for the admin pages - Only available to the PDP Admins
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-08/Ubb79izTCO7gcGTi-image.png)
- When selected, open the PDP Admin menu:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-08/m4vRQZuSaChcFEAB-image.png)
**V9:**
- Add a System Menu for **My PDP**
- Ruleset Setup | System Menu
- When clicking on the menu item, open the My PDP page
- Add a spanner if the logged-in user is an Admin that opens the admin pages
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-08/KEuK8tJgBESE6IdD-image.png)
---
### Kudos
#### Attempt to translate all sections relating to the Kudos functionality (#119207)
**Problem**
- Missing translations
**Solution**
- Add missing translation sections
---
### Ruleset Setup
#### System help Page not responding (#119246)
**Problem**
- User guides will show an infinite loading screen when there are multiple rulesets with overridden settings (UserGuideConfigurations)
**Solution**
- Ensure that UserGuideConfigurations are retrieved for the current ruleset only, which will prevent the infinite loading screen.
---
### Notifications (Inbox)
#### Order items by date (#118522)
**Problem**
- Please order the items so that the latest imports are shown first and ensure that it is correctly ordered as dates and not as text.
**Solution**
- Change the default sort column, and refresh the export table after successfully exporting a report
---
# Version 9.1.107 (12 August 2024)
### System Access
#### System slow/unresponsive (#118937)
**Problem**
- The system is very slow and unresponsive at times
**Solution**
- Implement menu cache for additional service menu items
- Remove busting of the ruleset menu cache slowing the whole V9 system
---
# Version 9.1.106 (12 August 2024)
### People Management
#### Inconstant background shape size on different Tabs (#118608)
**Problem**
- The system displays inconsistent background shape sizes on different Tabs.
**Solution**
- Set a fixed size for the labels
---
### Performance Management
#### Increase padding below rating scale blocks (#118726)
**Problem**
- The heading for "Rating Comments is very close to them especially if you translate it to something that is longer
**Solution**
- Apply size changes and add comments to Check-ins as well
#### Keep "new line" characters (#118721)
**Problem**
- The newline characters as it was entered in the text boxes are not the same as what the user entered
**Solution**
- Keep "new line" characters on activities, measures and Ratings and KPI
#### People can rate but the rating phase is not open (#118984)
**Problem**
- On the contract screen the phase start date was not correctly being validated, only the end date.
**Solution**
- Correct phase active check to correctly take the start date into account
- Show the correct tooltip when the phase is not yet active and the correct start date check to include today
#### Final scores not calculated correctly (#118623)
**Problem**
- Final scores not calculated correctly
**Solution**
- On the weighted overall section, always recalculate all item L3 weights regardless of the rated state. Fix the Excluded rating showing rate button.
---
### Employee Evaluations
#### The report and export do not return all the roles (#118617)
**Problem**
- When people group users are bulk imported from V9 to V8, it sends a list of people groups to V9 and retrieves the users for that list of people groups. The problem is, before returning the people group users, we distinct the list on user id. This is a problem when importing to V8, because V8 expects the users who belong to a people group to be present, even if the user exists over multiple people groups. But currently that will not happen, a user will be returned only once, even if the user exists over multiple people groups.
**Solution**
- Added an option isTargetAudience, which is optional and true by default. When target audience is true, users will not be duplicated over people groups. When isTargetAudience is false, users can be duplicated over people groups and all users for the given people groups will be returned. This option will be false, when the request is made from V8.
---
### New Development
#### PM Final Score Calibration (#112619)
**As a Performance Management Administrator viewing the Review Setups on a year, I want to export and import the template to add the calibrated values**
*Business Rules*
- Create a template to import the calibrated values
- Calibration of Final Scores
- When downloading the Template, everyone linked to the Review Setups should be populated on the export file
- The settings should be taken into account when populating this file
- The new scores can be populated and imported
- Exception:
- A record cannot be imported without a Reason for revision
**As a Performance User, I want to see my calibrated score**
*Business Rules*
- On the Performance Management dashboard, show the calibrated final score
- On hover, show the original score
# Version 9.1.105 (12 August 2024)
### Translations
#### Export to Excel message (#118605)
**Problem**
- An incorrect snack message is displayed when exporting a report.
**Solution**
- Make sure the export snack message is correct.
---
### Performance Management
#### As a Performance User, I want to see all the comments for Employees and Managers (#118556)
- Add Headings for the following sections for the ratings
- Ratings
- Rating Comments
- Person
- Manager
- Private Comment
- Historical Check-ins
- Add Historical comments for both the person and manager
- Objective Setting Comments
- Person
- Manager
#### As a Performance User, I want the on-hover pop-up to be removed and the info shown on the screen when rating (#118428)
- When the rating or check-in modal is open, show the KPI description
- Have an arrow icon with a tooltip
- When clicking on the arrow, expand the grey area and show
- Activities
- Measures
- Ratings
- When clicking the arrow again, collapse the grey area to show the KPI description
#### Bulk Create Contract Periods using review setup settings (#116832)
**Problem**
- The bulk creation of contract periods does not take into account the rules of the review setup. Currently, it only allows the creation of the next contract period if all the periods that has a start date before the one you want to create on the review setup have been final approved. This does not adhere to settings like AllowExcludingReviewItems, and RequirePreviousPeriodCompletion.
**Solution**
- Implement all the settings currently applied when allowing the creation of a contract period as implemented on the dashboard on the bulk creation.
#### Export scorecard in Excel (#108772)
**Problem**
- The agreements can only be exported in PDF
**Solution**
- New method on WebMVC.Areas.PerformanceManagement.Controllers.DashboardController to compile contract information into specific format for excel
- Extend OpenXMLService to handle specific generation of export. See ExportDataSet but possibly alter to not show search criteria etc.
- Integrate with notification service to make downloadable when ready.
---
### Master Data
#### Save & Add New Function, inherited Competency from Previous record needs to be Manually re-selected before save is successful. (#118076)
**Problem**
- When you select 'Save and Add new', when adding new master data, the select2 selects are not cleared properly. The value(s) are cleared, but it still displays the previously selected value(s). Saving after this, does nothing, as the select does technically not have a value, although it displays a value.
**Solution**
- Reset select2's by selecting the first value from the select, which is always "Select an option".
---
### My Account
#### No default Language (#118112)
**Problem**
- On a newly created ruleset, when a user goes to the "My preferences" page, no languages are displayed. This happened because none of the languages were published.
**Solution**
- Ensured that the default language is published, or at least a single language when creating/copying a ruleset.
Also, to make sure that this works for existing rulesets with no published languages. On WebMVC, if the ruleset has no active and published languages, it at least adds the current culture of the user to the list, so that something displays on the page.
---
### Competency Analysis
#### Load More appears when there is no more record to Load on the page (#118145)
**Problem**
- The Load More option displays when there is less than 10 records
**Solution**
- Make sure the option is displayed only if there are more than 10 records
#### Incorrect tooltip when rating as Manager (#112812)
**Problem**
- Incorrect tooltip is shown for Manager (Do self-assessment)
**Solution**
- Make sure that when the person is viewing as the manager, the tooltip changes to Assess Person
---
### Notifications / Inbox
#### As a product administrator, I want to see the imports for the ruleset. (#115203)
- On the notification for a user add a new tab Imports.
- Show the tab only if the user is a Performance Management, People Management or Ruleset Management Administrator
- On the tab show a list of the last 100 imports paged by 50 per page
- Add the columns
- Actions
- User
- Type
- Status
- Start Date
- End Date
- On the Action options
- Export Transactions
- Export all transactions for the import
- Export Errors
- Disabled when the import is not complete or the completed status is not Failed
- Export all errors
- Order the table by latest import first
---
### Integrations | PaySpace
#### PaySpace: Implement performance improvements (#116645)
**Problem**
- Currently, payroll connectors are processed serially meaning that each ruleset will wait for the next to complete.
- All data is always processed when pushing data to Payspace
**Solution**
- Implement threading batching no more than 10 ruleset connectors together.
- When retrieving the data that has changed only retrieve data that has changed on the last day unless the specific connector has never run then include data over all time. A functional data filter should be added to the export to select changes from any date.
---
### Notifications | Email Setup
#### Use Office 365 as SMTP server (#111461)
**Business Rules**
- When Basic Authentication is selected
- Username and Password fields are shown
- When Token-based Authentication is selected
- Client ID, Client Secret, and Tenant ID are shown
---
### Ruleset Management | Image Resources
#### Duplicate first banner image appears when marked default (#118215)
**Problem**
- The system creates a duplicate of the uploaded Banner.
**Solution**
- Ensure that only one banner is created
---
### Ruleset Management | Integrations
#### Import User Picture URLs from V9 to V8 (#116808)
**Problem**
- The profile images of users are not imported from V9 to V8 and this caused the V8 list pages to not display images for the employees.
**Solution**
- Extend the user details export to include the profile URL from V9, in the Menu and Bulk imports add a step to import the user profile URL as the picture URL in V8
---
### People Management
#### Show the Active People Counts on People Management and Ruleset List page (#118100)
**Business Rules**
- People Management Dashboard - Grid View
- In the slider - Active, Terminated, Future Dated, and All - add the number of people when clicking on an option
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-08/hAWFEwLnDF1wRI90-image.png)
- Ruleset Setup | List page
- Change the heading from People to Active People
- Make sure the number here is the Active People
- When hovering, show the breakdown of Terminated, Future Dated, and All in a tooltip
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-08/0jnJz0tgjkYLQ3Tr-image.png)
---
### General
#### Implement V9 secure redirects as share links in V8 (#116964)
**Problem**
- Creating short URLs or sharing links in V8 does not create a ruleset-based session for users using V10 and the user is required to login in V8 with credentials that do not exist.
**Solution**
- Implement the secure redirect mechanism developed on V9
---
# Version 9.1.104 (29 July 2024)
### Performance Management
#### Manager Dashboard Change (#118473)
**Problem**
- The wording in the rating phase refers to ratings and check-ins, but the check-ins are done first, followed by the ratings.
**Solution**
- Swap the words around and display: "Check-Ins and Ratings"
#### Managers can update the review survey score when the setting is disabled (#118349)
**Problem**
- The allow edit setting was no longer taken into account since the click was moved to the gauge
**Solution**
- Implement the setting so that the score input will be disabled when the setting is off. The manager will still be able to include/exclude the survey score.
#### KPI weight % submission issue (#118340)
**Problem**
- Similar to the previous situation with L2 weights. The items weighted over section setting on the L1 weights are supposed to be calculated automatically but end up being incorrect and not totaling up to 100%.
**Solution**
- Again could not replicate the issue to solve, but removed the front-end L1 validation when the weighted over section setting was on. Weights are still redistributed and validated on the backend.
---
### Ruleset Management
#### Tenant users cannot update their ID Numbers (#112761)
**Business Rules:**
- When creating a new Tenant / Create from Blank or Create from R1
- Do not copy the MFA settings
- Always use *Sent OTP via Email* option
- When copying from any other Ruleset (excl R1)
- Copy the MFA settings as configured on the copy from ruleset
#### Image Resources: increase the Maximum allowed size to 2mb for Avatar (#118287)
**Problem**
- The avatar image size was 500 KB which is very small for a high-quality image
**Solution**
- Increase the size to 2 MB
#### Image Resources: Duplicate first banner image appears when marked default (#118215)
**Problem**
- The system creates a duplicate of the uploaded banner
**Solution**
- Ensure that there are only 1 image
#### The default Banner does not display on the People Management User preview (#118286)
**Problem**
- The system does not display the default Banner when viewing Employee Details/Card
**Solution**
- Ensure the default pulls through to People Management and displays on the Employee Details and Card
---
# Version 9.1.103 (19 July 2024)
### Performance Management
#### Blank screen after opening an agreement (TP#118171)
**Problem**
- The user contract does not load due to a JavaScript error if one section has no name.
**Solution**
- Ensure that a section item always has a name, by returning "unknown" if it is null or empty.
#### Index panel problem (TP#118173)
**Problem**
- "Natural" sorting of items was not implemented when perspectives were enabled.
**Solution**
- Ensure that level 2 items are always sorted naturally.
#### Prevent the delete icon from wrapping to a new line (TP#117026)
**Problem**
- The delete icon wraps to another line
**Solution**
- Disable the wrapping of the delete icon in the overall summary section
---
### People Management
#### Duplicate employees saved (TP#118162)
**Problem**
- Duplicate users were displayed due to a bug in the back-end logic.
**Solution**
- Ensure duplicate users are not returned when people group users are returned.
#### Roles are not applying to V8 pages (TP#112977)
**Problem**
- Ruleset admin and Schema admin in V9 and V8 respectively are handled differently.
- In V8, schema admin always has edit/view rights.
- In V9 a Ruleset admin needs the appropriate right to view/edit.
**Solution**
- Added a check, when coming from V9 it will only check the view/edit permissions and not if the user is an admin.
---
### Ruleset Management
#### 'User not active' message when attempting to log into the newly created ruleset (TP#116988)
**Problem**
- When a new ruleset is created, when trying to log into that ruleset with the user that created it a user not active message is displayed.
- The problem is that the user has no appointment and does not exist on JobProfiler.MaterializedUsers because of an error when trying to materialize the user.
- This error is because the user has tried to be added before the ruleset has been created on JP which causes the context to go invalid and the user never gets created.
**Solution**
- Changed the order of execution to first send the ruleset created event, and then send the copy identity user (which calls user created event) to reduce the chance of a race condition occurring and the user being created before the ruleset exists on JP.
- Add a check to delay user creation until the ruleset is created
#### Translation Resource names displayed (TP#118163)
**Problem**
- The functionality from the initial development was not working 100% and it saved the actual translated value not the key, also where it did have the key saved it displayed that instead of the value.
**Solution**
- Made it so that when editing/adding a theme it always saves the translation key. When viewing the viewed value is the translation value.
Also made it auto-scroll and focus on the relevant key when clicking on the Hand icon next to the inputs
---
### SigniChat
#### Read Receipt for Messages does not display accurate time (TP#116198)
**Problem**
- Newly Sent Message displays a Read Receipt Time that is not accurate as the user the message was sent to has not yet viewed the message
**Solution**
- Read Receipt time is only logged when the New Message is read by the user it was sent to.
---
### Support User
#### Error deleting a second support user (TP#118186)
**Problem**
- Please note that an error is displayed after you try to delete the second line on the support users list.
**Solution**
- Ensure the ability to delete a newly added line although it is not saved
#### Close the "Allow Support" modal on Save (TP#116820)
**Problem**
- The Allow Support modal did not close after saving
**Solution**
- Added the close trigger after saving
#### Close the tooltip after clicking the add button (TP#118189)
**Problem**
- When you hover over the "Add" button on the Support Users modal, a tooltip is displayed.
- After clicking on the button, the tooltip is still displaying
**Solution**
- Add a trigger to hide the tooltip after the button has been clicked
#### Typo on modal heading (TP#116819)
**Problem**
- Typo error on the Manage Support Users modal
**Solution**
- Correct the typo
---
### Translation for the Login Page
#### The login page language setting is not working (TP#118207)
**Problem**
- Static translations did not work when the user was not signed in (ie on the login page)
**Solution**
- Ensure that static translation works even when the user is not logged in and authenticated.
---
# Version 9.1.102 (15 July 2024)
### Performance Management
#### The employee cannot submit objectives (TP#118111)
**Problem**
- A user could not submit objectives if perspectives were enabled and an Action Plan section was active on the contract.
**Solution**
- Ensure that contract objectives can be submitted when perspectives are enabled and an action plan section is present.
#### Prevent the delete icon from wrapping to a new line (TP#117026)
**Problem**
- When an employee views his agreement when there is one period in the rating phase and another is still in the objective phase, then the delete icon on the objective phase is moved to the next line to the left of the table
**Solution**
- Fix delete icon wrapping to next line on Employee Dashboard
---
### Ruleset Management
#### Translation Resources displayed in tooltip (TP#116882)
**Problem**
- Tooltip items are not being translated.
**Solution**
- Run translation functions when getting the list of menu items.
#### Content Server Password is in clear text by default (TP#116341)
**Problem**
- Content server client secret visible by default
**Solution**
- Changes content server client secret to have password type by default
#### Menus displayed incorrectly (TP#116853)
**Problem**
- The learning portal and HR help desk translations had typos in them, which caused the translation to not work.
**Solution**
- Fix the typos for those two translations.
#### 'User not active' message when attempting to log into newly created ruleset (TP#116988)
**Problem**
- When a new ruleset is created, when trying to log into that ruleset with the user that created it a user not active message is displayed. The problem is that the user has no appointment and does not exist on JobProfiler.MaterializedUsers because of an error when trying to materialize the user.
- This error is because the user has tried to be added before the ruleset has been created on JP which causes the context to go invalid and the user never gets created.
**Solution**
Changed the order of execution to first send the ruleset created event, and then send the copy identity user (which calls user created event) to reduce the chance of a race condition occurring and the user being created before the ruleset exists on JP.
---
### People Management
#### Not Authorised screen displayed when terminating an employee (TP#116658)
**Problem**
- When terminating an employee an unauthorized screen is shown and the user can not be found within the people management dashboard. The terminated users are thus not cached and therefore the unauthorized error.
**Solution**
- Made changes to the user's query to include all users to add in the cache as well.
- This fixed both issues, on people management dashboard and with the unauthorized page.
#### Welcome message image on screen display (TP#118074)
**Problem**
- Images overlap the modal
**Solution**
- Make send confirmation email dialog preview XL
---
### Login page
#### Items cannot be seen, the drop-down items are in white and the background is white (TP#116763)
**Problem**
- Transparency does not work on drop-down items
- The drop-down is still visible when there is only one language to select
**Solution**
- Let the drop-down color be set to the same as the parent element. Otherwise, the text won't be seen
- Hide the language drop-down if there is only 1 active language on the current ruleset
---
# Version 9.1.101 (15 July 2024)
### Ruleset Management
#### Tenant users cannot update their ID Numbers (TP#112761)
**Problem**
- Emails were not generated when creating a new Ruleset
**Solution**
- Ensure ruleset admins receive an email when the ruleset is created or copied
#### Random text on the integrations page (TP#116598)
**Problem**
- Random text that is now visible on the Integrations page
**Solution**
- Changed translation symbol to ensure the HTML is treated as a string
#### Ruleset Admin Single can see the Product setup option for some modules (TP#108347)
**Problem**
- The permissions state that this role excludes the actual setup of modules but when this user logs in and views the product setup page, some modules do have the Setup option available
**Solution**
- Only a ruleset admin (single or global) can activate/de-activate a Product (If they have the correct permission too - "Do actions on Product tab, excluding setup")
- Then ONLY an admin of a certain product can access the Product setup of that product - they do not need to be a ruleset admin.
- Also, the same rules that apply to Activating/Deactivating a product, apply to activating/de-activating SigniChat.
---
### Performance Management
#### System not allowing the manager to copy scorecard on an employee (TP#116196)
**Problem**
- When performing DB-only actions like importing data from V8 to V9 the cached entries in the system for new data is not busted automatically.
**Solution**
- Add an API endpoint in the import service to allow the cache to be busted using an API endpoint.
- This can be triggered from SQL as needed to solve the issue.
#### Percentage errors when submitting contracts (TP#116517)
**Problem**
- Some scenarios occur when the items weighted over section setting are on where the L2 weights are supposed to be calculated automatically but end up being incorrect and not totaling up to 100%.
**Solution**
- Could not replicate issue to solve, but removed the front end L2 validation when the weighted over section setting is on.
- Weights are still redistributed and validated on the backend.
#### Error when opening PM Section Items (TP#116816)
**Problem**
- Could not access Section Item master data.
- This was due to the custom handling of the Section Item enum type that was added initially.
**Solution**
- Removed the custom handling and relied on the existing functionality since the SectionItem enum works generically now and no custom implementation is needed.
---
### HR Processes
#### Cancel Request button is not enabled (TP#116755)
**Problem**
- Approve, decline, and cancel buttons are disabled and cannot continue
**Solution**
- Ensure the Reason and toggle trigger the buttons
---
### People Management
#### Roles are not applying to V8 pages (TP#112977)
**Problem**
- Ruleset admin and Schema admin in V9 and V8 respectively are handled differently.
- In V8 schema admin always has edit/view rights.
- In V9 a Ruleset admin needs the appropriate right to view/edit.
**Solution**
- Added a check, when coming from V9 it will only check the view/edit permissions and not if the user is an admin.
---
### Imports
#### Employee data import not working (TP#116883)
**Problem**
- User import fails without reason when importing bulk users where the dataset is made of existing and new users
**Solution**
- Correct the filter that excludes the current users from the list of new users to create.
- Ensure external ID is only used when it is not null when doing this comparison.
#### Competencies not copied to positions created by the import (TP#113352)
**Problem**
- When importing individuals for a job position, the job position does not inherit the competencies from the job profile.
**Solution**
- Add a bulk insert/update for the competencies
---
# Version 9.1.100 (15 July 2024)
### Tenant Management
#### Tenant users cannot update their ID Numbers (TP#112761)
- When creating a new Tenant / Create from Blank or Create from R1
- Do not copy the MFA settings
- Always use *Sent OTP via Email* option
- When copying from any other Ruleset (excl R1)
- Copy the MFA settings as configured on the copy from ruleset
---
### Ruleset Management
#### Code colours not updating (TP#116801)
**Problem**
- When saving a theme the changes were not reflected and also gave an error.
**Solution**
- Fixed the login page heading and description referencing the incorrect model property.
---
### Performance Management
#### Values & Behaviours section weights stay red after entering them manually (TP#113304)
**Problem**
- React weight validation is failing due to Action Plan items also being evaluated.
**Solution**
- Exclude Action Plan from the weight validation
# Version 9.1.99 (15 July 2024)
### People Management
#### Technical: The index page makes excessive calls (TP#116776)
**Problem**
- The People Management index page made excessive HTTP calls to retrieve the Kudos phrases and Kudos badges.
**Solution**
- This was because the calls were made in the modals.
- Moved the HTTP calls from the index page and now pass the phrases and badges through as a parameter to the relevant modals.
#### An error appears when Appointing an Employee (TP#116739)
**Problem**
- Error occurred when adding a new person, due to an error in a back-end script.
**Solution**
- Ensure that when people are added, no errors are returned, by fixing the script.
#### Country selector default to SA (TP#116648)
**Problem**
- Country selector defaults to SA
**Solution**
- The company codes will now use geolocation to determine the correct company code to select initially depending on your IP address.
- If the location cannot be determined it will currently default to US. This applies to contact details and the next of kin number fields.
#### Able to click the Delete button for an active appointment (TP#116652)
**Problem**
- You can click the delete button next to a person's active appointment and the confirmation modal is displayed.
- There is an error when you continue because this action is not allowed.
**Solution**
- Disable the delete button
#### Surname Filter - UI Improvements (TP#116242)
**Problem**
- When a letter on the Surname filter bar (the left vertical bar with “abc”,”A”, etc) is clicked, then the page filters the People with surnames that start with that letter.
- But, it is not clear enough which letter is clicked
**Solution**
- Highlight the letter more (currently it is only bolded).
- Add a round coloured circle around the letter/ highlighted background
- Show above the People cards (or list):
- Showing People with surnames starting with “G”. Click “abc” to clear.
#### UTC date is displayed for Last Login (TP#116745)
**Problem**
- When using the card view on People Management and clicking on a person's card, a preview displayd of the person's details.
- On this modal the person's last successful login date is displayed.
- Please note that this date is displayed as UTC, meaning it is 2 hours behind SA time.
- Please ensure that the UTC is converted to local time.
**Solution**
- Fix more places where ToUniversalTime() is incorrectly used.
---
### Performance Management
#### Values & Behaviours section weights stay red after entering them manually (TP#113304)
**Problem**
- There was 1 issue on the react state when the sections and items are added causing it to add some sections in duplicate to the state.
- This had the effect of removing incorrect items from the state and section items disappearing from the incorrect sections.
- Also, this leads to the invalid weight calculation to be incorrect.
**Solution**
- Fixed the problem with the duplicate sections being added to the state which also corrected the weight validation.
#### Prevent Rate button text from overflowing (TP#116231)
**Problem**
- On certain resolutions, the text on the rating button will overflow onto a second line when the columns are too narrow.
**Solution**
- Set it so the Rate buttons never wrap, meaning it will show a scrollbar if the resolution gets too small
#### Styling and alignment on rating modal (TP112866)
**Problem**
- Rating box styling is not great when all 3 are displayed
**Solution**
- Set minimum width and also make it wrap better when text is long
#### Sort order Templates (TP#116437)
**Problem**
- There is no sorting order when creating an agreement from a Template
**Solution**
- Added alphabetical sorting order
#### New Feature: Move Contracts Between Review Setups (TP#115509)
- Add a new vertical pill for Move Agreements on the Bulk Actions
- The From Review Setup should have
- All review setups
- Unallocated agreements
- All linked review setups individually
- The To Review Setups have the People Group as well
- Search on
- Person Name
- Person Surname
- Person Username
- Performance Manager Name
- Performance Manager Surname
- Performance Manager Username
- Position
- Grey out the checkbox in the list when
- The person is not part of a Custom People Group
- The person has no agreement
- Add tooltips (see mock-up)
- When selecting the Move Agreements button, a confirmation modal opens
- Please provide a reason is a required field
- When the Move Agreements button is selected
- Add the person on the Custom People Group of the selected To Review Setup
- Move the agreement (as is) to the To Review Setup
- After moving the people, show a snack message to confirm the move
- Move the Bulk Action Logs last
- Add the entry for the Move Agreements
- Show the From and To Review Setups
---
### Ruleset Management
#### Tenant users cannot update their ID Numbers (TP#112761)
**Problem**
- The new tenant users are created using only the email address specified while creating the tenant, this means that this user has no Password or ID number assigned.
- This means that the user cannot log in or change their password.
**Solution**
- When creating a new Tenant / Create from Blank or Create from R1
- Do not copy the MFA settings
- Always use *Sent OTP via Email* option
- When copying from any other Ruleset (excl R1)
- Copy the MFA settings as configured on the copy from a ruleset
---
### Competency Analysis
#### Terminated Employees appear on the My Team List (TP#116615)
**Problem**
- The system displayed terminated Employees on the My Team Tab for the Manager to complete the Competency Analysis
**Solution**
- Exclude terminated users
---
### Master Data
#### Section Items: Add the ability to filter on "Type" (TP#87260)
**Problem**
- The Section Items Master Data now contains all master data for all the PM sections, making it very difficult to work with.
- Add a filter to the search bar to filter on the Section Type.
**Solution**
- Added section type global filter for the Performance Management Section Items on Master Data
---
### Org Chart
#### The Org Chart must open from the logged-in user’s point and down (TP#116400)
**Problem**
- The system opens a new window and Displays the Org Chart from the Top Level
**Solution**
- Display the OrgChart from the Logged in User. So the logged-in user must be the parent node.
---
### System Access
#### Signify cannot log in on R1 because of no appointments and error message is incorrect (TP#116636)
**Problem**
- Cannot log in to the system.
- When resetting the password, it still does not allow the user to log in.
- The error message is also incorrect.
- It states that the Username and Password combination is incorrect.
**Solution**
- A change has been made to the check if a user is active. A user is not active when:
- The user has no appointment
- The user's latest appointment has been terminated
- The user has been disabled
The message on the standard login and external login has been updated and will now display.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-07/sANjbw63vlke1Ktj-image.png)
---
### SigniChat
#### Failed Group Chat Creation Makes Group Chat Creation Interface Persistent when Chat module is opened (TP#116201)
**Problem**
- When New Group Creation fails it persistently displays the Group Creation Screen when clicking on the Chat Icon.
**Solution**
- When the group creation fails, reset the display to show the chats and not the creation page
#### Sent Attachments do not Automatically Refresh the Chat (TP#116183)
**Problem**
- When Attachments are sent, the message does not refresh automatically on the other user's side.
- Manual Refresh is required to trigger the message sent (opening and closing chat again or sending another message will manually trigger).
**Solution**
- When Attachments are sent, the message refreshes automatically on the other user's side.
#### The SigniChat modal cuts off
**Problem**
- The modal cuts off at the top
**Solution**
- Gave SigniChat component a smaller fixed height
---
### All Services
#### Improve error messages (TP#113747)
**Problem**
- There are a lot of generic error messages across domains
**Solution**
- Handle domain exception with a specific code and the exception itself returns the key for the translation of the exception.
- When the code and key are available in the exception it should be used to display the error otherwise it shows the generic error.
---
### HR Processes
#### New Feature: Ability to cancel a submitted request (TP#116470)
**Problem**
- When submitting an HR Request, there is no ability to Cancel it
**Solution**
- When a request is submitted and the request is still in the **My Open Requests** section, this request should have the functionality to be cancelled
- When the **Cancel Request** button has been selected, a cancel confirmation should display where you must add the reason
- When the request has been cancelled, it moves to **Historical Request**
- Instead of submitting, it should show *cancelled* with the date and time
- **Translations** should be added for the cancel functionality
#### Search is applicable only to the 1st tab (TP#116448)
**Problem**
- When you are on the HR Processes tab, and you search, it seems it searches on exports which is the first tab
**Solution**
- Focus the global search on the current tab
---
### New Functionality: Support User
#### Add a Support User for specific Rulesets (TP#115605)
- Support Users can be added and access is granted to All Rulesets or specific rulesets
- When the Access to all Rulesets has been selected, the dropdown is disabled
- Use the select2 - Multi-select
- People can be removed
- When the modal is saved, and the user clicks on the + Support User button again, the previously saved users should be displayed and can be edited
#### Enable Support for all Support Users linked to the Ruleset, so that the support user can log in on behalf of this person (TP#115606)
- Under the Actions menu, a new option should be available to Allow Support for the person whose profile is viewed
- When selected, a modal opens where the date is to be specified
- Default is 2 days from today
- User can extend the date
- When the date is reached, the Support User cannot login on behalf anymore
#### See when a Support User logged in (TP#115607)
- When a support user logs in, it should be displayed on the person's My Sign-ins
- Support and the Support User's email address should be shown
#### Log into a Ruleset on behalf of a person (TP#115611)
- A separate URL for the support login is required
- When clicking on this URL, the user needs to add the Username of the on behalf person and the Reason for support
- These are required fields
- When clicking the Microsoft login, the email address is verified against the allowed support users (Technical part)
- An option to go to the normal login page of this Ruleset needs to be available
- When selected, the user is navigated to the login page
- Only MS Accounts are allowed
#### The API User's password should not expire (TP#115664)
- In the standard login method change the check that determines if a user is active to ignore password expiry and appointment information if the user type is either API or Support
- When creating a Ruleset, add the Signify Support User as well
---
# Version 9.1.98 (1 July 2024)
### Ruleset Setup | Dashboard Widgets
#### Dashboard Widget Translations (#114923)
**Problem**
- The translation button overlapped the widget card
**Solution**
- Move the translation button underneath the Name
---
### People Management
#### Ensure that when saving a new user transgression, that the form is properly validated (#115155)
**Problem**
- The validation error message did not display correctly as in other places in the system
**Solution**
- Ensure that validation error messages work the same as other places in the system
---
### Performance Management
#### The popover for employee and manager comments is not displayed during the check-in phase (#116468)
**Problem**
- When the manager views the Check-in employee comment, they cannot see the cut-off text
**Solution**
- The relevant comment is displayed on the contract correctly (Objective Settings comment, Last Check In Comment, or Rating Comment)
- The popover is displayed for that comment when the comment exceeds the standard textbox display length (80 characters)
- If the comment is shorter no popover displays
- When clicking on the KPI item the relevant comments are displayed (With the exception being Check-Ins see below)
- The Objective Settings comments and the historical check-ins should be displayed for check-ins. The actual comment inputs are empty
- Currently, during Check-Ins the user can only see the opposite person's comments on the contract display (via the PopOver) not on the modal
- The modal only shows the historical comments for that user (Employee or Manager) and the Objective Settings comments (if any)
#### When selecting rating the entire area is not clickable (#116414)
**Problem**
- When doing a rating, the entire row is not clickable
**Solution**
- Ensure the entire row is clickable
#### Copy my ratings to the final rating not working when impersonating (#116412)
**Problem**
- When impersonating a person, the copy of the Manager's rating did not work
**Solution**
- Resolved the issue by allowing a person who impersonated a manager to copy the ratings
# Version 9.1.97 (1 July 2024)
### Performance Management
#### PM dashboard - Resolve the large amount of unnecessary HTTP requests that are made on the dashboard (#116126)
**Problem**
- Unnecessary HTTP requests are made on the dashboard
**Solution**
- Move templates pull for review setup to dashboard load and send data to the modals.
- Move the user contract previous and subs load to only happen when the modal is opened.
---
### System Access
#### Updates to the Forget Password Login (#115694)
1\. After forgot password has been selected, the same password is used as the previous one:
- - Change the message to:
- ”This Password has been used already and you cannot reuse Passwords. Please select a different Password.”
2\. When the password and confirmation password do not match, show the text in white and bold instead of red.
3\. Show a masked email address in the message to which the OTP was sent.
---
### Languages
#### System menu Translations (#114922)
- Change the menu heading text box to read-only
- Store the translation key for the menu in the DB
- Update ProductURL with the name as the translation key
- Display the translation for the key if found.
- Add a button next to the heading text box “Translate”
- When clicking the button opens a new tab and loads the language tab for the current active culture e.g. en-Us
- On Languages| Culture | Global
- Add a new section called System Menu with a field for each system menu.
- If the user changes the translation for the system menu where the translation is used, it will reflect that value.
- The system menu cache will need to be busted when updating the translations of the system menu section.
---
### Ruleset Management
#### Additional services access secret error occurred (TP#116387)
- Add Tenant admin and ruleset admin global role to the CreateLegacyIntegrationClient request
---
### Login | Translations
#### Add a new Languages dropdown on the login page (TP#114924)
- Add a drop-down in the top right corner of the page with the published languages for the current theme’s login
- The preferred language forms the culture cookie if available must be set
- The list of active languages must be cached per Ruleset.
- After logging in, see if the user selected a preferred language (that would have been stored in the database). If so, change the language to this value and update the cookie accordingly.
- On the home controller before redirecting into the module confirm that the preferred language in the cookie is the same as the session cache of user details
# Version 9.1.96 (18 June 2024)
### Performance Management
#### Fix impersonation link resulting in a 404 not found (#116317)
**Problem**
- Impersonation led to a 404 - not found page.
**Solution**
- Ensure impersonation does not lead to a 404 not found page.
# Version 9.1.95 (17 June 2024)
### Master Data
#### Translation resources displayed on the selection modal (#116061)
**Problem**
- Translation resources are shown on the master data modal
**Solution**
- The name of the masterData.json file is case-sensitive on production and thus the translation could not be found.
# Version 9.1.94 (17 June 2024)
### Performance Management
#### Translation resource name displayed on Confirm button (#115784)
**Problem**
- Incorrect translation resource used.
**Solution**
- Use the correct translation resource.
#### Incorrect Styling when employee views agreements when Manager column is visible (#115869)
**Problem**
- Misaligned columns when employee views contract during Final Rating and setting to show final ratings after manager rating is on.
**Solution**
- Fixed the issue where if no rating is yet available it did not print anything when the user views the contract.
- For a manager, it displays the rate button.
- Display an empty cell for an employee if no rating yet.
#### Incorrect tooltip on Check-Ins button (#113994)
**Problem**
- When the check-ins phase has expired (passed the end date) a 'Completed' tooltip is shown.
**Solution**
- Changed the tooltip to show the Phase not active anymore tooltip.
- Seems at one point it used to display Phase Completed but that translation has been reused elsewhere and modified.
---
### Ruleset Management
#### Ruleset cannot be created (#89623)
**Problem**
- Cannot create a new Ruleset
**Solution**
- Fix ruleset creation bug, which was caused due to a duplicate API user being created
#### Save button on the Integrations page is unresponsive (#116252)
**Problem**
- Could not click on the footer buttons as they disabled.
**Solution**
- Ensure that the buttons are clickable
---
### Content Management
#### Cannot upload document (#116209)
**Problem**
The problem with the upload was caused by the .PDF extension that has been typed in capital letters rather than the standard lowercase .pdf. This caused the content management service to reject the file with the reason invalid file type.
**Solution**
Allow files to be uploaded regardless of the casing of their file types as long as it is in the supported list. e.g. .PDF and .pdf will now be allowed as uploads.
---
### People Management
#### Performance Improvements on People Management (#116186)
**Problem**
When the all-people group is being used, the system is very slow.
**Solution**
A change to the calculation of people groups and how it is returned to the people dashboard has been made
---
### HR Processes
#### Approved requests do not move to historic requests (#116204)
**Problem**
- A completed request does not move to Historical Requests
**Solution**
- Ensure the last person's approval trigger the request as complete and move the request to the Historical Requests
---
# Version 9.1.93 (17 June 2024)
### Performance Management
#### Check-in comment does not immediately display on the table after adding/updating (#116059)
**Problem**
- When adding/updating a check-in comment the comment does not reflect immediately on the contract and needs to be refreshed.
**Solution**
- Update contract check in item state after Comment saved to make it refresh the contract item.
---
### Ruleset Management | Payroll Integrations
#### Changed logic regarding the display load more button (#115193)
**Problem**
- The Load More link is always displayed
**Solution**
- Changed the logic to show when more than 10 records are available
---
### People Management
#### The "Link to Payroll Connector" field is displayed when there are no connectors (#115674)
**Problem**
- The Link to Payroll Connector field should not be available when there are no Payroll Connectors configured
**Solution**
- Hide the field when there are no Payroll Connectors
---
### HR Processes
#### Various fixes include:
- Cannot disable the Line Manager Reporting Line
- Make sure all Reporting Lines are shown on a person's profile
- Standardise validation messages
- Styling fixes
- Duplicate Reporting Lines fixed
- Correct the dropdown field that closes the modal
- Fix the sync call for the reporting line sync
# Version 9.1.92 (17 June 2024)
### Performance Management
#### Review Years ordering (#113799)
Add the functionality to order the Review Years.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/Plx9Xuetth3t6nby-image.png)
On the Performance Management Dashboard, the order of the Review Years will also display
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/SfRWsX51nc5sVHdk-image.png)
#### Setting to hide the Manager Rating (#114329)
Add a new setting that will allow the Manager Rating column to be hidden
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/nYBlq12yZ0zcRH9y-image.png)
On the agreement, the Manager Rating column is not available
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/rAg8ujthXRZD8mQy-image.png)
#### Section weighting is not clear when in rating phase (#115581)
**Problem**
- It is not clear what the section weights are in the ratings phase
**Solution**
- Make the Section Weights colour the same as the Perspective and KPA colours
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/9ZJvS09JMUEP7XOc-image.png)
#### Objective Setting Comments to be available on the Check-Ins (#115724)
**Problem**
- The Objective Setting Comments are not available when doing the Check-ins
**Solution**
- Make the modal bigger
- Add the Objective Setting Comments to the Check-Ins
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/vydPMEfrNVFTNwoM-image.png)
#### Employees cannot submit Objectives (#116010)
**Problem**
- Error when an employee wants to submit the Objective Setting
**Solution**
- Use reporting line service when checking if a user has a PM manager, instead of fields in the materialized table
---
### People Management
#### Send Welcome Notifications in bulk (#115649)
**Problem**
- As a people administrator, a feature is required to send welcome emails to multiple users
**Solution**
- Add an action to the quick actions of the people management dashboard
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/0ATDGcUpmZWDZv1Y-image.png)
- The option opens a modal
- Send bulk welcome emails
- Add an input to send to everyone who started after a specific date
- Add a switch that is active by default, only people who have not received a notification yet
- Button Send
- When clicked the account service will retrieve a list of users with appointment start dates after the selected date and if they have received a notification
- A notification is generated for each of the users that meets the requirement
- When the notification is generated update the WelcomeNotificationSentDate for the user
- The option is only visible to the people management administrator
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/Ki0D6trUOvXNDOK1-image.png)
---
### Main Dashboard
#### Line Manager not showing on the My Colleagues widget (#115885)
**Problem**
- The widget displays that the user does not have a manager
**Solution**
- When it retrieves the information for the MyColleagues widget it returns:
- User's Line Manager
- User's subordinates where the user is Line Manager
- User's details where user has any manager
- The problem comes in when the user's PM and LM differ and when selecting the user's details it returns both PM and LM but the PM is the first record
- A fix in code review for this to filter the 3rd step to only return user details where the user has Line Manager which should resolve this.
---
### System Access
#### Add functionality to focus on the Multi-factor Confirmation Modals (#115695)
**Problem**
- The user should click in the field before typing
**Solution**
- Focus is set in the field and the user can start typing immediately
---
### New Functionality
#### Main Dashboard: Add a link to view OrgChart (#115103)
- A new accordion under the Ruleset Setup | Integrations tab has been added to add the OrgChart URL
- When the field is empty, the View As Chart button should not be available on the Span of Control / More Insights page
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/1rUWdXWbMZ7UNZFV-image.png)
- On the Main Dashboard, when you select More Insights, the View as Chart button will be enabled
- Translations are added to rename or translate the button
---
#### HR Processes (with BOT) (#101129)
Functionality has been created to integrate with the SigniBot and enable adding a request on HR Processes.
***Process Flows***
Navigation: *People Management | Product Setup | HR Processes*
- Process flows are added and used with the bot to identify which process to add.
- Approval levels are added for the process flow - reporting line or position-type levels
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/eWiA3gsE67hUsqXH-image.png)
*SigniBot, Main Dashboard and Inbox*
When adding the request using the bot, a request is created in the User's Inbox and accessed through the HR Processes Widget on the Main Dashboard.
*SigniBot*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/rruiIAROqarAKFHA-image.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/SJoLzdlZSgzCbd9f-image.png)
*Main Dashboard*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/7sPuHRukl6lbFO2l-image.png)
*Inbox*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/zGlvsbLQLFfME052-image.png)
---
#### SigniChat (#74529)
Functionality has been added to send and receive messages via SigniChat.
- You can send individual or group messages if you can access People Groups.
- The chat can be enabled per product.
Navigation: *Ruleset Setup | Product Setup*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/QOLhOPawwv4Oul8V-image.png)
- When SigniChat is enabled for a Product, it will be visible on the bottom-right of the screen:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/ufHQS73sIOD1tw2c-image.png)
When the New Chat option is selected, you select a person to chat with.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/5oW14CD56yrlQMZ3-image.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/TZjZZAJ7yEqcPsFm-image.png)
When you have People Group Access, you can create Group Chats
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/4smylO2J182JZT6H-image.png)
- Any member can send a message
- You can view the member
- You can deactivate the chat
---
#### PaySpace API Integration (#104974)
Details coming soon
# Version 9.1.91 (3 June 2024)
### People Management
#### Use active appointments when showing My Department users (#103485)
**Problem**
- The calls fail when retrieving department users and the logged-in user has multiple appointment records
**Solution**
- Ensured that only the logged-in user's active appointment was retrieved when retrieving department users
#### Upload By should be Name and Surname, not Username (#115668)
**Problem**
- When uploading documents, the Uploaded By shows the person's Username
**Solution**
- Added the person's Name & Surname instead of the Username in the Upload By column
---
### Job Profiler
#### Changes to export of job profiles via the API with master data names (#115825)
**Problem**
- The Job Profiles Export via the API did not include Occupational Level
**Solution**
- Include the Occupational Level Master Data name in the API
# Version 9.1.90 (3 June 2024)
### Job Profiler
#### Publish Job Profiles after employee data import (#115740)
**Problem**
- In some instances when importing users, the new job profiles were not published.
**Solution**
- Ensure that when importing, new job profiles are automatically published.
---
### Help Files
#### Implement pages that have not yet been added (#115698)
**Problem**
- Some pages did not have the Help Files yet
**Solution**
- Implement Help Files on all pages
---
### Performance Management
#### Copy Manager Ratings to the Final Ratings column (#111929)
New functionality was added to copy the Manager Rating to the Final Ratings column.
Select the *Copy my ratings to the Final Rating* button
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/wdmdS3ZHqMaKYLYn-image.png)
When confirming the message, the Final Rating column will be populated with the same score as the Manager Rating column. The ratings can be changed if required.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/gsAwXCNvbm6rawST-image.png)
#### Bulk Actions delete search not working (#100782)
**Problem**
- The Search button on Bulk Delete Agreements stops working if you go to Create and then back to the delete page.
**Solution**
- Search control was getting recreated and the click event was lost.
- Changed slightly to apply different classes to the button depending on the Delete / Create page and then bind the search event to both relevant classes.
#### Show more characters on the comments pop-up (#115651)
**Problem**
- Sometimes popovers did not display for comments (manager and user, but specifically manager in this case.).
- This happened because the text shown in the table with ellipses used the textBoxMaxDisplay, which is 80 characters.
- But the popover which was then used, used the textAreaMaxDisplay, which is 200 characters.
- This meant that for any comment between 80 and 200 characters, the popover will not display and the text in the table is capped at 80 characters, so the user cannot see what the full comment is - if between that character range.
**Solution**
- Make sure that the popover also uses the textBoxMaxDisplay, when deciding whether to display.
---
# Version 9.1.89 (3 June 2024)
### Help Files
#### Oversized images overlap outside the Help File Pop-up modal (#115092)
**Problem**
- The system displays the Help file model with the Oversized Image overlapping on the outside
**Solution**
- Auto Fit to size the image inside the HTML Editor based on the Limited size of the Pop-up modal
---
### Performance Management
#### Make the rating button more intuitive (#111934)
**Problem**
- It is not obvious when looking at the contract in the rating phase how to start the rating
**Solution**
- Instead of the Rating Icon, a button has been added in the rating column
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/g2FIZOodAKaz1M2t-image.png)
- After the KPI has been rated, the score is displayed and a change button is added underneath the score
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/42ODWdVPWluiV0qj-image.png)
- The change button is hidden when the ratings have been submitted
#### Add the invalid weights to the left menu item as well (#112426)
**Problem**
- It isn't easy to see where items do not add to 100%
**Solution**
- When a section weight does not have KPA's or KPI's or when the Perspective and/or KPA and/or KPI does not sum to 100
- Keep the flashing % on the right, but also indicate this on the left in the scroll spy menu
- Extend the message:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/vLfmsdQkPk9EEceI-image.png)
Item weights must sum to 100. All item weights that do not sum to 100 will be indicated on the left menu.
#### Continue to rate without submitting when the other party has not submitted the objectives (#111933)
**Problem**
- When a manager or person has completed the Objective Setting, the ratings cannot be completed without the other party submitting the objectives first
**Solution**
- Enable the person who has submitted the objectives, to continue with the ratings
- The ratings cannot be submitted before the other party has submitted the objectives first
---
### Report Builder
#### Unable to add value in a sub report (#115591)
**Problem**
- The problem was a change made on the nav links that stopped this pivot value dropdown from working.
**Solution**
- Resolved the issue by making the classes it uses unique so it does not clash with the nav-links.
---
### People Management
#### Labour Relations: Disciplinary Actions(#105100)
New functionality is available to add a transgression on Labour Relations.
***People Management | Product Setup***
- To enable the Disciplinary Actions menu, this needs to be activated under the People Management settings
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/yM61GI8JP1dbUXhn-image.png)
***Master Data***
- Master Data needs to be added for
- Disciplinary Action Outcomes
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/HiBmATijwThC8MeG-image.png)
- - Disciplinary Transgressions
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/MPV9II01dm7sIGu3-image.png)
- Default Master Data is available for both
***People Management | Edit Profile***
- Under Labour Relations | Disciplinary Actions
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/X2yH9XDnSyygeHtn-image.png)
- A new Transgression can be added.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/8n4kgSWKvOHteXn2-image.png)
- Documents can be viewed and uploaded
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-06/UtVTLhK58oMzt3GZ-image.png)
# Version 9.1.88 (20 May 2024)
### Notifications
#### Prevent overriding notifications data that has changed on other rulesets (#115416)
*Problem*
- The notifications have been restored to default and not showing the custom information
*Solution*
- The ruleset propagation of template content from R1 has been disabled
- Script correction for the syncing of content when it has not changed
---
### Imports
#### Cannot import PM Template (#115150)
*Problem*
- The current problem is that this causes the message to only show the part after the : and not the whole message.
*Solution*
- The change should allow the error messages for the template import to show in full when the template name has a : in it.
---
### Performance Management
#### No KPIs are shown in the list when Select from library (#115120)
*Problem*
- No KPIs are shown in the list when Select from library
*Solution*
- Changed the ordering of master data items when using cursor-based paging to use the display order when ordering items rather than the primary key
---
# Version 9.1.87 (20 May 2024)
### PaySpace Integration
#### View people linked to a Payroll connector (#112547)
- When people have been linked to a Payroll Connector, a menu is available to see the linked people
#### System to push the data to PaySpace (#113468)
- Added the functionality to push all data for users to PaySpace
---
### Competency Analysis
#### Incorrect tooltip when rating as Manager (#112812)
*Problem*
- Incorrect message displayed for Manager when rating
*Solution*
- Corrected the message to display as Assess Person
#### An inactive proficiency level is displayed and can be selected when Rating (#112808)
*Problem*
- An inactive proficiency level is displayed on the ratings
*Solution*
- When the proficiency level is inactive, it does not display anymore
#### Able to rate on levels that have not been mapped to proficiency (#112809)
*Problem*
- Managers / Employees can rate competency on all proficiency levels even if the level has not been mapped.
*Solution*
- Changed so that one can rate only on proficiency levels that have been mapped to the competency
####
Able to select Inactive competency as Job Profile Requirement (#112803)
*Problem*
- Able to link inactive competency as a Job Profile requirement
*Solution*
- Exclude the ability to link inactive competency to Job Profile as a requirement
#### Add detail to Category when collapsed after rating (#112814)
*Problem*
- After completing all the ratings for the competencies (with some not meeting required) the exclamation mark icon still shows but there is no face value indication of what the issue is
- Only on hovering over the icon is additional information displayed
*Solution*
- Add subtext to indicate that some requirements are not met similar to the tooltip
#### Make the Graph fit on the pop-up window without the scroll functionality (#108652)
*Problem*
- The graph opens with the scrollbar
*Solution*
- Open the graph when clicking on it
#### Add a text to show "Additional Competency" (#108654)
*Problem*
- When a user Adds a Competency front-end, the system does not indicate that it is an Additional Competency from the Category list of Competencies
*Solution*
- Added text in bracket next to the Competency Title (Additional)
#### Able to set Job Profiler competency required level to unmapped proficiency level (#112811)
*Problem*
- Able to set a Required Proficiency Level for Job Competency Requirement that is not mapped.
*Solution*
- Disable the ability to select Proficiency Levels that have been mapped to Competency
---
### Organisational Structure
####
Add the treeview to a white section (#113555)
*Problem*
- The treeview is not on a white background
*Solution*
- Changed the background for the treeview
####
#### Incorrect Line Manager details are displayed when moving Positions (#113982)
*Problem*
- The system displays the incorrect Line Manager Detail. The Manager's details are a duplicate of the user's information.
*Solution*
- Display the Correct details of the Line Manager as per the Reporting Lines
####
#### The system displays an Incorrect Vacancy count on the Org Node (#113988)
*Problem*
- On the move positions screen within the org structure, when "show vacant" is enabled job profiles that are unpublished are included.
*Solution*
- Only include where job profiles are published
---
### People Management
#### The 'Edit’ tooltip is not displayed when hovering over Custom people groups (#112966)
*Problem*
- No tooltip is displayed when hovering over a custom people group.
*Solution*
- Display a tooltip when hovering over a custom people group, which says "Edit".
#### Remove Time Component from search (#110516)
*Problem*
- Date pickers on PM search had time as well.
*Solution*
- Removed the time section in the pickers
#### Filter not working correctly on the Dashboard (#113483)
- The search term is saved in local storage for people management.
- This means that if you navigate away from this page and return later it will reapply the search term from local storage of the browser.
- When clearing the filter, the search is cleared when navigating away from the dashboard and coming back.
#### Show hand cursor when hovering over the delete icon (#112964)
*Problem*
- Normal mouse is shown when hovering over the delete icon.
*Solution*
- Show the hand cursor when hovering over the delete icon.
#### Profile Banner not displaying correctly with a long username (#113491)
*Problem*
- Profile Banner not displaying correctly with a long username
*Solution*
- Changed margins and text size on the profile banner
####
#### The administrator can see "Additional Self-Service Items" for other employees (#111698)
*Problem*
- When a people administrator views a subordinate's people profile, the "Additional Self Service" link is displayed.
*Solution*
- Display option only for the logged-in user
#### Correct the tooltips on the pills of the Dashboard (#114636)
*Problem*
- When hovering over the button group, the tooltips are incorrect.
*Solution*
- Update the tooltips to display the correct text.
####
Load More option should be centered on the page instead of on the right (#113515)
*Problem*
- The Load More option should be centered on the page instead of on the right.
- The button should have an icon and a tooltip
*Solution*
- Added the button in the center and changed to a floating button with a chevron-down icon and a "Load more" tooltip
#### Error when terminating a person from the dashboard without filling in the fields (#113006)
*Problem*
- On the termination modal the user was not notified when the form is not completed
*Solution*
- Added snack messages to indicate which controls are empty
- Validation messages are now being displayed when you do not select a last day or a reason
#### Search own user (#114232)
*Problem*
- Logged-in users with the Manage own user access role must be able to view their profile on the people management dashboard.
*Solution*
- Added functionality to show the user's profile if the user can manage their user access
---
### Tenant Management
#### Make the Expiry Date clickable so that it can be updated (#114490)
*Problem*
- Make the Expiry Date clickable in the summary.
*Solution*
- Added an icon next to the expiry date that opens the update expiry date modal.
#### Icon to be made available from Tenant List which will allow Tenant Admin to update Expiry Date without many clicks (#113443)
*Problem*
- Icon to be made available from Tenant List which will allow Tenant Admin to update Expiry Date.
*Solution*
- Added icon next to subscription expiry date that allows user to update the expiry date
#### Add a filter option for Expiry Date (#114493)
*Problem*
- Add a filter option for the Subscription Expiry Date.
- When a number is inserted, for example, 30 days, show all records with expiry dates within the next 30 days (today + 30)
*Solution*
- Implemented a numeric filter to specify within how many days the subscription expiry date must be.
#### Make Subscription tab default (#114546)
*Problem*
- Currently, the Details tab is the default when editing a tenant.
- Change this so that the Subscription tab is the default.
*Solution*
- Made the Subscriptions tab the default when editing a tenant
#### Clicking the reset button on the filter panel does not clear set filtering (#114603)
*Problem*
- Reset button does nothing.
*Solution*
- Added functionality to clear search criteria and submit form on reset button.
#### Add an Expiry tag on subscriptions that are one month within their expiry date (#113442)
*Problem*
- Any Tenant whose expiry date is within a month should show an Expiry indicator
*Solution*
- Highlight the expiry date with a tooltip for Expiring Soon
---
### Job Profiler
#### Duplicated Org Node appears when linking a Job Position to an Org (#112171)
*Problem*
- Duplicate org nodes displayed on the org treeview on models
*Solution*
- Remove duplicates from the org tree view on modals.
#### Not clear on which Position Competency Requirement is being added (#112806)
*Problem*
- On the Position Requirements screen it is not visible on which Position a requirement is added, unless navigating back to the General tab
*Solution*
- Add the Job Title and the Position Title to the breadcrumbs in the header
#### Show the Job Title on hover when it differs from the Position Title (#114207)
*Problem*
- When a position differs from the job, then this is not shown
*Solution*
- Show the job title on hover on the My Competencies and My Team tabs
####
Able to add already added competency to user profile (#112816)
*Problem*
- Able to add competency to the user’s profile that has already been added
*Solution*
- Should only be able to add competencies that are not yet being measured/assessed
---
### Ruleset Setup
#### System Access: Spelling error on tooltip (#110704)
*Problem*
- When hovering over the 'Reset Access Secret used by Additional Services' button, the text tooltip displayed contains a spelling error.
*Solution*
- Correction of error
#### Validation messages on required fields to be tweaked (#102780)
*Problem*
- Please separate the words on the field's name on the validation messages underneath the boxes, i.e. 'ContentServerName' should be 'Content Server Name'
*Solution*
- Amend the spacing between the words
#### Themes: Change helper text when uploading images (#114440)
*Problem*
- Change helper text on the theme create/edit page for the images.
*Solution*
- Changed the image size of each helper text underneath the inputs.
- Changed the size of the login page logo to 130px and removed the bottom margin
#### The "I acknowledge" switch does not activate when you click the label (#104540)
*Problem*
- The toggle button on the confirmation modal cannot be switched when you click on the label
*Solution*
- Make the label clickable
#### Remove the tooltip when hovering over a ruleset record (#114442)
*Problem*
- We do not have the "Manage" tooltip anywhere else in the system.
- Please remove the tooltip.
*Solution*
- Removed the "Manage" tooltip from the ruleset setup page.
#### Dashboard Widgets: When changing the layout of the dashboard, and I click preview, the layout is saved (#112819)
*Problem*
- When only previewing the new layout, the layout is saved
*Solution*
- Remove the preview button
#### Add default culture en-UK (#114371)
*Problem*
- Currently, the date displayed in the V8 system is American and this causes the date picker not to work
*Solution*
- Add culture en-UK as default to the system for dates to show 'correctly'.
#### Pinned System Menu collapses when clicking on the People Management item on the menu (#100810)
*Problem*
- When the system menu is pinned and clicking on the People Management menu, the main menu is collapsed
*Solution*
- Keep the menu pinned
#### Remove the 'back' button on the first page (#110572)
*Problem*
- The Back button on the first page is not required
*Solution*
- Remove the button on the Ruleset Setup list page
#### The system displays a blank Disclaimer screen (#111274)
*Problem*
- Text not showing
*Solution*
- Added an option for the textbox and the text to change color based on the "dark" option for the theme.
This ensures the text will always be visible.
#### Default Badges did not copy when the new Tenant and Ruleset was created (#114454)
*Problem*
- When creating a new tenant, the default badges are not created.
- Also found an issue when creating only a new ruleset.
*Solution*
- Implemented changes to create default badges when a new tenant is created and a new ruleset is created.
---
### Performance Management
#### Button Styling (#114654)
*Problem*
- The standard for all buttons is that the text should be in uppercase.
- This was not the case.
*Solution*
- Changed all button text to uppercase
#### No plural for "Objective Setting" in Translations (#107577)
*Problem*
- There was no plural translation for the Objective Setting.
*Solution*
- Added the plural migration.
#### Change the Target Audience button to a secondary button (#114671)
*Problem*
- The View Target Audience button should be a secondary button
*Solution*
- Changed the styling of the button
#### Display the Review Setup description when you hover over the Setup Name (#113686)
*Problem*
- The description fields of Review Setups can currently only be seen by administrators who have access to the Review Setups admin pages.
The description field can be used to provide valuable information about the setup, which can help managers as well.
*Solution*
- Added the Review Setup description on a tooltip when hovering over the name
#### There is no Cancel or Back button when adding a new Review Setup (#114659)
*Problem*
- On performance management new review setup there is no cancel or back button
*Solution*
- Added the back button in the header and cancel in the footer
#### Modal headings should all be in caps (#114655)
*Problem*
- All Performance modal headings should be in uppercase.
*Solution*
- Added class to all modals to change to uppercase
#### Able to add an empty Perspective (#113017)
*Problem*
- An empty perspective could be added.
*Solution*
- Added validation to prevent this.
#### Admin – Review Setups & Review Years: Add the table in a white card (#114660)
*Problem*
- Product setup for performance management tables was not in the cards.
*Solution*
- Added the tables to cards
#### Add a tooltip on the KPA Document icon (#108209)
*Problem*
- There is no tooltip shown when you hover over the documents icon next to KPA
*Solution*
- Added tooltips for viewing document icons
---
### Master Data
#### Move buttons to the footer (#114564)
*Problem*
- Move the Primary and Secondary buttons to the footer
*Solution*
- Moved the add and setup buttons to the footer when editing the master data
#### Cannot edit the item after reordering (#113818)
*Problem*
- When you are in any Master Data category, if you sort the items in the list, you will not be able to edit any item in the list, it will always display the "Add New Item" modal until you reload the page.
*Solution*
- Fixed the URL after sorting items
#### Performance Section Items: Remove the last occurrence of "Item" from the title (#109286)
*Problem*
- When adding a new PM Section Item, the heading on the modal shows: "Add new Performance Management Section Item Item".
*Solution*
- If a PM Section Item is added, remove the last occurrence of "Item" from the modal heading
#### Performance Management Section Items: Add the ability to filter on "Type" (#87260)
*Problem*
- The Section Items Master Data now contains all master data for all the PM sections making it very difficult to work with.
- Add a filter to the search bar where you can filter on the Section Type.
*Solution*
- Added section type global filter for the Performance Management Section Items on Master Data
#### Make the heading all CAPS and remove the icon on the Save button (#114560)
*Problem*
- Make the Heading all CAPS
- Remove the icon on the save button
*Solution*
- Made the headings all caps and removed the icon on the save button, on both the edit and delete modal, of the master data page
#### Performance Management Section Items: Add the "Save add new" option to Section Items Master Data (#87266)
*Problem*
No "Save add new" option is available for the Section Items Master Data.
*Solution*
- Implemented a "Save add new" button to the add modal of all master data items.
-
---
### Notifications
#### Test Email: People List has no sample data (#110569)
*Problem*
- The PeoplesList field placeholder has no sample data.
*Solution*
- Corrected the code to show the sample data on the email
#### Multiple emails were sent out when Cancel was clicked before going ahead and resetting the password (#111460)
*Problem*
- Multiple click handlers are attached to the send email button each time modal is open.
*Solution*
- Cleared handlers before attaching a new one.
---
### Imports
#### People Management Import: Error when importing a string resembling an invalid email address (#113367)
*Problem*
- Data in the import file is not properly trimmed before being imported.
*Solution*
- Trim data before import.
---
### Main Dashboard
#### Keep uploaded images (#113512)
*Problem*
- When uploading your own images and unselecting them, then they cannot be selected the next time you want to change banners.
*Solution*
- Keep all images that have been uploaded.
####
My Colleagues: When clicking on a person to view the summary, the surname is not displayed (#113547)
*Problem*
- When viewing the same summary on the Main Dashboard, the Surname is excluded.
*Solution*
- Add the Surname on the Dashboard view
---
### Auto-Doc
#### Button styling on the Document Creation page (#114688)
*Problem*
- Please standardise the button styling - there should be a space between the '+' and the 'Template' on the button.
*Solution*
- Added spacing between the icon and the text
---
### Inbox
#### Add 2 additional tabs for Training & Leave Requests (#110847)
*Problem*
- 2 additional tabs are required for Leave and Training requests for Managers to access and approve the requests.
*Solution*
- Tab 1: Training Requests
- When selected, open the V8 page in the frame
- Tab 2: Leave Requests
- When selected, open the V8 page in the frame
---
### People Groups
#### Improve wording of info text on Grouped Conditions (#113013)
*Problem*
- The Grouped Conditions information message is outdated
*Solution*
- All of the following conditions must be met before a person will be included in the People Group, for example:
- If only a Job Title has been added, then all the people appointed in that Job Title will form part of the People Group.
- If only an Organisational Unit has been selected, only people appointed in that Organisational Unit will form part of the People Group.
- If only a Reporting Line Type has been selected, only subordinates reporting to a specified manager for the Reporting Line Type will form part of the People Group.
- If a combination of the above has been selected, people will be included when they are:
- Appointed in the Job Title, AND who are also
- Appointed in the Organisational Unit, AND who are also
- Reporting to the specified manager for the Reporting Line Type
# Version 9.1.86 (6 May 2024)
### Performance Management
#### Employees duplicating on the list when creating agreements in bulk (#114715)
***Problem***
- When using the Bulk Action on Performance Management, a record is created per appointment
***Solution***
- Add a check to ensure that only the latest appointment's record is shown in the list
#### Rework calculations to allow periods to be skipped (#106483)
- Add a Setting to enable/disable excluding review periods
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-05/HpctZhnuRtQGUBbF-image.png)
- Remove the eye icon on the gauge and add an on-click to the gauge
- When hovering over the gauge, a Review Period can be excluded/included
- When clicking on the gauge itself, the agreement is opened
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-05/if4M1GypFaltA1zd-image.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-05/FPM0yh1h8h5NtZwZ-image.png)
- Add a click in the gauge only when an agreement exists
- An agreement can only be accessed in the Overall Summary if the person already has an agreement
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-05/plQmSm53nf6rlGSR-image.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-05/bfg5REhNyOhk5iDK-image.png)
---
### Ruleset Setup | System Menu
#### Add My Worklist to the System Menu to access the V8 page (#112943)
- The My Worklist menu item is now available
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-05/czPibNT7j5k6gXBa-image.png)
---
# Version 9.1.85 (6 May 2024)
### Performance Management
#### Dashboard heading display incorrect (#114618)
- Corrected product translation when using V8 to V9 PM integration
#### Goals import fails due to case-sensitive matches (#114714)
***Problem***
- A case-sensitive check is done on the username
***Solution***
- Change the import to make a case-insensitive check instead
#### Unable to submit the Performance Agreement (#114662)
***Problem***
- The submit button is locked without a reason.
***Solution***
- Add the reason to the message when the Ratings have already been approved and the user may no longer submit to clarify
# Version 9.1.84 (6 May 2024)
### Performance Management
#### Items not copied during ruleset creation (#114306)
***Problem***
- The issue was caused by section items linked to a template being deleted and trying to create a new ruleset from the ruleset with the deleted but linked section items.
***Solution***
- A change has been made to the PM copy process during ruleset creation.
- It will now try to copy the values that do exist and if it no longer exists as a section item it will be skipped.
#### Impersonation did not allow to copy from another person's agreement (#114460)
***Problem***
- When using the impersonation feature on Performance Management, the functionality to copy an agreement from one person to another was not available
***Solution***
- Ensure that when impersonating, you are viewing the contracts from the team members of the person you are impersonating and NOT the team members of the logged-in user (the user currently impersonating).
#### Add an Activities field on KPIs (#111352)
A new field has been added when adding a KPI named Activities.
This field is available:
- When adding a KPI
- On the Agreement when hovering over the label
- When adding a KPI as Master Data
- When creating a template
- When creating a report
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-05/4Ww23PuWfv2VKIw5-image.png)
---
### Help Files
#### Implementing Help File pages per product (#77211)
Help Files are available per product.
Each Administrator for a product can add pages to the ruleset.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-05/AyEVme2xHwREcmec-image.png)
# Version 9.1.83 (22 April 2024)
### Performance Management
#### Inactive library items shows on lists when adding (#114018)
***Problem***
- When the library items are inactive in Master Data, they are shown in the lists when adding a Perspective, KPA or KPI
***Solution***
- Do not show the inactive library items - exclude them from the lists
---
### Report Builder
#### Informational message not translated when landing on the Data Dictionary tab (#111689)
***Problem***
- When accessing the Data Dictionary tab, the information message is not translated
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/rOywUbAGgKgMoYBf-image-1713429564740.png)
***Solution***
- Add translation for the information message to display
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/s68J2j7AoDxjrDZz-image-1713429584624.png)
#### Error when re-importing previously deleted Action Plan Report (#111717)
***Problem***
- If you delete a report and try to import that same report, an error will be thrown, because when it searched for the existing report it did not consider the Deleted flag.
***Solution***
- When retrieving the existing report, check for Deleted and not Deleted.
- This allows the user to import a report when it was previously deleted. If it was deleted, it makes the report active again after the import.
---
### Ruleset Setup | System Menu
#### Add the Moderation menu item (#112916)
***Problem***
- The Moderation menu item is not available in V9
***Solution***
- Add the menu item to be selected from the System Menu tab
- Access the menu and content from the Main Menu
---
# Version 9.1.82 (12 April 2024)
### People Management
#### Enable viewing of terminated people (#114144)
***Problem***
- Unable to access a terminated person's profile
***Solution***
- When accessing terminated users, it will now first use the people linked in the cached people group and if the user is not found, generate the people group as uncached for all people.
- This should then find all the people you will currently see when applying the all filter on the grid view of the people management dashboard.
---
### Performance Management: Import
#### Correct the mapping of weights (#113327)
***Problem***
- All section items are imported with the section weight and not the item weight.
***Solution***
- Update the mapping in the value and behaviour and competencies imports to use the section item weight as supplied by the import sheet.
# Version 9.1.81 (12 April 2024)
### Performance Management: Import
#### Add employee filter on section items (#106742)
- Add filter on items to ensure items are populated for the people it is linked to.
---
### LMS Portal: Discussion Forum
#### Expert assignment cannot be deleted (#114005)
***Problem***
- The system does not allow an Admin to Delete Expert's Assignments.
***Solution***
- Resolved issue to allow the admin to delete an entry
- Introduced COLLATE DATABASE\_DEFAULT statement on temp table's column to fix SQL exception caused by Collation differences from Server and Database.
# Version 9.1.80 (12 April 2024)
### Performance Management Imports
#### Add a check for Perspectives when importing Goals (#113327)
- A check has been added that will validate if perspectives are enabled. If perspectives are set inactive and the import includes perspective data then the record will be invalid.
- Change authorisation to allow anonymous for adhoc completion of imports.
- Correct description filter in values and behaviours.
- Refactor goals import and simplify validation.
#### Corrected the comment issue when importing the Key Competencies (#114085)
- Correct import of comments when creating a new section item. Update display order of section items based on current max order.
- Corrected creation of section items with the same name but different descriptions and updated comments.
#### All KC library items are imported when the agreement has not been created yet (#114088)
***Problem***
- When you import Key competencies for an employee on a year/setup where their agreement has not been started yet, then all the KC library items will be added to the agreement , including the once that you are importing , to the new agreement.
***Solution***
- The default Key Competency items have been removed when creating a blank contract.
#### Implement Competency Import (#111857)
- Create and implement the Competency Import.
- Correct sample file name and import folder, update translation used in behaviours and competency imports.
#### Terminated Managers should prevent a user to submit objectives or ratings (#113183)
***Problem***
- Employees of a manager can still submit objectives and ratings after he is terminated.
- Also, If that manager was logged in at the time of his termination, he will still be able to work on the system normally untill he logs out.
***Solution***
- Bust reporting line cache when updating appointment, adding appointment and when terminating.
---
### Ruleset Management
#### Add system menu for Recruitment (#113493)
- Menu item for Advertised Positions are added
- Administration menu made available as well
#### Make People Group modal larger (#113850)
- Modal is made larger so that the text that does not flow over
---
### People Management
#### When editing appointment org unit, do not pre-load the previous org unit on the org treeview (#114014)
***Problem***
- Cannot select another organisational unit other than the current node the employee is on.
- This view should display all org units in the system to allow me to transfer the employee.
***Solution***
- Show all organisational units when updating the organisational unit for a person.
---
#### Job Profiler Import (#114041)
- Trim org names and codes when importing org units and modify fncCalculateOrgPath so that it displays '&' characters correctly
---
### Report Builder
#### Report only showing certain employees (#113424)
- Exclude archived data source setups from queries.
- On Create Statement do not include joins that have not been selected on Report.
#### Action Plan Report (#113340)
***Problem***
- Priority field is missing from the report
***Solution***
- Included the Priority field in the data fields
---
### Data Warehouse
#### PM Data Warehouse package (#112042)
- Optimise PM DataWarehouse package
#### Improve V8 packages (#113541)
- The latest V8 and V8 DWH SSIS packages have been deployed on Master where the running issues have been resolved.
#### Performance Management Data Fields (#113340)
- Add the Priority field to Performance Management Action Plan Data Source
# Version 9.1.79 (8 April 2024)
### Report Builder
#### Report Imports (#85116)
Fix report import which failed due to an error in the query which retrieved the data source setup.
---
### System Access
#### Implementation of login redirects using a generic short URL for both V9 and V8 redirects (#112314)
A new API/ gRPC endpoint has been added to generate LoginRedirect links that can be shared with users to securely log in to a deep link in either V9 or V8.
---
### Performance Management
#### Allow user without a PM admin role, to preview a template (#113910)
***Problem***
- When starting the Objective Setting, a person with no Adminstration Roles could not view a template before selecting it to create the Agreement.
***Solution***
- The role check has been removed and is no longer dependant on the Admin Role.
---
### People Management
#### Implement a selector of a default active people group (#112784)
This issue has been corrected by setting the first people group linked to a user as the active people group of the user if no preferred people group has been setup yet.
#### Display manager with all information (#113942)
***Problem***
- The Manager's Location in Organisation was not displaying and the it also showed that the manager cannot log in and the position is not active.
***Solution***
- Include the Manager details in the same query as the rest of the people's details.
# Version 9.1.78 (8 April 2024)
### Report Builder
#### Data Source Setups to not be archived (#85116)
When retrieving data source setups, make sure the setup is not archived.
---
### Ruleset Setup
#### Copy Countries and Locations (#89623)
Resolve the issue of copying countries and locations when creating a new Ruleset.
---
### Performance Management
#### Terminated Managers should prevent a user to submit objectives or ratings (#113183)
**People Management**
When a person is terminated, the manager should still be linked but have a label with \[Termination\] at the end.
The input fields should be made wider to accommodate this:
***Currently***
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/F6sTh3bWL29Wrz8a-image-1712246285146.png)
***New Suggestion***
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/SdyGNUxdhhnMezUZ-image-1712246320588.png)
**Performance Management**
1. Show the *Terminated* label as well
2. Disable the Submit button
- Tooltip
- You cannot submit because your Performance Manager has been terminated.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/MTzEYDwuuOylfrcM-image-1712246360731.png)
---
### People Management
#### Delete modal not correctly enabling the Delete button (#113743)
***Problem***
- A recent change had caused that the delete modals on Next of Kin, Assets and Permits not work because of how it handled the deletion reason.
- For the above there is no reason displayed and to bypass the validation that happens for the delete button to enable " " was added to the input.
- Recent changes on the global delete.ts functionality however had a check introduced that no empty reasons are provided, and in doing so it trimms the input removing the " " added and failing the validation.
***Solution***
- Removed the " " from being inserted on the delete modals here, and instead made use of the newly added ShowDeletionReason propery which better handles not showing the input and then does not check for it having a value.
#### New functionality - Address Development (#112076)
***Master Data***
3 new Master Data lists have been added for:
- Countries
- Provinces
- Work Locations
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/xqpWU0zpBbRBsNq5-image-1712246980878.png)
***Organisational Structure***
When adding / editing a organisational unit, a new section has been added:
**Heading**
- Business Address
**Field**
- Location
- The data is derived from the Work Locations master data items
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/OeyAAhT38uRGMdxU-image-1712247615325.png)
***People Management - Product Setup***
Add a new section
- Additional Sections
- Add the Address as a section that can be activated
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/T4NN0vV9TJD8jevU-image-1712250845384.png)
***People Management - Profile***
On the Address menu, the following sections are available
- Physical Work Location
- Data derived from the Master Data items for Work Locations
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/GproL5VcnaTeOSqk-image-1712251106516.png)
- Business Address
- Data derived from the organisational unit's Location
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/sQOLonuryCOBQtFW-image-1712251166299.png)
- Residential Address
- The residential address of the person
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/FrofjF4Rhm3uzbHE-image-1712251331479.png)
- Home Postal Address
- The postal address of the person
- A check has been added for when the home and postal addresses are the same
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-04/lctn8na1BT5hcLH4-image-1712251502884.png)
# Version 9.1.77 (26 March 2024)
### System Access
#### Changed handling of unauthenticated when the refresh token for the session is no longer valid (#112810)
Added the removal of cookies on themes and ruleset during authorisation (See Version 9.1.76 for the initial change)
---
# Version 9.1.76 (25 March 2024)
### Tenant Management
#### Display the correct expiry date (#112411)
**Problem**
- It converted the data and time incorrectly to the next day when displaying on the front-end, instead of keeping the date and time as it is.
**Solution**
- Display the date and time correctly, as is, when displaying the expiry date of the subscription.
---
### Performance Management
#### Unable to save the review survey weights (#110981)
**Problem**
- Cannot add a Review Survey, stating that the maximum score cannot be zero. Problem was that the score input was incorrectly hidden if you first open and close an existing review item.
**Solution**
- Ensured that the score input is displayed correctly when adding a new Review Survey. Also added validation to the score input to not allow anything less than 1 to be entered.
#### Value Survey modal open inside overall Summary (#113440)
**Problem**
- With the recent slider control introduced on the PM dashboard the Value Survey score modal was getting cropped into the slider parent container and no longer showing centered and on top of the overlay.
**Solution**
- Moved the Modal out of the Slider (similar to where the delete modals are located).
- It then generates a Review survey modal for each of the review survey items.
- Moved all the relevant state and actions out of the ReviewSurveyScoreModal component to the ManagerAccordion component where appropriate.
- Also fixed an issue where after the update the order of users changed on the Overall Summary, by first sorting the userContract array before mapping to the components.
---
### System Access
#### Changed handling of unauthenticated when the refresh token for the session is no longer valid (#112810)
**Problem**
- When the refresh token period has expired for a user access token the user receives an unauthenticated error throughout the system that is not handled.
**Solution**
- Changed hardcoding in identity to enable the expiry period to change in the app settings
- Add redirect in the error controller to the error controller to the login page
- Add redirect in the SPA controller when the session does not exist or the user is not authenticated
- When possible the user will be redirected back to the page where they left off.
- Add login/logout to WebMVC config to go to the logout method to redirect the application to the correct login screen.
- The defaults for the tokens now are:
- Access Token 1 hour, the access token ends and must be renewed
- Refresh Token 5 hours, meaning the access token can be renewed up to 5 times if the user still has a valid login and is allowed to log in
- Once the refresh token period has passed the user will be redirected to the login page to log in again.
---
# Version 9.1.75 (25 March 2024)
### Tenant Management
#### Order Tenants properly on the index page (#113436)
**Problem:**
- Could not order on date on the tenant index page, because it tried to order on an already formatted date
**Solution:**
- Made the order field to be a universal sortable date format. Also removed the order on the name of tenant. Used the SignifyDateHelper.
---
### System Access
#### Tenant Expired message has been improved (#113535)
When a Tenant has reached the expiry date, the below message is now displayed:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/dly2yPiVkEmVUCiG-image-1711349617568.png)
---
### People Management
#### Added correction to the People Management items when a user has no roles but all the needed people group permissions for the sections (#113486)
**Problem:**
- A user with no roles but all the people group permissions to edit the sections was not able to do the following without the people administrator role:
- Terminate User
- Transfer User
- Reappoint User
- Change the reporting lines
- A user without the job profiler administrator role is not able to add an appointment for a terminated user.
- A user without the job profiler administrator role can try and create a position on the appointment screen.
- An unauthorised is received after terminating a user today and trying to edit the user
- A user with only a People administrator role was able to manage role assignments under User Access
**Solution:**
- Remove the role check on the people administrator and replace it with a check on people group permissions
- Remove the check on the appointment screen that requires a user to be a job profiler administrator to appoint users
- Hide the button to create positions from the appointment screen when a user is not a job profiler administrator
- Change the date filter to include the current date when retrieving the active appointment of a user
- Change the People Administrator role to check the manage own access and logged-in user along with the role in the user access section.
---
### Peformance Management
#### Fix not being able to submit final ratings when hide scores enable and perspectives are on (#113057)
**Problem**
- Cannot submit Final Ratings when Hide Scores setting is enabled
**Solution**
- Added logic on the final ratings submission to not calculate the perspective / KPA scores if hide scores is enabled, this was breaking because the weight is saved as 0% which caused divide by zero errors.
####
#### Added more detail to the import validation message (#112703)
**Problem**
- The validations message is not descriptive enough to a user when a Template Import fails where the KPA and KPI weights don't equal 100
**Solution**
- Improve the message
- Template section weights should sum to 100%
# Version 9.1.74 (25 March 2024)
### Data Warehouse
#### Improve handling of DataWarehouse table creation / updates (#112041)
Created a new SSIS package called **CreateTables** that will add all the required tables as this did not exists within the current repo.
#### Remove records marked as deleted from V9\_Data Warehouse during daily sync (#108782)
**Problem:**
During the sync from V9 databases to V9_Datawarehouse, records marked as Deleted still remains in V9_Datawarehouse.
**Solution:**
Change dtsx packages to remove records marked as Deleted from V9_Datawarehouse.
Example: Performance Management Contracts/Periods
---
### Performance Management
#### All agreement weights must be validated to be more than 0 (#113018)
**Problem:** Currently you can add perspectives and KPAs while leaving their weights 0. If you try to submit objectives, an error will be displayed. Only KPI weights are validated.
**Solution:** Added validation to Perspective and KPA weights to only allow you to add if the weight is more than 0 (if not itemsWeightedOverSection AND not hideScores). A snack message is displayed.
#### User can add duplicate review setups (#113022)
**Problem:**
User was able to add duplicate review setups.
**Solution:**
Disable Save button when creating and updating review setups.
---
### Ruleset Management
#### Addition of Catalogue menu in V9 for the learning product (#112786)
**Problem:**
The Catalogue menu was not included as part of the Learning Product.
**Solution:**
Add the Catalogue menu to the Ruleset System Menu list. When the Learning Product has been activated, this menu can also now be activated.
#### When viewing the integrations tab on ruleset setup, make sure the General tab is selected by default and not payroll (#113171)
**Problem:**
Payroll tab displayed by default.
**Solution:**
Make it so that the General tab displays by default.
---
### People Management
#### Styling of pages with large gaps (#112994)
**Problem:**
People Profile pages are not fitting correctly on the screen. There are large grey areas around it.
**Solution:**
Improve some styling on the person profile page, to fit external and normal pages better - filling the entire height of the screen.
#### Translation not applied for Username field (#113007)
**Problem:**
The Username label on the employee profile is now displayed as two words instead of one but the translation shows it as one word.
**Solution:**
Ensure correct translation is used for the Username field.
#### Unable to give data source access to active report categories on a new tenant’s ruleset (#112839)
**Problem:**
Because any new ruleset uses the the datasources/categories from Ruleset/Tenant 1 by default, nothing was returned, because the current Ruleset is not Ruleset 1
**Solution:**
When retrieving data categories, return the categories from Tenant 1 if the ruleset uses the Data Dictionary from Ruleset 1
#### Publish the Job Profile of the first user on a new Ruleset (#112780)
**Problem:**
Default ruleset job was not published.
**Solution:**
Changed it so that the default ruleset is published.
#### Vacant Positions of an Unpublished Job Profile displays the Vacancies Count for User Appointment (#112369)
**Problem:**
Jobs that were not published displayed in the list.
**Solution:**
Filter the jobs to those that are published.
---
### New Functionality
#### Kudos Development (#107675)
A new button has been added to People Management on the card view:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/lHmYu0TEXgM6KA2k-image-1711348236692.png)
When selected, you will be able to send Kudos to a person. The page that opens is where you select a badge and add a message.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/HSHRTQm8ROXRNZGC-image-1711348346306.png)
After sending the Kudos, you can see all Kudos that you received and all Kudos that you sent to others on the Main Dashboard.
***Received***
*Top 3 entries are shown*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/5izCfPvX7E3MBIwK-image-1711348629545.png)
***Given***
*Top 3 entries are shown*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/7QjYcyR7L7TYZd41-image-1711348688083.png)
When clicking on the **View More** option, the full details are shown.
Only Kudos given can be deleted or edited withing 7 days of sending it.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/VdTZKCuX4h2I0Zh7-image-1711348939092.png)
When clicking on the Send Kudos to a Colleagues button, the user will be navigated to People Management Dashboard.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/f6o6FF6R2PpOIJYQ-image-1711349060978.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/KjyMMC9dmXVgLOWV-image-1711349106287.png)
# Version 9.1.73 (11 March 2024)
### People Management
#### Change name of Training Records tab (#112350)
Name has been changed from Learner Records to Learning Records.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/PSqe4lKuT1Ohv0tk-image-1710141485890.png)
#### Changes to the Profile Banner (#110509, #110908, #110509)
Removed the Work Telephone Number from the Contact Details section; removed the Group date from the Appointment Info section and removed the Created date from the Additional Info section.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/i6g6fhZdYVKlm1Xy-image-1710138358642.png)
A correct selector to load the training and development first menu (#112886)
When clicking on the Training and Development menu, the Learning Records are loaded as the first menu item.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/WNFMpDt6jq0uOM6h-image-1710141525316.png)
###
---
### Performance Management
#### Implement a slider on the Overall Summary for more than 5 items (#104459)
**Business Rules:**
- There should be 5 items (incl Overall Final Score) on the screen at all times
- When the Review Periods + Review Surveys are more than 4, then a scroll is added
- There is also a "legend" to show which items are on the screen
- Always land on the current active period as the first item in the scroll, when opening the page
- This is for both Employee and Manager views
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-03/3xhEfufDrKFE8Gty-image-1710141129769.png)
# Version 9.1.72 (29 February 2024)
### Ruleset Setup
#### Ensure available languages can be published (#112374)
When a language is set to available, this should be published without errors.
---
### Job Profiler
#### Terminated employees to not be displayed when viewing users linked to a people group role (#108023)
When a person is terminated, the people group roles are removed and no longer showing when viewing the people.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/FSLVYtuHbi1cQWI8-image-1709186610434.png)
---
### People Management
#### Make sure appointment dates are cast as date when retrieving employees for the people management index page (#112757)
All future terminations are showing on the People Management dashboard.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/Yk9twh6lv33GV7yp-image-1709191036706.png)
---
### Performance Management
#### Show Manager and Employee comments regardless of contract approval state (#112736)
New business rules have been applied to ensure all comments are shown:
**For the Employee:**
- Regardless of the settings, always show the Manager's comments in both the Objective Setting and Rating phase
- Thus, if the manager added a comment to a KPI, show this to the employee although the objectives or ratings have not yet been submitted
- Remember, always hide the Private Comment
**For the Manager:**
- Regardless of the settings, always show the Employee's comments in both the Objective Setting and Rating phase
- Thus, if the employee added a comment to a KPI, show this to the manager although the objectives or ratings have not yet been submitted
# Version 9.1.71 (27 February 2024)
### People Management
#### When creating a user from the front-end, don't create an appointment record through the materialisation integration event (#112756)
Ensure that the person's profile can be accessed without receiving an error.
---
### Performance Management
#### Cannot update KPA weights (#112817)
Fixed the issue where the KPA weights could not be updated and resulted in an error.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/xSs2p8AKZLPuG6s1-image-1709040931475.png)
# Version 9.1.70 (26 February 2024)
### Notifications
#### Add example data to recipients for notification testing (#93775)
When sending a test email, example data is added:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/RcxRHjnHLZaUqP5C-image-1709022552195.png)
---
### Job Profiler
#### Check if job profile is published when calculating vacant positions on the different org structure views (#112369)
Only show Vacant Positions when the Job has been published. For example when appointing a new person.
One Job is Published and the other are not.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/NfITo8RGLDarHJBv-image-1709022895729.png)
When appointing a new person, only the published Job's vacancies is shown.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/Rx5KAZJ3ShuEHUZY-image-1709023007216.png)
---
### Tenant Management
#### Show the correct Number of Licenced People instead of the placeholder (#111980)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/4KaNMgIrb9Oktdpk-image-1709023220379.png)
---
### Performance Management
#### Users can rate and approve when phase is locked (#108065)
When a phase is locked, a person should not be allowed to complete the ratings.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/1Hxxrm3knBSgaw5G-image-1709023710620.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/dfeHBoLAt1EVsWht-image-1709023818281.png)
# Version 9.1.69 (26 February 2024)
### System Access
#### Fix issue where the Reset Password URL redirected to the incorrect theme (#108985)
The URL now redirects the user to the correct theme when clicking on it.
---
### Performance Management
#### Fix issue where KPI level Action Plan documents were not showing (#112290)
When adding an Action Plan for a KPI and adding documents on the Action Plan, the documents are now displayed.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/DuS0MUPF94gZ6nmm-image-1709021816476.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/aCiGADk0x6qwfXOr-image-1709021850024.png)
---
### Ruleset Setup
#### Display bulletin in its own modal (#112446)
Instead of the message displayed under the bulletin icon, it now has its modal.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/rGUmitNG7M7Gb9r9-image-1709022293120.png)
# Version 9.1.68 (26 February 2024)
### Performance Management
#### All the sections is collapsed on the Manager Dashboard (#111930)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/yRuWqWVNv3I24myn-image-1709020097457.png)
#### Make the Submit and Approve buttons the Primary Colour instead of the Back to Dashboard button (#111967)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/JhIIYdgCVmLiwezF-image-1709020487313.png)
#### A confirmation message is added when the Manager modifies the objective settings (#111968)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/BtLdA8OLAa82hZLc-image-1709020646727.png)
#### The 'Type Your Own" option to be displayed first when adding a KPA, KPI, KC item (#111931)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/TlRPqh14JEW0mWD2-image-1709020771761.png)
#### Documents can be uploaded only when the Final Ratings have not been submitted (#111932)
When the final ratings have been submitted, the Upload button is greyed out and no documents can be uploaded.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/e0llIRAUUrxmMkBd-image-1709020923110.png)
---
### People Management
#### Ensure that the My Manager label is displayed on the People Management Dashboard (#104135)
The Manager of the logged in person is displayed on all tabs.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/ki303kAA9g7fwpeB-image-1709021082690.png)
# Version 9.1.67 (12 February 2024)
### Performance Management
#### Fix issue with copy from previous not recreating custom items (#112170)
When copied from a previous agreement and altering the agreement's KPI value, the other agreement values are no longer affected.
# Version 9.1.66 (12 February 2024)
### Ruleset Setup
#### Copy Performance Management data, when creating/copying a Ruleset or Tenant (#107442)
The following data is copied when creating a new Ruleset or when a Ruleset is created for a new Tenant:
**Review Setup:**
- Copy active setups which includes
- Details
- Review Items
- Sections
- Templates are excluded
**Review Year:**
- Copy all active Review Years which includes
- Details
- Review Setups
- Target Audience is excluded
---
### Performance Management
#### Only show Perspectives that is in the library (#111798)
When adding Perspectives, only show Perspectives that has been marked as Library Items when creating a template.
#### Hide the Manager Rating column on View/Print if Manager rating is disabled (#111994)
When the [](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/isZEZUPQcpyR3f7K-image-1709018570359.png) setting is enabled, do not show the Manager Rating column on the Print View:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/v9Rk7wmhnMkmEiVc-image-1709018630176.png)
# Version 9.1.65 (12 February 2024)
### System Access
#### Add a check on external login when User does not exist to give a message (#110250)
Added a message: Invalid Login Attempt
---
### People Management
#### Changed validation on the email address in the identity service when adding a user with an email address that has been used for another user on the ruleset as a username (#111385)
Removed the Username Required setting and changed the validation to only be performed when the username is empty and the email address is to be used as the username as a fallback.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/9Pw7tWY9aJl4NxYq-image-1709014513794.png)
#### Ensure that when a people group is exported the default is set when the user has not selected their default (#111809)
When the People Groups are imported into the Additional Services, the default is now also set on Additional Services.
#### Change the wording on the buttons of the People Management Dashboard (#110534)
The People Group button label has been changed to Manage People.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/7QLQb5aezwhWGpIe-image-1709015300011.png)
#### Change the wording on the Password Reset Confirmation (#110536)
Added the person's email address to the confirmation message.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/9nMbEUqEQMdI4eyp-image-1709016458876.png)
#### Correct role implementation when displaying gear and product setup (#103560)
**Problem:**
User roles are not considered when showing cog, product setup or people group menus
**Solution:**
- Verify that the user is an authenticated admin before showing the cog
- Only show people groups to people admins, performance admins to ruleset admins
- Only show product setup to product admins or ruleset admins
- On the product tab only show the products the user has the role to configure or show all if a ruleset admin
- Hide ruleset tabs when the user is not a ruleset admin
---
### Report Builder
#### Ensure that reports have unique names (#111694)
Add a check to ensure that reports have unique names.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/crCGoL7mdyimnIFM-image-1709016601667.png)
---
### Ruleset Setup
#### Add on-screen messages when services are not running (#88160)
An on-screen message is displayed to inform the user when a service is not running.
---
### Tenant Management
#### Expired subscription still showing as Active (#108507)
On the Tenant Management page, the expired subscriptions is made Inactive. Ensured that Ruleset 1 is exempt from the Tenant Inactive Check.
When logging into the Tenant, a message is displayed:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/ZXve7iWUuiaSZnXG-image-1709017215291.png)
---
### Performance Management
#### Corrected the issue where the Modify Manager Ratings button are displayed twice (#111652)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/vSLaSZjmdzI9h49m-image-1709017517357.png)
# Version 9.1.64 (29 January 2024)
### Notifications
#### Correct the placeholder mismatch on the Check-in Deadline Template (#110616)
Placeholders in the template had the person details instead of the manager details. The placeholders are now corrected.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-02/7InZ4ruUdouMjLKN-image-1709013783146.png)
---
# Version 9.1.63 (29 January 2024)
### People Management
#### Correct Manager details on Dashboard (#111449)
The manager's details and profile picture is now displayed on the dashboard.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/Ym3hlxeqTuFgGWSO-image-1705904096725.png)
#### Ensure the Forget Password Notification is sent to new users (#111511)
Ensure the user gets the OTP Notification in order to reset their passwords.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/HHETcgegIm6Np2dG-image-1705904515124.png)
#### Display terminated users on the People Group Tab (#110969)
Change the functionality so that terminated people are also shown on the People Dashboard.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/PnFzy7e8US6drAH3-image-1705904841478.png)
---
### Performance Management
#### Enhance the Create Modal on Performance Management (#111524)
When a new Agreement is created, the Create modal has been enhanced so that the options is more visible.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/s7z5KQeCsfzgK7sY-image-1705905082829.png)
---
### System Access
#### Add a refresh of System menus (#111458)
Added refresh of the system menu when the product is inactive due to configuration or when the subscription is changed.
# Version 9.1.62 (15 January 2024)
### Theme Management
#### Implement api endpoint to list themes for a client id (#110472)
Add a bulk import of themes that triggers when a user creates or edits a theme in V9.
---
### V9 Imports
#### Implemented Scheduled Processing of import on external services (#109736)
Implemented a new bulk additional sevices import section
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/UPBnLKTp02nVhDT3-image-1705664956119.png)
---
### System Access
#### Corrected display of dark text headings on the login page (#111177)
When the **Dark Heading Text** setting has been activated on Theme Management, the Login Page Heading and Login Page Description is changed from white text to dark text.
*Themes:*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/sFbrfSoBNHiZzvvg-image-1705665221645.png)
*Login Page:*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/IrjBly8kxm9MWX0u-image-1705665277884.png)
# Version 9.1.60 (15 January 2024)
### Performance Management
#### Hide SigniChat icon (#108015)
The SigniChat icon is hidden so that the Save button can be selected when adding a General Comment.
#### Styling changes on Print View (#107531)
Updated the styling so that the Print View items are aligned.
#### Improve error message for duplicate values (#107529)
The following rules have been implemented regarding duplicate items:
You cannot add:
1. a KPI to a KPA that already has a KPI with that name
2. a KPI to a KPA where that KPA is already added to the contract and has the selected KPI as 1 of its items (duplicating KPA to KPI options)
#### Key Competency Name shown as editable (#106698)
All inactive/disabled/not editable fields are always shown in gray.
#### Allow backspace to clear weight on KPA (#107045)
The backspace now clears all the numbers.
#### Status on Check-In banner (#107515)
The incorrect Next Action was displayed on the check-ins page. The same instruction is now displayed on check-ins as on the agreement.
#### Incorporate and allow to edit review surveys score setting (#107323)
No employee should be able to edit/update the review survey score.
**Business Rules:**
*Setting name:*
- Allow the Manager to edit review survey scores
*Rules:*
- When this setting is enabled, managers can edit these scores
- Employees should not be able to edit
- When impersonating, Admins should be able to edit the review survey score regardless of whether this setting is enabled or disabled.
---
### Organisational Structure
#### Only load the first 2 levels (#108648)
Load first two levels in org tree, load children of higher levels as needed.
#### Adjust badge styling on treeview (#108943)
Added the treeview in a white card so that the badges are clear.
---
### Competency Analysis
#### Add ratings on screen (#109839)
The ratings are now available on screen. The user do not have to select the book icon to open a page for the ratings.
---
### Notifications
#### Add example data when sending a notification template (#93775)
Example data is added so that the placeholders do not display. This is an example of how the template looks when a user receive a notification.
---
### People Management
#### Add username to the Profile (#105463)
The username is also displayed on the My Profile page
#### Deleted roles are added again (#108438)
Fixed the issue where a deleted Admin Role is added again.
#### Fix paging / load more on sections (#104135)
The system displayed duplicated users after loading more users on the page. This has now been corrected.
---
# Version 9.1.61 (15 January 2024)
### Competency Analysis
#### Display comments on hover (#110806)
The comments made are now shown when hovering over the rating.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/LVbHlvAvH3nF47x8-image-1705659467929.png)
---
### People Management
#### Resolved "Go to Another" issue (#110884)
Selecting a person under the Go To Another field, the page is redirected to the selected person's profile.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/d6qaj0n2l98EqApU-image-1705659839649.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/iuwufBMGGQuUX0dP-image-1705659898649.png)
---
### Translations
#### Addition to translations for Performance Management (#110880)
The following Translation has been added:
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/pK5XHcImjOlYxmF9-image-1705661581715.png)
---
### Performance Management
#### Decreased Avatar initials on PM Dashboard & Agreement View (#110880)
The text size has been decreased so that it fits in the profile area.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2024-01/TJfQPwzidKa7tLt9-image-1705661285573.png)
# List of Release Notes (2023)
# Version 9.1.59 (7 December 2023)
### Performance Management
#### Person Rating (#110582)
Additional change to only show person rating after both manager and person has approved.
### Job Profiler
#### Job Profile Copy (#110659)
Fix 2100 max parameter error when copying job profiles.
# Version 9.1.58 (6 December 2023)
### People Management
#### Reporting Lines Error (#110678)
Correctly check if user is part of people group if cache is empty.
#### Additional Reporting Lines menu item (#110677)
Implement additional reporting lines menu item
### People Groups
#### Cannot delete a person from the list (#110682)
Fixed issue which prevented you from removing employees from included and excluded in the People Groups.
### Performance Management
#### Hide person rating (#110582)
Hide Person rating on contract preview if person not approved and setting to not show to manager is on.
# Version 9.1.57 (5 December 2023)
### Theme Management
#### Load external services menu items (#110603)
Enabled the functionality so that an External Services menu item is loaded when first in the list.
# Version 9.1.56 (5 December 2023)
### Report Builder
#### Cannot access Report Builder (#110658)
Resolved an issue on the ReportBuilder authentication to allow a user to access the Report Builder reports without having the Data Dictionary admin role.
### System Access
#### Third Party Providers (#89623)
When registering third party auth providers, make sure the clientid and secret is not empty or null
# Version 9.1.55 (5 December 2023)
### People Management
#### Country Selector (#97210)
Add the coutnry selector to the contact number when adding new people
#### Welcome Notification (#110621)
It now checks, erroneously, if the user for whom you are sending the welcome notification, has rights to appoint new people.
### Theme Management
#### Load external services menu items (#110603)
Enabled the functionality so that an External Services menu item is loaded when first in the list.
# Version 9.1.54 (4 December 2023)
### Imports
#### Validation (#102661)
Fix validation to allow duplicate position titles.
### Translations
#### Move translations (#110409)
Moved Performance Management Action translations from static static to static translations to be able to translate on the front end.
#### Publishing a language that does not exist (#109858)
When publishing, if the language does not exist, auto-create it.
### People Management
#### Character restrictions (#110273)
Remove username characters restrictions in identity to allow a username to have special characters.
### Performance Management
#### Tooltip on Ratings (#110292)
Remove the score tooltip on the rating when the Hide Scores setting is enabled.
#### Rating Scales Label (#110286)
Fix rating scales label for Hide Scores to show Status.
# Version 9.1.53 (4 December 2023)
### Identity & Authorisation
#### Corrected incorrect login using Microsoft when the same provider and key is used for a user on different rulesets (#110250)
A user login in with Microsft using the same provider and key on different rulesets, will now log into the correct ruleset.
### API
#### API Configuration (#110046)
Add API configuration to master data, report builder and audit services.
### Main Dashboard
#### Open PM with correct Header from widget (#110263)
When redirected to Performance Management, the header now shows correct.
#### Next Action label (#110261)
Ensured that the Next Action label is not wrapping.
#### Continue Button (#110263)
The continue button redirects to Performance Management in the same tab.
### Imports
#### API User Import (#109726)
Implement the API User Import and cebtralised validations.
### Ruleset Setup
#### Copy Data (#107442 & #85116)
Implement the copy of Report Builder and Performance Management data when a new ruleset is created or copied from.
### Performance Management
#### Label Change (#110243)
Change label from Overall Final Score to Overall Status when Hide Scores setting is enabled.
#### Review Setup details (#110241)
Always redirect on Review Setup details when settings have updated to show the changes.
#### Review Sections | Action Plans (#110235)
Remove the hide scores label in the section.
#### Review Items | Review Surveys (#110231)
Remove max score check on Review Survey constructor, validation is done when adding a new review item.
#### Master Data | Inactive Perspectives (#110200)
Disable inactive perspectives when completing contract.
#### PM Template Import (#106913)
Implement the functionality to import Templates when the Hide Scores setting is enabled.
# Version 9.1.52 (20 November 2023)
### People Management
#### Corrected Authorisation
- Corrected not authorised page when changing a user's people groups and appointing a new user
#### Appointment Menu
- Enforces display of appointment menu when the user has permission to manage own access
### Report Builder
#### Report Builder API
- Correct Setting value for report builder API
# Version 9.1.51 (20 November 2023)
### Main Dashboard
#### Performance Management Widget
Fixes include:
- Indicate when ratings are completed
- Increase the widget's query date range
- Enhance the styling
- Fix the widget's action button focus styling
### People Management
#### Add additional Reporting Rights Link (#109729)
Added the reporting rights link so that access to V8 reports can be given to a person.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-11/BqdAPS3DpugrqQEN-image-1700541352533.png)
# Version 9.1.50 (10 November 2023)
### System Access
#### Corrected Ruleset Creation check and improved helper text
- Changed the helper text to explain the System Endpoint field
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-11/8uz8FhvmDcZhjF4D-image-1700123564854.png)
### People Management
#### Implement API Calls
- API Calls to fetch
- The list of People Group Users
- People Groups linked to users
- People Group roles
- People Groups
# Version 9.1.49 (10 November 2023)
### Performance Management
#### Review Setups not displayed
Resolved issue where review setup is not displayed for root node and reporting line people groups
#### Manager Ratings when Dual Participation is inactive (TP#109267)
Resolve issue where Manager cannot submit the ratings when dual participation is disabled
### People Management
#### Change menu spacing (TP#105910)
Change the menu's spacing on the edit page so that longer items fit better
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-11/JEoI27yFMu4cPjPS-image-1698995372792.png)
#### Resolve issue where the My Department & My Company tabs does not show people (TP#109360)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-11/6sWN9tOWhrc6SP17-image-1698995516771.png)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-11/IOYY6z2UYDScCMa9-image-1698995550898.png)
#### Correct the Search functionality that gives incorrect results when clearing the search (TP#109360)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-11/asTcMQAg2BpJTpeE-image-1698995843273.png)
# Version 9.1.48 (25 October 2023)
### People Management
#### Correct the issue where the People Group tab did not show >2100 people (#105910)
Resolved the issue where the People Group tab did not show any people if there are more than 2100 people in the People Group.
# Version 9.1.47 (25 October 2023)
#### People Groups (#105910)
Bug fixes has been made including:
- Correct the Welcome Email sent on the Appointment Screen
- Apply the People Group permissions to the footer buttons and menu items on the edit screen
# Version 9.1.46 (25 October 2023)
### Performance Management
#### Only published templates to be available when creating an agreement (#109118)
A filter has been added to only show templates that have been published when copying from a template to create an agreement.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/XCTK0BeVsthkyjIn-image-1698163049920.png)
### System Access
#### Allow ID Numbers with alphanumeric characters (#109010)
Removed the validation on the Forgot Password page to allow alphanumerical characters when verifying the ID Number.
#### Correct theme loading on Reset Password page (#108985)
When resetting the password, the correct theme is included in the Reset Password link on the notification that a person receives when opting to reset their password.
### People Management
#### Increase ID Number field's max characters (#109130)
The maximum field length for the ID Number has been changed from 13 to 30 characters on the Personal Information screen.
#### People Groups (#105910)
Bug fixes has been made including:
- Implement permissions on the edit pages
- Disable the ability to add a person when the active people group is not an Organisational Unit type People Group
- Don't allow managing a person when not on the People Group tab
- When adding a new person, they display on the list
- Correct People Group Roles where the names should be unique
- Resolved the Reset Password button when breaking
- Reset the toggle on the Delete modal when deleting a People Group Role
- Excluse already selected People Groups when linking a People Group
- Send the Welcome Notification when adding a new person
- Implement the functionality to create a default role with all permissions and linking the default People Group to the first Ruleset user
- Resolve error when you add a new Role with the same name as a deleted item
- Add focus on the People Group Role name when empty upon saving
- Add a pointer on the table row when linking a People Group
- Correct the People Group Roles on User Access, Appointments and Performance Management Menus
- Add Employee Number field
# Version 9.1.45 (25 October 2023)
### Performance Management
#### Change the settings to make the Self-Rating visible (#108924)
The settings on the Review Setup were update in order to make the approved Self-Rating visible to the Manager during the ratings phase.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/3sRjzBiK0oybx5z7-image-1697725884189.png)
#### Change the Dual Participation translation on the Review Setup linking to the shortened heading
A translation was added for Dual Participation heading when linking a Review Setup to the Review Years.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/Vk5bU31aDvL4Ut4C-image-1697726123147.png)
#### The numbering of Perspectives on the agreement is removed to match the index (#109038)
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/1itv4zeKFposCFm6-image-1697726394748.png)
#### Hide the Check-In dial when the Check-In Phase is inactive (#108978)
Added a check to ensure that when the Check-In Phase is made inactive on the Review Year, the dial is also not shown on the Overall Summary of the Dashboard.
***Review Year:***
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/KCHUrLxzBYsLrIFz-image-1697726936580.png)
***Performance Dashboard:***
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/q6qh74P62lktuXRN-image-1697727037511.png)
###
# Version 9.1.43 (25 October 2023)
### People Management - People Groups
#### People Groups (#105910)
Adding functionality to create Reporting Line and Organisational Unit type People Groups in addition to Custom People Group types.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/Pto8BrWOLFeBQhdK-image-1697183383397.png)
####
#### People Group Roles (#105910)
The ability to add People Group Roles with specific permissions that can be used to link to people.
*List of People Group Roles*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/BCTqEwaNcepkhPDn-image-1697183686153.png)
*Permissions*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/c53uCcK0ac20p10p-image-1697183745093.png)
####
#### People Management - User Access | People Groups (#105910)
The People Group Roles with the permissions are linked to individual people. The following People Group Types can be linked:
- Reporting Lines
- Organisational Units
- Custom
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/IREPJMxkfAsrYkgg-image-1697184162976.png)
*Permissions linked to the selected Role*
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/0pTTPJ0kRA7RLplZ-image-1697184230637.png)
####
#### Default People Group after login (#105910)
The user, with access to People Groups, can set their default under their account.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/oZnO5QzzHhDmZHRl-image-1697184466364.png)
#### People Management Dashboard - People Groups (#105910)
When a person has access to 1 or more People Groups, they can switch between these People Groups.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/ZtJshoRMHRI7JnWJ-image-1697184665833.png)
The permissions linked to this People Group determines what actions the person can perform, for example to view or edit a person's profile.
#### Performance Management - Target Audience on a linked Review Setup of a Review Year (#105910)
When linking People Groups to the target audience of a Review Setup, the new Reporting Line- and Organisational Unit types of People Groups can now also be linked.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/dnAXzAsothp4WhcC-image-1697184978760.png)
# Version 9.1.44 (25 October 2023)
### Performance Management
#### People in My Team not showing (#105910)
Corrected the subordinate filtering when People Groups have already been cached.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/dFqWXnYvPcIGvId4-image-1697185389237.png)
# Version 9.1.42 (9 October 2023)
### Performance Management
#### Deadline Date on Review Setup page (#108680)
Issue has been resolved where yhe saved deadline date was not displayed on the review setup page that is linked to the Review Year.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/6XetRmzs7AW4UeSl-image-1696832544269.png)
# Version 9.1.41 (9 October 2023)
### Report Builder
#### Data Dictionary field ordering & Alias renaming (#76220)
Fixed an issue where the Data Dictionary Field ordering and Alias renaming were not working on subsequent pages
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/Zc8OAua5JOUiHZnD-image-1696511826052.png)
---
### Performance Management
#### Score on the Print Preview (#108638)
Changed the score to display correctly on the print preview of the performance agreement
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/jcITRamQDEgSxY3e-image-1696512831669.png)
####
#### Display the Measures & Ratings pop-over when doing a Check-In (#108131)
Added the Measures & Ratings pop-over on the check-in modal. This is displayed when hovering over the Key Performance Indicator section when doing a check-in.
[](https://signature.signifyhr.co.za/uploads/images/gallery/2023-10/2DH2bYofTj3fRvCy-image-1696513025232.png)