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.