Friday, March 27, 2026
20 changes · 18.0
Resolved issues and error corrections
A recent update to the approval report caused partner names exceeding 63 characters to overflow, making the report unreadable. This fix adds a column limit to the partner field in the report, ensuring all data is displayed correctly and preventing visual errors. This improves the report's usability and data accuracy.
Original PR description
step to reproduce: - install "approval" with demo data - have a partner with name length > 63 - open one of the approvals and change its type to "general approval" - add this partner in contact field - print approval request report Observation: - the partner overflows out of report Fix: - we limit the partner field with `col-9`. For a safe measure i have added `col-9` for `request_owner_id` and `approver_ids` **Before** <img width="1057" height="326" alt="image" src="https://github.com/user-attachments/assets/a8eea789-5cc7-4658-88b5-78751759d043" /> **After** <img width="994" height="330" alt="image" src="https://github.com/user-attachments/assets/bfbc061b-a6e0-4593-a3cc-c85cb81db6e2" /> opw-6005752
This update fixes a warning displayed in the tax report when vendor bills have expense lines with different vehicle assignments. The fix allows for accurate reporting even when some expense lines are associated with a vehicle and others are not, ensuring consistent tax calculations. This improves the reliability of financial reporting.
Original PR description
**Steps to reproduce:** * Install the **account** and **fleet** modules. * Create a vendor bill with two expense lines using the same tax. * Assign a vehicle_id to one line but leave the other…
**Steps to reproduce:** * Install the **account** and **fleet** modules. * Create a vendor bill with two expense lines using the same tax. * Assign a vehicle_id to one line but leave the other without a vehicle. * Confirm the vendor bill. * Go to **Accounting > Reporting > Tax Report** and Go to `Account > Tax` report. **Observed behavior:** * The tax report shows: 'This report contains inconsistencies. The affected lines are marked with a warning.' **Cause:** * The `_get_extra_query_base_tax_line_mapping()` override forced vehicle_id matching using `COALESCE(base_line.vehicle_id, 0) = COALESCE(account_move_line.vehicle_id, 0)`. * When lines share a tax but have different vehicle_id values (one set, one NULL), Odoo creates a single tax line with `vehicle_id = NULL`. * The strict COALESCE constraint prevented this tax line from matching either base line (NULL ≠ vehicle_id and NULL ≠ NULL when coalesced to 0), causing the inconsistency. **Fix:** * Changed the constraint to only enforce vehicle_id matching when both the base line and tax line have a vehicle_id set. * If either side is NULL, the match is allowed, letting shared tax lines work correctly across mixed vehicle/non-vehicle expense lines. opw-5956645
This update corrects a calculation error in the bank reconciliation widget's tax handling. Previously, RC taxes were incorrectly calculated as 'price included' leading to inaccurate tax amounts. This fix ensures RC taxes are calculated correctly, resulting in the expected tax amount of $25.00 for transactions.
Original PR description
Currently, when we add a tax in the manual operations tab of the bank reconciliation widget, tax computation will be forced as price included. The computation reverts to price excluded when altering the amount. Steps to reproduce: - Create a Statement line of 1000$ - In the Writeoff add 2.5% RC tax - Check created tax lines Issue: Adding a 2.5% RC tax gives 24.39 instead of 25.00 opw-5039386
This update resolves a bug that occurred when creating contracts with working schedules that had zero hours. The issue caused a calculation error (division by zero) during wage computation. This fix ensures accurate wage calculations for employees with zero-hour schedules, preventing the error and improving payroll reliability.
Original PR description
When a working schedule has 0 working hours, creating a contract raises a traceback during hourly wage computation. Steps to reproduce the error: - Install ``l10n_au_hr_payroll`` module - Switch to ``My Australian Company`` - Create a working schedule without any working hours - Create an employee and assign this working schedule > Save - Click on Contracts smart button Traceback: ```py ZeroDivisionError: float division by zero ``` https://github.com/odoo/enterprise/blob/bd746aa43f549c4f7813a849e00447b55e084f21/l10n_au_hr_payroll/models/hr_contract.py#L113-L115 The hourly wage is computed using the working schedule’s hours per day. When this value is 0, it results in the above traceback. sentry-7355577930
This update adds a 200% overtime wage type within the Swiss payroll module (l10n_ch_hr_payroll_elm_transmission). This change ensures accurate reporting of overtime compensation to tax authorities in Switzerland, complying with local regulations. It corrects a previous limitation and improves payroll accuracy for Swiss businesses using this module.
Original PR description
Forward-Port-Of: odoo/enterprise#110796
This update resolves an issue preventing the export of Profit & Loss reports with footnotes enabled for the l10n_lu_reports module. The fix corrects a dependency on an outdated model, ensuring proper XML generation and report functionality. This improves the reliability of financial reporting.
Original PR description
**Steps to reproduce:** * Install the **l10n_lu_reports** module. * Go to **Accounting → Reporting → Profit & Loss**. * Add a footnote on a report line (**⋮ → Annotate**). * Click **Export (XML)** to open the export wizard. * Enable **Import notes as references** and export. **Observed behavior:** * Export fails with `KeyError: 'account.report.manager'`. * XML file cannot be generated when references are enabled. **Cause:** * The export logic relied on the deprecated `account.report.manager` model. * This model was removed in v17([commit](https://github.com/odoo/enterprise/pull/33604/changes#diff-5fc5051f5c0211c0eec96b892e7d29e01b68d804417443502d17bccd8333d7ecL41)) and replaced by `account.report.footnote`. * The footnote retrieval code was not migrated accordingly. **Fix:** * Migrate reference retrieval to use `account.report.footnote`. opw-5890630 Forward-Port-Of: odoo/enterprise#107765
This update resolves an issue where QR-IBANs were incorrectly processed for creditor accounts. The fix ensures QR-IBANs are handled according to documentation, aligning with best practices for payment processing and preventing potential bank rejection errors. This improves the reliability of our payment integrations.
Original PR description
https://github.com/odoo/enterprise/pull/112273 introduced a bug, where qr-iban are put inside Othr node instead of IBAN node for the Creditor account. According to documentation, for the debtor account, you should not use a qr-iban, and if you do, it should be put inside the Othr node (even if in this case, the transfer will probably be refused by the bank).
This pull request removes a context dependency within the quality control module. A previous change needed to be reverted due to issues on the OC side. This change ensures the quality control functionality operates consistently without relying on specific contextual data, improving stability.
Original PR description
Commit [1] must be reverted, cf commit OC side [1] 690293e3daae7ac393e93df1976c2c8364dbe0e0
This update resolves a problem where the Settings app stopped working after uninstalling the `hr_recruitment_extract` module. The fix ensures that if one module is removed, its dependency on another module is also handled, preventing errors and maintaining app functionality. This improves stability and user experience.
Original PR description
Consider the following scenario: 1. User installs the `hr_recruitment_integration_monster` module. 2. User can access the Settings app just fine. 3. User uninstalls the `hr_recruitment_extract` module. 4. User can no longer access the Settings app due to a view rendering error. This is because a view in the `hr_recruitment_integration_monster` module depends explicitly on an XPath introduced by the `hr_recruitment_extract` module. When the latter is uninstalled, the view in the former module becomes invalid, causing a rendering error in the Settings app. This commit makes the module dependency explicit in the manifest so that if the `hr_recruitment_extract` module is uninstalled, the `hr_recruitment_integration_monster` module will also be uninstalled.
This update fixes an issue where Odoo's translation caching wasn't working correctly when related translated fields were updated. Now, when a translated field changes, dependent calculations using that field's translation will continue to use the existing cached translation, improving performance and ensuring accurate translations across different languages. This enhances the user experience by reducing unnecessary processing.
Original PR description
when related translated field (field_x) is changed when onchange, if another computed fields which depends on the field_x is recomputed but using another language value of the field_x. The orm should keep the existing translations in the cache but not drop them. 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#256111
This update streamlines the testing process for the Live Chat module by pre-generating a key asset bundle. Previously, this bundle was rebuilt repeatedly during tests, causing performance slowdowns. This change significantly reduces test execution time and improves overall system stability.
Original PR description
This commit sets the `im_livechat.assets_embed_external` bundle to be pregenerated while running tests to avoid rebuilding it at runtime (i.e. +280 times with a db "all"). Forward-Port-Of: odoo/odoo#255847
This update resolves an issue where the HTML editor would unexpectedly scroll to the top when the command palette was closed. The fix utilizes a temporary workaround to maintain the user's selection and avoids impacting the command palette or ui_service. This improves the overall editing experience.
Original PR description
Before this commit: the editable area scrolls to the top when the command palette is closed by clicking the gray zone After this commit: we override the focus function of the editable and use focusEditable instead, which keeps the selection. Note it's a succession fix of https://github.com/odoo/odoo/pull/250624 and both of them are a workaround without touching the ui_service and command palette. Also added super.destroy() in the previous fix till 18.4. task-6034339 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update ensures that when creating new analytic items through the gross margin smart button, the correct analytic account is automatically selected. Previously, a new record didn't link to an account, requiring manual setup. This change streamlines the process and improves data accuracy for analytic reporting.
Original PR description
When accessing analytic items from the gross margin smart button on an analytic account, creating a new record does not pre-fill the analytic account field. This happens because the context does not set `default_account_id` for the active analytic account, leading to newly created lines not being linked at creation time. This commit ensures the analytic account is correctly passed through the context, so it is automatically set when creating a new analytic line from this flow. Steps to reproduce: - Open an analytic account - Click on the gross margin smart button - Create a new analytic item Before: analytic account not set by default After: analytic account is pre-filled via context task-3909624 Forward-Port-Of: odoo/odoo#255726
This update removes the ability to automatically retain zero-value account move lines, which were often created with incomplete data. This improves data cleanliness and reduces potential reporting issues within the accounting module. The change allows users to manually remove these lines when appropriate.
Original PR description
-added some conditions to allow the user to remove some zero move lines as they may have been created and do not have good information. task-4590580 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
This update resolves an issue where the text editor cursor wasn't updating correctly in iOS Safari when the editor was collapsed (e.g., minimized). By adjusting where the cursor is positioned, the text editor now functions as expected, ensuring accurate input and formatting in this common scenario. This improves the user experience for iOS Safari users.
Original PR description
Before this commit: when we applying format on collapsed cursor, we create a formatted element with ZWS, and set the cursor before the ZWS After this commit: we set the cursor after the ZWS, cause otherwise safari doesn't update the cursor properly leading to unformatted input task-4243977 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes several issues within the odoo spreadsheet library, ensuring smoother spreadsheet functionality and improved performance. The changes address problems with Excel exports and cell rendering, enhancing the overall user experience. This is a routine maintenance update.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/046ebe02e7 [REL] 18.0.61 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/046ebe02e7 [REL] 18.0.61 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/d2bcfec2ad [FIX] grid_renderer_store: keep wrapping width with explicit align [Task: 6032407](https://www.odoo.com/odoo/2328/tasks/6032407) https://github.com/odoo/o-spreadsheet/commit/bb23b58c4f [FIX] config: fix release flow [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/cdc17289d2 [FIX] SheetView: dirtify sheet viewport at UPDATE_CELL [Task: 5953775](https://www.odoo.com/odoo/2328/tasks/5953775) https://github.com/odoo/o-spreadsheet/commit/c98ebc55ee [FIX] xlsx: do not export dynamic tables to excel [Task: 5214240](https://www.odoo.com/odoo/2328/tasks/5214240) 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 an issue where URLs in emails were incorrectly encoded, potentially leading to display problems. The team has switched to a modern URL API for encoding, ensuring accurate URL rendering in the user interface. This improves email functionality and user experience.
Original PR description
Before this commit, the URL was fully encoded using encodeUrl. This commit replaces this approach with the more modern [URL api](https://developer.mozilla.org/en-US/docs/Web/API/URL), which [handles encoding](https://url.spec.whatwg.org/#dom-url-href) properly. This commit also removes decodeUrl. It was possible for a user to send a URL and have a different one displayed in the UI due to decoding. Task-6041689
This update resolves a technical issue that was causing instability in our VoIP testing environment. Specifically, the system was leaking memory due to unremoved event listeners, which impacted the performance of related components. By cleaning up these listeners after each test, we've improved the reliability of our VoIP tests and overall system stability.
This update resolves a technical issue related to the cbor2 library, a component used in Odoo. The previous version relied on an outdated build system, which was removed in a recent update to the Python packaging tools. The change ensures Odoo continues to function smoothly and reliably.
Original PR description
cbor2 5.4.2 build system depends on pkg_resources which has been removed in setuptools 82. cbor2 5.4.3 improves their build system and has otherwise no functional changes. fixes #248315 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an error that occurred when users attempted to create scrap orders without a designated scrap location. The issue stemmed from accessing an empty dictionary after a scrap location was deleted, resulting in a traceback. This change ensures smoother operation for scrap order creation.
Original PR description
When user tries to create a scrap order without scrap location, A traceback is raised. Steps to reproduce the error: - Install ``stock`` module - Go to Inventory > Configuration > Settings > Enable Storage Locations > Save - Go to Configuration > Locations > Delete Virtual Locations/Scrap > Delete - Go to Operations > Scrap > New Traceback: ```py KeyError: 1 ``` https://github.com/odoo/odoo/blob/7d89c092ac25ffe149fb38fb52863fdaa3b6ed5f/addons/stock/models/stock_scrap.py#L93 When the Scrap location is deleted, ``locations_per_company`` becomes an empty dictionary. Accessing a key from this empty dictionary lead to the above traceback. sentry-7307394327 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr