Wednesday, April 22, 2026
11 changes · 18.0
Enhancements to existing features
This update makes failed background readiness checks report the real underlying problem instead of a generic cancellation message. It helps users and support teams understand when a connection has failed and avoids confusing timeout-style errors.
Original PR description
This case induces confusion in the ranks: when the WS connection fails, the result of the run is set to failure then every outstanding response is cancelled. For `_wait_ready` specifically, because…
This case induces confusion in the ranks: when the WS connection fails, the result of the run is set to failure then every outstanding response is cancelled. For `_wait_ready` specifically, because it's a blocking wait on a request it yield a confusing result as the run fails with `CancelledError` and the actual cause (the WS was closed) is lost. One option would be to `set_exception` on the waiting responses, but I feel like this could create other confusing knock-on effects e.g. more evented waits which currently get ignored might start raising exceptions (although that seems unlikely as callbacks apparently do get called on cancel), and since issues with cancelling only seem to appear in `_wait_ready` that seems like overkill. Instead have `_wait_ready` handle cancellation by first checking if the result is in error, and using that to raise the underlying error, otherwise retry (and ultimately timeout, probably). And while at it, before signaling a timeout check if the run is in failure and raise that immediately, just in case. https://runbot.odoo.com/odoo/error/233738 Forward-Port-Of: odoo/odoo#260324
Resolved issues and error corrections
This fix ensures that when users cancel a confirmation prompt in the spreadsheet app, the expected cancel action is actually triggered. It improves reliability of user interactions and prevents workflows from continuing as if the dialog had been accepted.
Original PR description
The `cancel` callback of the `env.askConfirmation` method was not called when the user clicked on the cancel button. task-6074948 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 fix ensures that when users cancel a confirmation dialog in Documents Spreadsheet, the cancel action is properly executed. It improves reliability by making sure the application responds as expected when a user chooses not to proceed.
Original PR description
The `cancel` callback of the `env.askConfirmation` method was not called when the user clicked on the cancel button. task-6074948 Forward-Port-Of: odoo/enterprise#112304
This update adjusts an internal test check so it correctly handles new Python 3.14 class attributes introduced by lazy annotation evaluation. It prevents false failures in the test suite and helps keep Odoo compatible with the latest Python version.
Original PR description
Since Python 3.14 (PEP 649), class annotations are evaluated lazily. This introduces two new internal attributes to the class namespace: - `__annotate_func__`: The function that computes the annotations. - `__annotations_cache__`: The cache for the computed annotations. This commit adds these attributes to the TransactionCase's ignored internal attributes checker. Note: this PR is a follow-up of https://github.com/odoo/odoo/pull/247151 Reference: - https://peps.python.org/pep-0649/
This update fixes a small wording typo in the website opening hours snippet, changing "am" to "pm" where appropriate. It improves the accuracy and professionalism of the information shown to visitors.
Original PR description
am to pm
This change stops linked Sales Order status updates from automatically creating chatter messages on Projects and Tasks. It helps keep the activity history cleaner and avoids extra notifications that were not adding business value.
Original PR description
Before this commit: - The chatter on the Project record tracked and logged changes to the linked Sales Order's status. After this commit: - Explicitly set `tracking=False` on the related `sale_order_state` field in `project.project`, `project.task` models. - Status updates to linked SOs will no longer automatically post tracking messages in chatter. task-6079809
The contact list view now shows child contact type labels in the user’s language instead of English. This brings it in line with the Kanban view and improves readability for multilingual users.
Original PR description
Problem: When the contact type is set for a related (child) contact, the contact type is shown in English next to the contact name in the contact list view. It should be translated to the user language. It is correctly translated in the Kanban view. Steps to reproduce: 1. Install the Contacts app. 2. Create a contact or go to an existing contact 3. Add a related (child) contact and set its contact type to any type (i.e. Invoice Address) 4. Change the user language to any language other than English 5. Go back to the contact list view and check the name of the related (child) contact. See how the contact type appearing in the name is in English instead of being translated, while it is correctly translated in the Kanban view. Cause: The list view uses the 'complete_name' field which is not translated, while the Kanban view uses the 'display_name' field which is translated. Solution: Use the 'display_name' field instead of 'complete_name' in the list view. opw-5947987
This change updates a manufacturing test so it no longer depends on an Enterprise-only feature. It helps ensure the test suite runs correctly in community installations, reducing false failures during validation.
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#L481 runbot-242612
Helpdesk tickets will no longer automatically post chatter messages when the linked Sales Order status changes. This reduces unnecessary message noise and helps teams focus on updates that are directly relevant to the ticket.
Original PR description
Before this commit: - The chatter on Helpdesk Tickets tracked and logged changes to the linked Sales Order's status. After this commit: - Explicitly set `tracking=False` on the related `sale_order_state` field in `helpdesk.ticket`. - Status updates to linked SOs will no longer automatically post tracking messages in chatter. task-6079809
This fix prevents a rare crash that could happen when one drag action was interrupted by another started almost immediately afterward. It improves the stability of the web interface during fast user interactions.
Original PR description
### [FIX] web: fix crash when cancelling drag sequence Before this commit: drag sequences could be aborted by new drag sequences; the way this worked is that a new sequence would register its "cancel" callback in a global variable, and when another sequence is started, it calls that variable to cancel the previous one. The issue was that the variable was assigned too early; before the actual "cancel" callback was available. This means that in edge cases where 2 sequences would be triggered in less than (effectively) a resolved promise, the callback would not be available and a crash would occur. This commit moves the variable assignment *after* the "cancel" callback is made available, ensuring there is no crash. Runbot [243113](https://runbot.odoo.com/odoo/error/243113) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change corrects how the Spanish Point of Sale sends pricelist information to the payment screen. Instead of passing only the record ID, it now passes the full pricelist data, matching the behavior used in later versions and helping avoid mismatches during payment validation.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: pass id Desired behavior after PR is merged: pass object, same that 19.0 https://github.com/odoo/odoo/blob/2e20e9a1a328757cc8a19261af3ba2287fb23558/addons/l10n_es_pos/static/src/app/utils/order_payment_validation.js#L44 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr