Friday, October 31, 2025
10 changes · saas-18.2
Enhancements to existing features
New shared helper methods were added for accounting-related tests, making it easier for developers to create invoices, sale orders, reversals, down payments, and module-specific skips in a consistent way. This is an internal improvement that supports faster, more reliable accounting test development without changing end-user behavior.
Original PR description
This commit adds bunch of helper methods on AccountTestInvoicingCommon to make it easier to do generic accounting test actions, such as: - creating invoice - creating sale order - reversing invoice - skipping test if module isn't installed - creating down payment invoice ... and many more. We're aware that there are thousands of different helpers for creating invoice out there in different localizations. This commit serves as the first necessary step to create one standard that can be extended across all other test helpers. This is a simplified version of the merged commit in master. We are not refactoring/rewriting any other test to use these new helpers. Our goal is just to make it available for everyone to start using this helper on their accounting-related tests. task-4891206 Forward-Port-Of: odoo/odoo#233724
Resolved issues and error corrections
This update makes an automated test for Discuss channel search more reliable under heavy system load. It helps prevent false failures in testing while preserving the expected behavior for users searching and loading sub-channels.
Original PR description
The `test_discuss_sub_channel_search` tour ensures that lazy loading of threads works correctly with the search feature. Technically, the component uses the `useVisible` hook which waits for a trigger to be visible before loading more threads. However, under high CPU load, the `IntersectionObserver` might not detect the change. For example, clearing the search input will make the element disappear, but scrolling afterward may make it reappear. As a result, the component might not detect that it should load more threads. In practice, this should never happen. The test now waits for the state to update before scrolling. fixes runbot-181951 Forward-Port-Of: odoo/odoo#233419
When loading a sales order in Point of Sale, canceling a lot or serial number selection now leaves the order line unchanged. This prevents incorrect tracking information from being added by mistake and keeps sales data more accurate.
Original PR description
Before this commit, when loading a sale order containing an order line tracked by lot, the system prompted the user to select a lot. However, even if the user canceled the selection, the lot was still added to the order line. After this commit, the lot will no longer be set if the user cancels the selection. opw-5162487 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#233281
Guests who have not been online for more than 12 hours will no longer be notified when a call starts. This prevents outdated or disconnected live chat visitors from receiving unnecessary call notifications, improving the relevance of call alerts.
Original PR description
With this commit, guests who haven't been online in the last 12 hours will not be notified of a call starting. task-5136330 backport of https://github.com/odoo/odoo/pull/230337 Forward-Port-Of: odoo/odoo#233221
Point of Sale session numbers now advance only after cash details are posted successfully. This prevents skipped session names when an error occurs, keeping records easier to follow and audit.
Original PR description
Before this commit, if an issue occurred while posting the cash details, the session sequence would still increment even though the operation failed, leading to gaps in session names. With this commit, the sequence only increments when the operation succeeds, ensuring continuous session naming without gaps. related: https://github.com/odoo/enterprise/pull/98157 opw-5180712 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#233183
This fix prevents an error that occurred when a customer bought a gift card and tried to download its related document. It helps point-of-sale staff complete gift card sales smoothly and gives customers access to their coupon document as expected.
Original PR description
Before this commit, an error was raised when selling a gift card and attempting to download its document. opw-5219703 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#233976
Website navigation now marks a menu item as active only when the visitor is on that exact page. This prevents similar page names, such as iOS 26 and iPadOS 26, from both appearing selected and helps visitors better understand where they are on the site.
Original PR description
__Current behavior before commit:__ A menu is shown as active if the unslug version of its URL matches the current accessed URL. The issue is that the unslug version of a menu linked to a page has no real meaning. Such menu should only be shown as active if the request URL path matches exactly. __Description of the fix:__ Added a check to ensure that when a menu is linked to a page, it isn't shown as active if its path doesn't exactly match the request path. __Steps to reproduce:__ 1. On the website, go to Site > Pages 2. Create a new page with title "iOS 26" and another page with title "iPadOS 26" 3. Go to /ios-26 4. Both menus "iOS 26" and "iPadOS 26" are highlighted task-5094899 Forward-Port-Of: odoo/odoo#230623
This fix updates website appointment and rental snippets to use the current asset-loading method. It helps keep these website features compatible with the platform and reduces the risk of display or behavior issues after upgrades.
Original PR description
See https://github.com/odoo/odoo/pull/104836 task-2963840 Forward-Port-Of: odoo/enterprise#98108 Forward-Port-Of: odoo/enterprise#35153
The approval request print report has been adjusted so labels and field values line up more clearly. This makes printed approval documents easier to read and more professional for users reviewing or sharing requests.
Original PR description
Steps to Reproduce: - Install approvals module. - Navigate to Approvals → My Approvals → My Requests → Print report. Issue: - The formatting of the report is not proper. Solution: - Fixed the report's QWeb template (approvals.report_aprroval_request_document). - changed col-2 to col-3 to give the labels more space and improve alignment with the field values - changed h5 to h6 for more consistent and appropriate font size throughout the document **before :** <img width="777" height="818" alt="image" src="https://github.com/user-attachments/assets/86cbaf50-191a-412b-9b8e-149442256819" /> **after :** <img width="829" height="623" alt="image" src="https://github.com/user-attachments/assets/da237a87-7a7b-45db-8347-d64e1e987469" /> Forward-Port-Of: odoo/enterprise#95609
This fix prevents Belgian POS session names from skipping numbers when posting cash details fails. Session numbering now advances only after a successful operation, helping keep records complete and easier to audit.
Original PR description
Before this commit, if an issue occurred while posting the cash details, the session sequence would still increment even though the operation failed, leading to gaps in session names. With this commit, the sequence only increments when the operation succeeds, ensuring continuous session naming without gaps. related: https://github.com/odoo/odoo/pull/233183 opw-5180712 Forward-Port-Of: odoo/enterprise#98157