Daily updates from Odoo
Saturday, June 6, 2026
11 changes · saas-19.3
Enhancements to existing features
This update introduces a new button to streamline the process for French users switching between Peppol and PDP accounts. Previously, reregistration was complex, particularly when transitioning between these systems. This change simplifies the process, improving usability and supporting key business workflows related to PEPPOL compliance.
Original PR description
#### [IMP] l10n_fr_pdp: fix visibility for peppol (non-PDP) #### [IMP] account_peppol,l10n_fr_pdp: reregister This commit adds a button so that users can reregister more easily. This is i.e. useful to switch from Peppol to PDP for French users. #### meta task-6265603 Forward-Port-Of: odoo/odoo#268699 Forward-Port-Of: odoo/odoo#267948
This update implements webhooks for exchanging Peppol documents in the French (l10n_fr_pdp) module. This was previously missing in the 18.0 release and is now essential for compliant data exchange with Peppol, ensuring accurate financial reporting. The change was implemented to address a gap identified during the recent system migration.
Original PR description
We did not have webhooks in 18.0 for Peppol and we did not have time to implement / test it during the FW-porting. This commit adds the route on community side that is called from IAP. task-None IAP PR: https://github.com/odoo/iap-apps/pull/1639 Forward-Port-Of: odoo/odoo#268674 Forward-Port-Of: odoo/odoo#268472
Resolved issues and error corrections
This update fixes a bug in the spreadsheet account formulas that prevented correct calculations when users entered company IDs as numbers. Now, all company IDs are automatically converted to numbers, ensuring accurate calculations and preventing server errors. This improves the reliability of the spreadsheet accounting features.
Original PR description
Current behavior before PR: - The `ODOO.CREDIT`, `ODOO.DEBIT`, and `ODOO.BALANCE` formulas passed `companyId.value` directly to the server without converting it to a number. - If a user passed company_id as a string (e.g., '1' from a cell), it was sent to the server as a string, causing a server error. Desired behavior after PR is merged: - `companyId` is converted using toNumber() before being passed to the getter and the server, so '1' becomes 1. - null is preserved as-is (no company filter) while any non-null value is safely cast to an integer. Task: [6240005](https://www.odoo.com/odoo/project/2328/tasks/6240005) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268415 Forward-Port-Of: odoo/odoo#266009
This update resolves an issue preventing accurate order data synchronization from Point of Sale systems. The fix corrects a state check in the invoicing process and resolves a minor typo, ensuring data is correctly transmitted to the accounting system. This improves the reliability of order information.
Original PR description
In this commit: - Update `read_pos_data` to check `done` state for invoicing instead of `invoiced` state - Load `account.move` model instead of `account_move` (fix typo) Task-5887318 Forward-Port-Of: odoo/enterprise#119407 Forward-Port-Of: odoo/enterprise#105839
This update resolves an issue where credit notes couldn't be created if the system encountered archived bank accounts. The fix ensures that the system explicitly checks for inactive bank accounts, preventing validation errors and allowing credit notes to be successfully confirmed. This improves the reliability of invoice processing.
Original PR description
When creating a credit note, it is possible for the compute method _compute_partner_bank_id to be called in a context where active_test is falsy, leading to moves that cannot be validated because it…
When creating a credit note, it is possible for the compute method _compute_partner_bank_id to be called in a context where active_test is falsy, leading to moves that cannot be validated because it would raise with the following error message: > The recipient bank account linked to this invoice is archived. So you cannot confirm the invoice. The state of the 'active_test' ctx key cannot be known in advance in a compute and should not be assumed as True; according to the framework team: > In practice, a compute method cannot expect active_test to have > a particular value. It may be invoked with any context. There is no > "context purge" done by the ORM. The computation may be "prepared" > with a context (the one of modified()) and actually done with another > context (code accessing the field before some explicit flush). In > other words, if the compute method searches for a record that matches > some conditions, and if that record cannot be inactive, then this > condition must be explicit in the search domain (or in the context). opw-6229286 Forward-Port-Of: odoo/odoo#268389 Forward-Port-Of: odoo/odoo#267398
This update optimizes how Odoo searches for names, specifically when dealing with large datasets. By batching setup processes, the system now performs these calculations more efficiently, leading to faster search results. This improves the overall user experience.
Original PR description
If a method has a costly setup in `_compute_display_name` but that can be batched, allow the ORM to do the setup only once for all the lines to compute Forward-Port-Of: odoo/odoo#267221 Forward-Port-Of: odoo/odoo#263553
This update fixes a technical error that could prevent shifts with zero allocated percentages from being correctly calculated. The change simplifies the calculation by directly using start and end times instead of relying on a potentially problematic percentage-based formula. This ensures accurate break time calculations across all shift types.
Original PR description
When editing break_time on a shift where allocated_percentage is 0 (e.g., break consumes full duration), the onchange raised a ZeroDivisionError due to dividing by allocated_percentage. Compute the slot duration directly from start/end datetimes instead of reverse-engineering it from allocated_hours and allocated_percentage, which is algebraically equivalent but avoids the division by zero. task-6274706
This update fixes a previous issue where the system incorrectly identified SIREN numbers by simply using the first 9 digits of the company ID. Now, a validation helper method is used to ensure accurate SIREN identification, particularly for users on IAP who may not have provided a SIREN. This improves the accuracy of KYC processes.
Original PR description
Currently we just take the first 9 numbers of the `company_id` and say it is the SIREN. On IAP we have some people who just seem to have put their company name. After this commit we use a helper method that does some simple validation at least. task-None Forward-Port-Of: odoo/odoo#268621 Forward-Port-Of: odoo/odoo#268202
This update corrects a technical error in the French tax reporting module (l10n_fr_pdp) that was preventing proper data processing. The issue stemmed from incorrectly structuring data within the system, and this fix ensures accurate reporting for French businesses. It's a routine maintenance update.
Original PR description
'Content' was set as an attribute of 'IncludedNote' instead of a child node. See ppf messages 164, 166 & 168 Forward-Port-Of: odoo/odoo#268593
This pull request updates the core spreadsheet component (o_spreadsheet) to the latest version (19.3.6). It addresses several bug fixes and performance improvements related to spreadsheet functionality, including chart export, pivot tables, and table manipulation, ensuring a stable and reliable spreadsheet experience.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/0fe939b4db [REL] 19.3.6 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/0fe939b4db [REL] 19.3.6 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/786289f58f [FIX] pivot: adding a pivot definition marks it as unused [Task: 6267596](https://www.odoo.com/odoo/2328/tasks/6267596) https://github.com/odoo/o-spreadsheet/commit/6e9fa50682 [FIX] Pivot: runtime definition might not be loaded [Task: 6267596](https://www.odoo.com/odoo/2328/tasks/6267596) https://github.com/odoo/o-spreadsheet/commit/0d9679ec79 [FIX] Formats: support non-standard space characters [Task: 6259325](https://www.odoo.com/odoo/2328/tasks/6259325) https://github.com/odoo/o-spreadsheet/commit/84213e8f8b [FIX] xlsx: preserve chart title font size on xlsx export [Task: 6000071](https://www.odoo.com/odoo/2328/tasks/6000071) https://github.com/odoo/o-spreadsheet/commit/cfcb7c9d7c [FIX] Tables: invalidate computed style on `DELETE_CONTENT` [Task: 6253199](https://www.odoo.com/odoo/2328/tasks/6253199) https://github.com/odoo/o-spreadsheet/commit/9d39f5ddb1 [FIX] table: "delete table" menu item does not always work [Task: 6247743](https://www.odoo.com/odoo/2328/tasks/6247743) https://github.com/odoo/o-spreadsheet/commit/7fd6762dda [FIX] Registry: remove duplicate Registry class [Task: 6259131](https://www.odoo.com/odoo/2328/tasks/6259131) https://github.com/odoo/o-spreadsheet/commit/ec259e42ca [FIX] LockedSheet: missing commands in the whitelist [Task: 6240417](https://www.odoo.com/odoo/2328/tasks/6240417) https://github.com/odoo/o-spreadsheet/commit/76e93ea843 [PERF] menu: avoid quadratic complexity with proxies [Task: 6250318](https://www.odoo.com/odoo/2328/tasks/6250318) 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 a bug where shift allocations incorrectly showed 0% when created on weekends, preventing accurate time calculations. Additionally, a test was adjusted to avoid running during demo data installations, ensuring a smoother user experience. These changes improve the reliability and usability of the planning module.
Original PR description
## [FIX] planning_field_service: avoid division by 0 Before this commit, when the shift is created during the weekend, the allocated_percentage will be 0 percent because the resource assigned is not…
## [FIX] planning_field_service: avoid division by 0 Before this commit, when the shift is created during the weekend, the allocated_percentage will be 0 percent because the resource assigned is not supposed to work at that day and so a division by zero occured in the onchange of break_time field in planning.slot model. This commit checks if allocated_percentage is not equal to 0 before computing the new allocated hours when the user alters break_time field on a planning.slot. ## [FIX] planning_field_service: don't start test with onboarding tour with demo Before this commit, the planning_field_service_tour tour does not work when there is demo data because the tour will select the first slot in the gantt view which will be an open shift instead of a shift assigned to the current user because of that, the sign in button is not displayed as expected. This commit makes sure the test running the planning_field_service_tour tour is skipped when demo data are installed. runbot-error-242483 Forward-Port-Of: odoo/enterprise#119032