Daily updates from Odoo
Friday, February 6, 2026
9 changes · 17.0
Resolved issues and error corrections
This pull request updates the core spreadsheet library used in Odoo. It addresses several bugs and improves stability, specifically fixing issues with importing Excel files and improving the reliability of the spreadsheet functionality. These changes ensure a smoother and more robust experience for users working with spreadsheets within Odoo.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/5a46aed424 [REL] 17.0.86 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/5a46aed424 [REL] 17.0.86 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/045e5c6457 [FIX] Cell: do not rely on key presence in commands [Task: 5499921](https://www.odoo.com/odoo/2328/tasks/5499921) https://github.com/odoo/o-spreadsheet/commit/96220f7707 [FIX] tests: fix network serialization in mock [Task: 5499921](https://www.odoo.com/odoo/2328/tasks/5499921) https://github.com/odoo/o-spreadsheet/commit/2ed5b7ce4b [FIX] XLSXImport: Fix crash on incomplete xlsx file with external reference [Task: 5499753](https://www.odoo.com/odoo/2328/tasks/5499753) 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 fixes a previous issue where mention suggestions prioritized recent chat conversations over the record's followers. Now, mention suggestions will prioritize the record's followers, ensuring users are alerted to relevant discussions and individuals. This enhancement improves the efficiency of communication within Odoo.
Original PR description
Before this commit, mention suggestions prioritized partners from recent chats over the record's followers. This commit fixes the behavior by reordering the sequence numbers to have the following priority order: Thread followers > Internal users > Recent chat partners. <img width="1051" height="316" alt="image" src="https://github.com/user-attachments/assets/04b80028-07b5-40b2-8972-e80f933980c7" /> task-5313114
This update fixes a bug in the BoM report that prevented users from switching between product variants. The issue stemmed from a discrepancy in how variant order was handled between the backend and the frontend, leading to incorrect variant selection. The fix ensures the frontend uses the explicitly passed variant ID for accurate switching.
Original PR description
Steps to reproduce on runbot ------------------ Select a product with several variants and a Bill of Materials (e.g. Stool). Change the variants order so that their ids are not ordered, this can be…
Steps to reproduce on runbot ------------------ Select a product with several variants and a Bill of Materials (e.g. Stool). Change the variants order so that their ids are not ordered, this can be done by modifying the default_code for example (e.g. Internal Reference for variant "Color: Green" set to "A"). When accessing the BoM report, you won’t be able to switch to one of the possible variants (in the example the Dark Blue variant). Why it is happening ------------------ The default variant to be displayed when opening the report is selected in the backend using the product_variant_id field. This field is computed as the first element in product_variant_ids as they are ordered in the model. We then send this variant’s information to the frontend and a dictionary containing every variant (key= id and value = display_name). In the serialization process, the object is reordered based on the keys. Thus, if the variants were not ordered based on their ids in python, the order will change. The displayed variant is correct as it has been passed directly but the frontend also computes the currentVariant attribute. This is computed as the first element in the dictionary but in this case, it is not the one that has been selected in the backend, as the order changed. As a result, you see the report for a variant A but the frontend considers you are on the report for variant B so you cannot switch to variant B as you are supposed to be already on it. The fix ------------------ I propose to use the explicitly passed id as the currentVariantId. opw-5409493 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a previous issue where switching between Invoice and Credit Note types on already-posted transactions caused errors. Now, users can switch these types even if the transaction's internal/external move sequence has been manually cleared, eliminating the need for manual data exports and re-imports. This improves user efficiency and reduces potential data errors.
Original PR description
Previously, switching an Invoice to a Credit Note (or vice versa) on a posted in_()/out_() move raised a blocking error. This forced users to export, delete, and re-import the document with the correct move type. This **PR** relaxes the restriction for posted moves whose sequence has been manually cleared, allowing the `Switch Invoice/Credit Note` action to proceed in that specific case. **task**-5905206
This update corrects a bug where URL parameters were lost during website redirects, leading to errors and incorrect functionality. The fix ensures that all parameters passed during a redirect are correctly encoded, preventing issues with features like appointment scheduling. This improves the reliability of the website for users.
Original PR description
Scenario from 17.0:
- set domain on website
- go to website /website/force/1?path=%2F%3Fa%3Db%26c%3Dd with another
domain
=> you are redirected to {domain}/?a=b instead of {domain}/?a=b&c=d
Scenario from 18.0:
- set domain on website
- go to /appointment/1 on other domain, select person date and time
- click on "Editor"
=> you get error:
> TypeError: AppointmentController.appointment_type_id_form() missing 1
> required positional argument: 'duration'
Cause: the /website/force/ domain redirection doesn't encode the
parameter when redirecting, so we lose parameters after the first one.
Fix: encode parameters when redirecting domain in /website/force/ route.
opw-5441957This update resolves an issue with the calculation of Spanish VAT (Mod 390) within the Odoo accounting system. Specifically, it adjusts how balances from certain accounts are incorporated into the VAT calculation, ensuring accurate reporting for Spanish businesses. This change improves compliance with Spanish tax regulations.
Original PR description
In this commit: Fixing 390 computation: - Add balance from 27, 29, 649 and 31 to casilla 33. - Add balance from 28, 30, 650 and 32 to casilla 34. Related PR : https://github.com/odoo/enterprise/pull/105597 task-5732679
This update fixes inaccuracies in the Kardex report for Peru by incorporating landed costs and price adjustments, ensuring accurate reporting of stock movements. The changes improve the report's reliability and align it with Odoo's valuation layer data.
Original PR description
Refactored the logic to generate the Kardex report based on `stock.valuation.layer`, for the following reasons: 1. **Landed costs**: These must be considered in the report. Odoo already creates…
Refactored the logic to generate the Kardex report based on `stock.valuation.layer`, for the following reasons: 1. **Landed costs**: These must be considered in the report. Odoo already creates valuation layers for landed costs, and the report must use the date when the landed cost was recorded, not the original stock move date. 2. **Price adjustments**: Product price adjustments generate valuation layers without stock moves. These layers are now included in the report. Additional fixes and improvements: - Correctly map columns 18 to 26 in Report 13.1: - 18–20: Incoming movements - 21–23: Outgoing movements - 24–26: Final balance - Ensure `cost_in` and `cost_out` values are always positive. The sign now depends on the movement quantity, not the unit cost. - Replace the product list with a dictionary to track accumulated quantities and values per product for accurate balance calculation. - Extend test coverage to include cases where the report includes opening balances due to past transactions. - **MRP movements**: MRP processes don’t generate pickings, but their stock moves are linked to operation types. The report now uses codes `19` for incoming and `27` for outgoing MRP-related movements. - **Reversal of pickings**: Since Odoo copies the original picking and skips reassignment logic, we now override the reversal wizard to set the correct PE operation type: - `25` for incoming reversals - `24` for outgoing reversals - Force operation type `99` for all `A1` lines, as required by the report. - Ensure report dates are processed in the user's timezone for consistency with the layer view in Odoo.
This update resolves an issue with the calculation of coordination deductions in the Swiss payroll module (l10n_ch_hr_payroll_elm_transmission). The fix ensures accurate reporting of these deductions to the Swiss tax authorities, aligning with updated regulations. This improves the reliability of payroll reporting for Swiss businesses.
This update resolves an issue where withholding tax moves in the Spanish accounting reports were incorrectly assigning a 'type for 347' field. The change ensures this field is left blank, aligning with Spanish tax regulations and improving the accuracy of financial reporting. This update ensures compliance and reliable reporting for Spanish businesses using Odoo Enterprise.
Original PR description
- Moves that use withholding taxes should have the `type for 347` unselected and left blank. Related PR : https://github.com/odoo/odoo/pull/245828 task-5732679