Daily updates from Odoo
Wednesday, January 24, 2024
13 changes · master
Enhancements to existing features
The planning role search no longer shows role avatars when no matching result is found. This reduces visual clutter and makes the helper message in the search experience easier to read.
Original PR description
In this commit, we remove the role avatars shown when searching for a role in the search bar of the planning role menu and no result is found. The rationale is that the role avatars displayed in such cases are clashing visually with the textual action helper. task-3696673
Resolved issues and error corrections
Users can now remove an approver from an approval request and immediately select the same person again without refreshing the page. This prevents confusion and keeps approval setup faster and smoother.
Original PR description
when removing approver name in approver line, name won't show again and you need to refresh the record first. Fixed by updating the approver domain so that it would include itself. Task: 3627695
Miscellaneous changes
Current behavior: You couldn't delete an iot_box if a pos_printer was linked to it. You always get a validation error saying that "Proxy IP cannot be empty" To fix this we are forced to delete the pos_printer first and then the iot_box. Steps to reproduce: - Install pos_iot - Activate preparation printer in POS - Create a printer and link it to an iot_box device - Try to delete the iot_box opw-3597370 Forward-Port-Of: odoo/enterprise#52953
Original PR description
Current behavior: You couldn't delete an iot_box if a pos_printer was linked to it. You always get a validation error saying that "Proxy IP cannot be empty" To fix this we are forced to delete the pos_printer first and then the iot_box. Steps to reproduce: - Install pos_iot - Activate preparation printer in POS - Create a printer and link it to an iot_box device - Try to delete the iot_box opw-3597370 Forward-Port-Of: odoo/enterprise#52953
When you have to sign an offer and have a bike on your previous contract, the amount is correct, but the selected bike is not the good one. It is because you own bike is not availbale in the list. So we add it. Forward-Port-Of: odoo/enterprise#54905
Original PR description
When you have to sign an offer and have a bike on your previous contract, the amount is correct, but the selected bike is not the good one. It is because you own bike is not availbale in the list. So we add it. Forward-Port-Of: odoo/enterprise#54905
Currently, the user encounters an access error when attempting to restore an article whose parent is inaccessible. Upon restoration, the system accesses the parent article to determine whether the article to restore should be detached from its parent. Note: If the parent article is in the trash, the article should be detached from its parent. Otherwise, it will be automatically deleted when deleting the parent article due to the cascading delete. When the user does not have access to the p
Original PR description
Currently, the user encounters an access error when attempting to restore an article whose parent is inaccessible. Upon restoration, the system accesses the parent article to determine whether the…
Currently, the user encounters an access error when attempting to restore an article whose parent is inaccessible. Upon restoration, the system accesses the parent article to determine whether the article to restore should be detached from its parent. Note: If the parent article is in the trash, the article should be detached from its parent. Otherwise, it will be automatically deleted when deleting the parent article due to the cascading delete. When the user does not have access to the parent article, the system will raise an access error when doing the check. This commit addresses the issue by introducing a `sudo` on the read call causing the access error. Steps to reproduce the issue: 1. Log in as "Mitchell Admin" 2. Create an article in the workspace 3. Add "Marc Demo" to the member list with "No access" 4. Create an article under the article create at step 2 5. Set the permission of "Marc Demo" to "Can write" 6. In the "More option" panel, click on "Delete" 7. Log in as "Marc Demo" 8. On the Knowledge editor, click on "Open the Trash" 9. Open the article you deleted 10. In the "More option" panel, click on "Restore From Trash" => "Marc Demo" gets an access error when restoring the article. TO BE: "Marc Demo" should be able to restore the article and should not get any access error. task-3648854 Forward-Port-Of: odoo/enterprise#54896 Forward-Port-Of: odoo/enterprise#53148
Forward-Port-Of: odoo/enterprise#54862 Forward-Port-Of: odoo/enterprise#54189
Original PR description
Forward-Port-Of: odoo/enterprise#54862 Forward-Port-Of: odoo/enterprise#54189
Before this commit, when a contract was reopened, the churn log was removed but it was not the last one. After this commit, we make sure to delete the last churn log after sorting by date. taskid: 3651477 Forward-Port-Of: odoo/enterprise#54730 Forward-Port-Of: odoo/enterprise#54056
Original PR description
Before this commit, when a contract was reopened, the churn log was removed but it was not the last one. After this commit, we make sure to delete the last churn log after sorting by date. taskid: 3651477 Forward-Port-Of: odoo/enterprise#54730 Forward-Port-Of: odoo/enterprise#54056
A collection of small but urgent fixes for the shop floor app. Please refer to the individual feature commits for more details. Task: 3651433 Forward-Port-Of: odoo/enterprise#53516
Original PR description
A collection of small but urgent fixes for the shop floor app. Please refer to the individual feature commits for more details. Task: 3651433 Forward-Port-Of: odoo/enterprise#53516
## Description Opening a P&L report and doing some grouping by an analytic account or an analytic plan can be extremely slow. This is due to the fact that, in the goal of reusing the generic report engine, which is based on `account.move.line`, a temporary table is created that shadows said table, but overwrite the data with content from `account.analytic.line` instead. The temporary table has absolutely no indexes, therefor forcing a Seq.Scan for all queries done on the table. As the `accou
Original PR description
## Description Opening a P&L report and doing some grouping by an analytic account or an analytic plan can be extremely slow. This is due to the fact that, in the goal of reusing the generic report…
## Description Opening a P&L report and doing some grouping by an analytic account or an analytic plan can be extremely slow. This is due to the fact that, in the goal of reusing the generic report engine, which is based on `account.move.line`, a temporary table is created that shadows said table, but overwrite the data with content from `account.analytic.line` instead. The temporary table has absolutely no indexes, therefor forcing a Seq.Scan for all queries done on the table. As the `account.analytic.line` model can grow quite large in general, sequential scans on that table quickly becomes slow. ## Fix We introduce 1 composite index on the temporary table to speed up the subsequent queries on it. This slows down the initial creation of the temporary table, at the benefit of significantly speeding up all report sections queries, which are done for each `account_type`. Since the temporary table has no traffic on it, the exclusive lock on the table for the index creation is immediately acquired, so the time taken to build the index is proportional to the size of the table. The index is dropped when the temporary table is dropped. ## Benchmark Durations of the request `get_report_informations` for a P&L report of the last fiscal year, all journals, and grouping by 1 analytic plan of a database with a bit above 200k AAL: | AAL Volume | Before | After | |------------|--------|-------| | 50k | 4.75s | 1s | | 100k | 9s | 1.4s | | 200k | 21s | 2.1s | (in the last line, the 2.1s -> 1.2s is for the index creation + analyze) Scaling is also better when it comes to grouping by more analytic accounts or plans. ## Reference opw-3659497 Community PR: https://github.com/odoo/odoo/pull/148490 Forward-Port-Of: odoo/enterprise#53817
Before this commit: while creating an activity, the label for the `subject` field is displayed as 'Subject' for both the Email template and SMS template which was misleading as the SMS does not have a subject like emails. After this commit: The label has been changed to 'Title' which is appropriate for SMS Task-3500573 Forward-Port-Of: odoo/enterprise#54553 Forward-Port-Of: odoo/enterprise#53484
Original PR description
Before this commit: while creating an activity, the label for the `subject` field is displayed as 'Subject' for both the Email template and SMS template which was misleading as the SMS does not have a subject like emails. After this commit: The label has been changed to 'Title' which is appropriate for SMS Task-3500573 Forward-Port-Of: odoo/enterprise#54553 Forward-Port-Of: odoo/enterprise#53484
Before this, clicking the "Compute Taxes" button on a confirmed sale order does nothing. It was possible in previous versions to re-calculate taxes on confirmed sale orders and it's especially handy on subscriptions. Furthermore, it's possible to manually change the taxes on confirmed sale orders anyway, so there's no reason to prevent changing them through an external tax integration. opw-3694079 Forward-Port-Of: odoo/enterprise#54979
Original PR description
Before this, clicking the "Compute Taxes" button on a confirmed sale order does nothing. It was possible in previous versions to re-calculate taxes on confirmed sale orders and it's especially handy on subscriptions. Furthermore, it's possible to manually change the taxes on confirmed sale orders anyway, so there's no reason to prevent changing them through an external tax integration. opw-3694079 Forward-Port-Of: odoo/enterprise#54979
Impacted Version: - 16.0 and above This commit improve below features: - Simplify demo data and remove unnessary function call - Improve demo_payslip_2 date_to for leap year - Improve leaves to avoid overlapping weekend X-original-commit: 45321a2 Forward-Port-Of: odoo/enterprise#54836 Forward-Port-Of: odoo/enterprise#54283
Original PR description
Impacted Version: - 16.0 and above This commit improve below features: - Simplify demo data and remove unnessary function call - Improve demo_payslip_2 date_to for leap year - Improve leaves to avoid overlapping weekend X-original-commit: 45321a2 Forward-Port-Of: odoo/enterprise#54836 Forward-Port-Of: odoo/enterprise#54283
…ve edition Since 396fe57c08f3997a0a600190d12e2229089627bc, the spreadsheets shown in the spreadsheet selector dialog (dialog to select a spreadsheet to insert something into) are not correctly ordered anymore. This is due to the fact that the contributor table is not correctly updated when a modification is made in the spreadsheet, as with the collaborative edition we use `spreadsheet.revision` to update the spreadsheet whereas before we used the `write` method. This commit fixes this iss
Original PR description
…ve edition Since 396fe57c08f3997a0a600190d12e2229089627bc, the spreadsheets shown in the spreadsheet selector dialog (dialog to select a spreadsheet to insert something into) are not correctly ordered anymore. This is due to the fact that the contributor table is not correctly updated when a modification is made in the spreadsheet, as with the collaborative edition we use `spreadsheet.revision` to update the spreadsheet whereas before we used the `write` method. This commit fixes this issue by updating the contributor table when the user join the spreadsheet. We could also have updated the contributor table when the user do an update (create a `spreadsheet.revision`), but this would have cause a lot of useless updates. Task-id 3601075 Forward-Port-Of: odoo/enterprise#54929 Forward-Port-Of: odoo/enterprise#52324