Thursday, April 23, 2026
7 changes · saas-18.2
Resolved issues and error corrections
This update keeps Odoo's automated tests working with Python 3.14 by recognizing new internal Python attributes. It helps maintain reliable quality checks as the platform prepares for newer Python versions, with no direct effect on day-to-day users.
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/ Forward-Port-Of: odoo/odoo#260573
This fix updates the Spanish Point of Sale payment flow so pricelist information is passed in the expected format. It helps keep behavior consistent across Odoo versions and avoids potential payment validation issues for Spanish POS users.
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 Forward-Port-Of: odoo/odoo#254215
A typo in the website opening hours snippet was corrected from "am" to "pm". This helps ensure displayed business hours are clear and accurate for website visitors.
Original PR description
am to pm Forward-Port-Of: odoo/odoo#260579
This fix prevents rare crashes that could happen when users start a new drag action before the previous one has fully cancelled. It improves interface stability in areas that rely on drag-and-drop behavior, reducing unexpected interruptions.
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 Forward-Port-Of: odoo/odoo#260594
Projects and tasks linked to sales orders will no longer automatically log sales order status changes in their chatter. This keeps project communication cleaner and focused on relevant project updates.
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 Forward-Port-Of: odoo/odoo#258549
This update fixes an issue where the namespace for DIAN credit notes was incorrectly configured, causing errors when submitting to the DIAN tax authority. The namespace has been standardized to ensure proper compliance with DIAN requirements. This resolves a recurring problem identified in a previous related issue.
Original PR description
Issue: Incorrect `sts` namespace raises several issues when sent to dian Steps to reproduce: - On a Colombian company - Create a credit note - Send to DIAN Current Behavior: - Credit note have `sts` namespace defined to `dian:gov:co:facturaelectronica:Structures-2-1` while their Extension node has another `sts` namespace to `http://www.dian.gov.co/contratos/facturaelectronica/v1/Structures` Expected Behavior: - Only the top level Node should have `sts` namespace defined to `dian:gov:co:facturaelectronica:Structures-2-1`. It was forgotten that Credit Note were part of the Invoices in the last refactor. As it's the second time(odoo/enterprise#68619 3rd commit) it happens, I updated the test. opw-6077050 Forward-Port-Of: odoo/enterprise#113643
This update removes automatic tracking of Sales Order status changes within Helpdesk Tickets' chatter. Previously, status updates would log messages, which has now been corrected by explicitly disabling tracking on linked Sales Orders. This improves the clarity and accuracy of chatter conversations.
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 Forward-Port-Of: odoo/enterprise#114078