Saturday, March 21, 2026
7 changes · saas-19.1
Enhancements to existing features
This update enhances database user management by adding a filter to easily identify databases associated with a user. Additionally, logging has been implemented for API calls to track database activity and synchronization processes have been refined for improved user experience and data accuracy.
Original PR description
### [FIX] databases: fix invite user wizard when no users in list When there was no users in the list, the invite users wizard was failing to find the project on which the new users shall be invited. With this commit, the wizard is initialized with the active_id instead of self.project_id, which is always set in the databases settings form view. ### [IMP] databases: add filter on database users Add a filter on the databases list view to see all the databases that contain a given user. Task-id: [5945293](https://www.odoo.com/odoo/project.task/5945293) Forward-Port-Of: odoo/enterprise#108346
Resolved issues and error corrections
This update resolves an issue where tax calculations for Peruvian VAT (ISC) were incorrect due to a missing configuration element. The PR reintroduces a key component needed for accurate tax determination, ensuring compliance with Peruvian tax regulations. This ensures accurate VAT reporting for Odoo Enterprise users operating in Peru.
Original PR description
In [^1] the PE implementation for XML generation was rewritten to use the new dict_to_xml design rather than a large QWeb view. In that refactor the `TierRange` key on `TaxCategory` was lost. This PR re-introduces it. task-6046603 [^1]: odoo/enterprise#87598 Forward-Port-Of: odoo/enterprise#111061
This update significantly speeds up the process of expanding project tasks to include users. Previously, a slow search query was triggered repeatedly for large numbers of tasks. The change now uses a more efficient search method, reducing task expansion time from 30 seconds to just 1.4 seconds for 300,000 tasks.
Original PR description
Before this commit, expanding the `user_ids` involved fetching all the tasks satisfying a domain by a search call and returning only the active users by accessing the field `user_ids` from the fetched recordset of tasks. This approach introduced slowness with a big number of `project.task` since for each batch of **1000** records, a `__get__` call on the field will trigger an `SQL` query. I have updated the code to have the inverse field `task_ids` in the `res.users` model and did the search, the other way around searching directly the `res.users` model. | Tasks | Before | After | | :--- | :--- | :--- | | 300K | 30s | 1.4s | opw-5942477 Forward-Port-Of: odoo/enterprise#110641
This update resolves an issue where the WhatsApp Business Account webhook would crash when multiple phone numbers were linked to the same account. Odoo's design allows for multiple phone numbers per account, but this change prevents the system from encountering errors when processing webhooks triggered by these configurations. This ensures more reliable WhatsApp integration for our users.
Original PR description
The webhook crashes when a WhatsApp Business Account uses multiple phone numbers. ### Steps to reproduce 1. Link two phone numbers to the same Account ID. 2. Receive a webhook for that account. ### Cause Odoo allows multiple records to share one Account ID to support multiple phone numbers. When a webhook arrives, searching by this ID returns a of all 2 matching records. The system crashes because it tries to read a security secret from this recordset to verify the request. opw-5419180 Forward-Port-Of: odoo/enterprise#107134
This update fixes a previous issue where clicking on the 'Initial Demand' in the stock valuation report opened the wrong account.view without relevant filters. Now, the click redirects to the correct account.move.line, displaying the initial balance and related information, improving the report's usability and accuracy.
Original PR description
Currently the initial demand click will open the account.move view without filter. So you don't know what is related to the initial balance or not. This commit updates the action to use a domain on the accounts used by inventory valuation. Also it shows the account.move.line instead. It also add a date if needed to be concistent with the reprot. Task: 6024514 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#253907
This pull request updates the core spreadsheet component within Odoo. It includes several bug fixes and improvements related to formula handling, clipboard pasting, chart display, and dark mode compatibility. These changes enhance the spreadsheet's functionality and usability for users.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/96788195e8 [REL] 19.1.11 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/96788195e8 [REL] 19.1.11 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/cf6623c833 [FIX] Formulas: fix missing debugger char in formula reconstruction [Task: 6019586](https://www.odoo.com/odoo/2328/tasks/6019586) https://github.com/odoo/o-spreadsheet/commit/d94c753b98 [FIX] clipboard : paste as value [Task: 5936382](https://www.odoo.com/odoo/2328/tasks/5936382) https://github.com/odoo/o-spreadsheet/commit/2efaf919b0 [FIX] Chart: Update geojson data [Task: 5224009](https://www.odoo.com/odoo/2328/tasks/5224009) https://github.com/odoo/o-spreadsheet/commit/e9dfa413aa [FIX] filters: allow criterion filter in dashboard [Task: 6017734](https://www.odoo.com/odoo/2328/tasks/6017734) https://github.com/odoo/o-spreadsheet/commit/5e7fb8cc7b [FIX] charts: hierarchical charts should show formatted labels instead of raw [Task: 5913296](https://www.odoo.com/odoo/2328/tasks/5913296) https://github.com/odoo/o-spreadsheet/commit/d15681ef92 [FIX] composer: composer hover in dark mode [Task: 5928811](https://www.odoo.com/odoo/2328/tasks/5928811) https://github.com/odoo/o-spreadsheet/commit/e7624a90ee [REV] composer: use opacity rather than color alpha [Task: 5928811](https://www.odoo.com/odoo/2328/tasks/5928811) https://github.com/odoo/o-spreadsheet/commit/f542f0d387 [FIX] standalone_composer: wrong composer content on start edition [Task: 6022743](https://www.odoo.com/odoo/2328/tasks/6022743) https://github.com/odoo/o-spreadsheet/commit/b8f8da346e [FIX] pivot: can add the same granularity [Task: 5949522](https://www.odoo.com/odoo/2328/tasks/5949522) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
This update resolves an issue where creating multiple stock valuation closings with different accounting dates resulted in an error. The fix ensures the system correctly considers the accounting date when validating closing entries, preventing the 'Invalid Operation' error. This improves the reliability of inventory valuation processes.
Original PR description
**Issue**: Making two stock valuation closings with different accounting dates in the past, on the same day, leads to an "Invalid Operation" error. **Steps to reproduce**: - In settings, set…
**Issue**: Making two stock valuation closings with different accounting dates in the past, on the same day, leads to an "Invalid Operation" error. **Steps to reproduce**: - In settings, set inventory valuation at invoicing - Create 2 bills of a storable product:: - `Accounting date` = `bill date` = today - 2 days - `Accounting date` = `bill date` = today - 4 days - Go to Accounting > Review > Inventory > Inventory Valuation - Set the day to today - 3 days, generate and post the entry - Go back the Inventory Valuation - Set the day to today - 1 day, generate the entry -> Invalid Operation error: the system thinks it exists a closing entry after the selected date. **Cause**: The regression was introduced by commit https://github.com/odoo-dev/odoo/commit/594654deb84ba45e9a6a765b89de79e4ce4e4b50 Indeed, `_get_last_closing_date` was modified to prioritize the creation date of the closing instead of its accounting date: https://github.com/odoo/odoo/blob/594654deb84ba45e9a6a765b89de79e4ce4e4b50/addons/stock_account/models/res_company.py#L336 As a consequence, the second closing with at_date = today - 1 day was compared against last_closing_date = today (creation date): https://github.com/odoo/odoo/blob/b3559145febc16271c78ca516af9d7e99bf3452f/addons/stock_account/models/res_company.py#L53-L55 **Solution** To avoid to revert this commit https://github.com/odoo-dev/odoo/commit/594654deb84ba45e9a6a765b89de79e4ce4e4b50 fix, both creation and accounting date are used. opw-5559264 Forward-Port-Of: odoo/odoo#249734