Wednesday, April 29, 2026
8 changes · 18.0
Resolved issues and error corrections
This update ensures that signatures are only applied to the original sales order document generated by the signature process, not to subsequent PDF copies. Previously, signatures were duplicated on all generated PDFs, leading to inconsistencies. This change streamlines the process and maintains accurate signature records.
Original PR description
A signed order can be modified afterward while retaining the signature on the newly generated PDF. After this commit, we will only print the signature on the document generated by the signature itself and not on any generated PDF afterwards. opw-6159170 Forward-Port-Of: odoo/odoo#261288
This update corrects a technical issue that could cause problems with voice message tests in Odoo. Specifically, the system was prematurely resolving promises related to voice playback, leading to potential errors. This fix ensures that the voice player is fully drawn before promises are resolved, improving test reliability and stability.
Original PR description
Before this commit, voice message tests don't wait until the voice player is drawn before resolving the corresponding promise. This may lead to race conditions. This commit fixes the issue by properly `await`ing the completion of the asynchronous code before resolving the promise. Related runbot error: https://runbot.odoo.com/odoo/error/163783 Forward-Port-Of: odoo/odoo#261795
A test within the MRP module was failing due to a dependency on a module only available in the Enterprise version of Odoo. This update removes the problematic dependency, ensuring the test now runs successfully across both Community and Enterprise environments. This resolves a consistent test failure and improves overall test coverage.
Original PR description
The test `test_multi_lot_component_consumption` relies on `move_raw_line_ids`, which is initialized by the `stock_barcode_mrp` module. This module is only available in enterprise, causing the test to fail in community setups. https://github.com/odoo/odoo/blob/0ce5baf2918960591284eb494d82dfef07043af0/addons/mrp/tests/test_consume_component.py#L494 runbot-242612
This update resolves an issue in the LDAP authentication testing process where the test left behind data in the database. By switching to a simpler `HttpCase` test setup, the problem is fixed and paves the way for adding another test to address a related bug. This ensures the stability and reliability of our LDAP integration.
Original PR description
The unit test is tagged `-standard` and `database_breaking` because it was leaving left overs in the database. Using an `HttpCase` over a `BaseCase` solves that issue in addition to make the code way simpler. We want to resurrect this unit test class because we plan to add another unit test in that class for a bug fix. Forward-Port-Of: odoo/odoo#261743
This update fixes a bug where users without the necessary permissions were encountering errors when trying to access their profile information. The team added a field to the user data structure to allow access to country codes, resolving the permission issue and ensuring all users can view their profile details.
Original PR description
Issue: - When a user without access rights tries to view their profile, a permission error is raised. - Issue PR: https://github.com/odoo/odoo/pull/254162 Fix: - Added `employee_country_code` to SELF_READABLE_FIELDS in `res.users`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255260
This update fixes an issue where Odoo's website redirects were failing due to an unreliable method of determining URL canonicalization. The change replaces a problematic setting with a standard Werkzeug feature, ensuring consistent and accurate redirects across different server configurations. This improves website stability and reduces potential 404 errors.
Original PR description
Description of the issue/feature this PR addresses: The _is_canonical_url() method currently relies on `REQUEST_URI` being present in the WSGI environment to determine whether a request URL is canonical. However, `REQUEST_URI` is not part of the WSGI specification and is not consistently populated by Werkzeug (used by Odoo's default HTTP server) or reverse proxies like Traefik. As a result, this method fails in some setups, leading to incorrect redirects or 404s for otherwise valid URLs. Desired behavior after PR is merged: This patch replaces the reliance on `REQUEST_URI` with `request.httprequest.full_path`, which is a reliable, Werkzeug-generated representation of the full request path. This makes Odoo more compatible with WSGI-compliant servers and modern deployment environments. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a technical error that occurred when users clicked the 'Backend' button within a specific session state. The issue stemmed from a double deletion of the session, which has now been prevented by a code adjustment. This ensures a smoother and more reliable user experience.
Original PR description
Before this commit, when clicking on the "Backend" button of a session in "Opening Control" state, the delete_opening_control_session method was called twice, while the first call already deleted the session. The problem was that the method is overridden in the pos_urban_piper module, and it did not check if the session was already deleted. opw-6114420
This update resolves a bug in the Mod347 BOE export for Spain, specifically related to cash payments. Previously, invoices under €3,005.06 would incorrectly include a Spanish company in the export report. This change ensures accurate reporting by removing unnecessary partners from the export based on the intended logic.
Original PR description
Fix a bug in mod347 BOE export. Steps to reproduce: 1- Create an invoice with a spain Company, with an amount lower than 3 005,06€ 2- Add a Type for mod347 3- Create a cash payment 4- Export the mod347 BOE The partner will appear in the BOE with all line at 0. But this partner shouldn't be in the export. This is due because of a search on account.partial.reconcile, which add partners to the export if a cash payment is found in the period. But this search is not usefully as there is no legal indication that these partners should be in the export in this case, as the partners should only be returned by the main queries. Backport of PR #84317 opw-5960226 Forward-Port-Of: odoo/enterprise#114331 Forward-Port-Of: odoo/enterprise#110947