Thursday, March 13, 2025
17 changes · saas-17.4
Resolved issues and error corrections
This fix ensures spreadsheet pivot filter field matching is updated through the proper change history. As a result, undo and redo actions behave reliably when users adjust global filters in spreadsheets.
Original PR description
Before this commit, the field matching of the pivots was changed in place instead of using `this.history`, which caused issues with the undo/redo. Task: 4646822 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The user profile screen once again shows a warning when a user's timezone differs from the expected setting. This helps users and administrators notice timezone mismatches that could otherwise affect scheduling, dates, and other time-sensitive information.
Original PR description
**Issue** The timezone mismatch alert on the user view is not displayed as previously. Expected behavior: like in previous versions, show a warning to the user.  **Cause** A previous change (https://github.com/odoo/odoo/pull/137031) made invisible fields unnecessary if they are used in a python expression in the view. However, the field is needed here since it's used in a js widget.
This fixes a small styling issue in the mail app by removing an invalid rule related to user mentions. There is no expected visual change, but it helps keep the interface styling clean and avoids malformed CSS in the product.
Original PR description
This commit fixes a malformed CSS rule (introduced in commit [1]) trying to define the `font-size` of the mentions. In a nutshell, the `rfs()` Bootstrap's mixin has two arguments: - the first is the base size - the second is the property to apply the calculated size to In this case, it generated the following malformed rule: `0.8125rem: 0.8125rem;`. As this rule isn't applied anyway and the visual result is OK, this commit simply removes it. [1]: https://github.com/odoo/odoo/pull/170765
This update fixes an internal project scheduling test so it works consistently whether timesheet features are installed or not. It helps prevent false test failures and keeps future project planning updates safer to release.
Original PR description
Before this commit, the `test_smart_schedule_with_allocated_hours_and_deadlines` test fails when only `project_enterprise` module is installed because the allocated_hours on the tasks are recomputed. However, when timesheet_grid module is installed, the project inside the test has the timesheets feature enabled by default and so the allocated_hours are not recomputed because we suppose the allocated_hours on tasks inside that project can only be altered by the user when the tasks are already created. This commit checks in the test is timesheet_grid module is installed to give the right expected allocated_hours on tasks. runbot-108336
Miscellaneous changes
Currently, changing the plan of an analytic account won't do anything with regards to the analytic lines currently using that account: the value will stay recorded in a wrong field. This commit will update all the lines currently using that account in the column of the previous plan. opw-4338406 Forward-Port-Of: odoo/odoo#199287
Original PR description
Currently, changing the plan of an analytic account won't do anything with regards to the analytic lines currently using that account: the value will stay recorded in a wrong field. This commit will update all the lines currently using that account in the column of the previous plan. opw-4338406 Forward-Port-Of: odoo/odoo#199287
Versions -------- - 16.0+ Steps ----- 1. Have a product with a "No variant" or customer attribute; 2. add product to a sales order. Issue ----- There is a blank line between the product name & attribute descriptor. Cause ----- The `_get_sale_order_line_multiline_description_variants` method returns either an empty string, or a string that starts with 2 newlines. Solution -------- Start with only 1 newline. opw-4585174 Forward-Port-Of: odoo/odoo#201011
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Have a product with a "No variant" or customer attribute; 2. add product to a sales order. Issue ----- There is a blank line between the product name & attribute descriptor. Cause ----- The `_get_sale_order_line_multiline_description_variants` method returns either an empty string, or a string that starts with 2 newlines. Solution -------- Start with only 1 newline. opw-4585174 Forward-Port-Of: odoo/odoo#201011
- Install the CRM app; - Activate leads from the settings; - Create an opportunity with an email address; - Create a lead with the same email address; - Save the lead; - Click on "Convert to Opportunity" (this opens a dialog); - Choose "Merge with existing opportunities"; - Click on "Create Opportunity"; Before this commit, a record not found error notification is displayed. This is because, when closing the dialog, we try to reload the current view and the record doesn't exist any m
Original PR description
- Install the CRM app; - Activate leads from the settings; - Create an opportunity with an email address; - Create a lead with the same email address; - Save the lead; - Click on "Convert to Opportunity" (this opens a dialog); - Choose "Merge with existing opportunities"; - Click on "Create Opportunity"; Before this commit, a record not found error notification is displayed. This is because, when closing the dialog, we try to reload the current view and the record doesn't exist any more. This causes an RPC to reload a view that we are leaving, which is not ideal. Now, we avoid reloading views that we are leaving when closing the dialog. opw-4630624 Forward-Port-Of: odoo/odoo#201109
When importing an xml invoice, we display a generic error in case of Exception. This is useful from a technical point of view but this is obscur for the user. With this commit, in case of a UserError, we add the error message in the chatter. Let's assume a wrong configuration and steps like this: - Belgian demo company, `account_peppol` installed and activated - Make sure there are no moves in `Vendor Bills` journal - On the account 600000, set `Allowed Journals` to be any journal different
Original PR description
When importing an xml invoice, we display a generic error in case of Exception. This is useful from a technical point of view but this is obscur for the user. With this commit, in case of a…
When importing an xml invoice, we display a generic error in case of Exception. This is useful from a technical point of view but this is obscur for the user. With this commit, in case of a UserError, we add the error message in the chatter. Let's assume a wrong configuration and steps like this: - Belgian demo company, `account_peppol` installed and activated - Make sure there are no moves in `Vendor Bills` journal - On the account 600000, set `Allowed Journals` to be any journal different from `Vendor Bills` - From the journal dashboard, vendor bills journal, click on `Fetch from peppol`, then go to the bil that has been created -> In the chatter you will see the error message: "Error importing attachment '2_demo_vendor_bill' as invoice (decoder=_import_invoice_ubl_cii)" This is because we raise the constrains `account_move_line._check_constrains_account_id_journal_id`, but the user will never know until we display the UserRrror message in the chatter. opw-4513344 Forward-Port-Of: odoo/odoo#200694
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201246 Forward-Port-Of: odoo/odoo#200033
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201246 Forward-Port-Of: odoo/odoo#200033
## Versions: 16.0+ ## Issue: When changing the website language from the cart page, the product description is not translated while all other elements of the page are. ## Steps to reproduce: Install at least 2 languages available on website; From the shop, add a product (e.g. "Customizable Desk") to cart; Move to the cart and change language. ## Cause: Description is retrieved without being recomputed with selected language. opw-4485686 Forward-Port-Of: odoo/odoo#200966 Forwar
Original PR description
## Versions: 16.0+ ## Issue: When changing the website language from the cart page, the product description is not translated while all other elements of the page are. ## Steps to reproduce: Install at least 2 languages available on website; From the shop, add a product (e.g. "Customizable Desk") to cart; Move to the cart and change language. ## Cause: Description is retrieved without being recomputed with selected language. opw-4485686 Forward-Port-Of: odoo/odoo#200966 Forward-Port-Of: odoo/odoo#198073
In commit [1], when clicking on a deleted record in the breadcrumb was handled correctly, a notification was displayed, and the previous controller was restored. However, the deleted record remained in the breadcrumb, and the name was changed after the click (it took the same name as the previously restored controller). This led to some confusion, and the possibility of clicking on the deleted record again. This commit, removes the deleted record from the breadcrumb. [1]: https://g
Original PR description
In commit [1], when clicking on a deleted record in the breadcrumb was handled correctly, a notification was displayed, and the previous controller was restored. However, the deleted record remained in the breadcrumb, and the name was changed after the click (it took the same name as the previously restored controller). This led to some confusion, and the possibility of clicking on the deleted record again. This commit, removes the deleted record from the breadcrumb. [1]: https://github.com/odoo/odoo/commit/a7a7c150aa9bb6c3e36f3842d6df6f7316fe8e95 opw-4630624 Forward-Port-Of: odoo/odoo#201136
Before this PR, a request was sent for each character typed inside the search of the invite to the channel panel. This PR introduces a debounce to avoid spamming the server with useless requests. Part of Task-4637517 Forward-Port-Of: odoo/odoo#201373
Original PR description
Before this PR, a request was sent for each character typed inside the search of the invite to the channel panel. This PR introduces a debounce to avoid spamming the server with useless requests. Part of Task-4637517 Forward-Port-Of: odoo/odoo#201373
Use case: When sending stock ewaybill with no taxes at that time government API is expecting the taxes values as `0`. Issue: When there is no tax applied we get an empty list due to which it doesn't set the default taxes to `0` Fix: We make sure if there no taxes then return a default taxes as `0` opw-4639009 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201118
Original PR description
Use case: When sending stock ewaybill with no taxes at that time government API is expecting the taxes values as `0`. Issue: When there is no tax applied we get an empty list due to which it doesn't set the default taxes to `0` Fix: We make sure if there no taxes then return a default taxes as `0` opw-4639009 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201118
This fix aims to improve the user experience on mobile by removing useless tooltips on the chatter. Since the user usually does not have a keyboard on the mobile, we do not show the keybind tooltip when the screen is small task-4633869 Forward-Port-Of: odoo/odoo#200961
Original PR description
This fix aims to improve the user experience on mobile by removing useless tooltips on the chatter. Since the user usually does not have a keyboard on the mobile, we do not show the keybind tooltip when the screen is small task-4633869 Forward-Port-Of: odoo/odoo#200961
**Issue** The project's Gantt view doesn't work if the "Project Stages" setting is not enabled. **Steps to reproduce** - Install `project_enterprise` and Studio. - Have project stages disabled. - Open Projects app. - Click on Studio button > Views > Try to activate Gantt view. -> `AccessError for read on stage_id` **Cause** The `stage_id` field used on the project gantt view is only readable if the project stages feature is enabled. https://github.com/odoo/enterprise/blob/b911ed1
Original PR description
**Issue** The project's Gantt view doesn't work if the "Project Stages" setting is not enabled. **Steps to reproduce** - Install `project_enterprise` and Studio. - Have project stages disabled. -…
**Issue** The project's Gantt view doesn't work if the "Project Stages" setting is not enabled. **Steps to reproduce** - Install `project_enterprise` and Studio. - Have project stages disabled. - Open Projects app. - Click on Studio button > Views > Try to activate Gantt view. -> `AccessError for read on stage_id` **Cause** The `stage_id` field used on the project gantt view is only readable if the project stages feature is enabled. https://github.com/odoo/enterprise/blob/b911ed1e857e1534c86495cd4934c1adb8ae9597/project_enterprise/views/project_views.xml#L12 **Solution** A hack is to add in the model metadata the `colorField` key used by the gantt renderer to color the pills: https://github.com/odoo/enterprise/blob/28f2fba988b1b225c97d15729020962ed4dee73b/web_gantt/static/src/gantt_renderer.js#L778 It is normally set when parsing the view here: https://github.com/odoo/enterprise/blob/dfe2795b820527a8226d8cf1afa5bf7ac8fcb53d/web_gantt/static/src/gantt_arch_parser.js#L194 This avoids trying to read the field if the user doesn't have the necessary `project.group_project_stages` group. Note: some missing views are also added in this commit, they were missing when the project stage feature wasn't enabled. opw-4592110 Forward-Port-Of: odoo/enterprise#79968
Before this commit a translated mail layout's header would be (e.g. in Dutch) 'Je signature'. After this commit, the model's description is translated (e.g. in Dutch) to 'Je Handtekening'. This replicates the same behavior as the _send_signature_access_mail() method. Impacted versions: 16.0, 17.0 and 18.0 Forward-Port-Of: odoo/enterprise#79575 Forward-Port-Of: odoo/enterprise#77948
Original PR description
Before this commit a translated mail layout's header would be (e.g. in Dutch) 'Je signature'. After this commit, the model's description is translated (e.g. in Dutch) to 'Je Handtekening'. This replicates the same behavior as the _send_signature_access_mail() method. Impacted versions: 16.0, 17.0 and 18.0 Forward-Port-Of: odoo/enterprise#79575 Forward-Port-Of: odoo/enterprise#77948
A potential access right issue appears in the case a simple HR user accessed the employee view without payroll rights since source-tax mutations are restricted to payroll users. opw-4607112 Forward-Port-Of: odoo/enterprise#81200
Original PR description
A potential access right issue appears in the case a simple HR user accessed the employee view without payroll rights since source-tax mutations are restricted to payroll users. opw-4607112 Forward-Port-Of: odoo/enterprise#81200