Wednesday, July 1, 2026
11 changes · saas-19.3
Enhancements to existing features
This update makes sure the label shown for the reconciliation setting is consistent across accounting models. It improves clarity for users by displaying the same updated wording everywhere, avoiding confusion from mixed old and new labels.
Original PR description
Since this PR https://github.com/odoo/odoo/pull/249536 "Allow Reconcilation" became "Payment Reconciliation" This change in labels didn't take effect in the account.move.line model. This commit fixes this issue by ensuring that the label of is_account_reconcile field matches that of the account.account.reconcile field. task-6306159
Resolved issues and error corrections
The restaurant point of sale now only shows the Split action when bill splitting is turned on in the configuration. This avoids confusing staff with an option they cannot use and keeps the Actions menu aligned with the store’s settings.
Original PR description
Previously, the Split action remained available in the restaurant PoS even when bill splitting was disabled in the POS configuration. Steps to reproduce: - Disable the split bill option in the restaurant POS configuration. - Open a restaurant POS session. - Select a table and add multiple products. - Open the Actions menu. - Observe that the Split action is still displayed. This commit ensures that the Split action is only shown when bill splitting is enabled in the PoS configuration. Task-6294276
Internal notes in Point of Sale now keep the original tag colors when a color has been set, instead of forcing every tag to use the same background. This makes colored notes easier to read and helps staff distinguish tags more quickly in light mode.
Original PR description
Before this commit: ===================== The internal note styling applied a custom background color to all tags, overriding the colors provided by TagsList (o_tag_color_*). As a result, colored tags were displayed with the default background in light mode. After this commit: ====================== The custom background color is applied only to default tags, while tags with an explicit color keep their original TagsList styling. Additionally, demo internal notes were updated with color values to showcase the colored tag behavior. Task:6294250 Forward-Port-Of: odoo/odoo#269746
This update fixes an internal testing issue in the Point of Sale and Loyalty areas by making temporary test changes automatically clean themselves up. It helps keep the system’s code checks reliable and prevents false test failures during development and validation.
Original PR description
Avoid polluting the Odoo model registry and failing `test_lint_override_signature` by using `patch.object` instead of manual assignment. This ensures the injected method is properly torn down after the test block, keeping the registry clean and bypassing static analysis failure as the patched method is only used for tests. runbot-939298 Forward-Port-Of: odoo/odoo#273096
This update adjusts an automated test so it works whether the accounting app is installed or not. It matters because the payment status can now be handled correctly in both setups, preventing false test failures during builds.
Original PR description
If accountant is installed, payment state of unreconciled payment switch from 'paid' to 'in_payment'. Not having accountant break the test. runbot-939445 Forward-Port-Of: odoo/enterprise#121113
This update fixes a test issue in the POS Urban Piper module by making sure temporary test changes are removed properly after the test runs. It helps keep the system’s internal checks stable and prevents unnecessary test failures.
Original PR description
Avoid polluting the Odoo model registry and failing `test_lint_override_signature` by using `patch.object` instead of manual assignment. This ensures the injected method is properly torn down after the test block, keeping the registry clean and bypassing static analysis failure as the patched method is only used for tests. runbot-939298 Forward-Port-Of: odoo/enterprise#122283
This change fixes an unreliable automated test in the messaging app. It ensures the retry scenario is checked in a more realistic way, so test results are consistent and do not hide real issues.
Original PR description
The "Retry loading more messages on failed load more messages" test drove load-more by scrolling (real IntersectionObserver) and failed the fetch synchronously, then clicked retry immediately. The observer could fire the older-fetch twice and leave a second fetch in flight at the retry click, which then no-op'd (fetchMoreMessages bails while a fetch is loading), leaving 30 messages instead of 60. This is a test-timing artifact: a real user retries long after any fetch has settled. Fail the load-more through a Deferred rejected only once the fetch is in flight, like jump_to_present.test.js. While it is pending, duplicate observer fires no-op, so no orphan fetch can race the retry. https://runbot.odoo.com/odoo/error/242113 Forward-Port-Of: odoo/odoo#272942 Forward-Port-Of: odoo/odoo#272430
We adjusted an automated test so it always runs from a fixed mid-week date instead of using the current day. This prevents the test from failing on weekends and makes the avatar card tour results reliable for everyone.
Original PR description
The avatar card tours create a time off relative to "today" and assert the "Back on" out-of-office indicator. When the test runs on a Friday or Saturday, today+1 is a weekend, so the leave's date_to lands on that weekend day's 00:00 and the "currently on leave" window closes at midnight. Once the run crosses that boundary the leave is no longer active, the indicator disappears and the tour fails at the "Back on" step, deterministically on that weekday. Freeze setUpClass to a fixed mid-week day so the time off always ends on a working day. https://runbot.odoo.com/odoo/error/242512 Forward-Port-Of: odoo/odoo#273073
When a new file is uploaded in Documents, its available actions are now shown right away. This removes the need to deselect and reselect the file before continuing, making the workflow smoother and faster for users.
Original PR description
Bug === When uploading a new file in documents, it's selected, but the actions are not visible (we need to unselect - select the record to see the actions). Task-5408471 Forward-Port-Of: odoo/enterprise#122102 Forward-Port-Of: odoo/enterprise#114770
When a business card is scanned, the contact’s city is now captured along with the other details. This makes scanned contact records more complete and reduces the need for manual edits.
Original PR description
Previously, when user scans any business card, every information was fetched except for the city name. After this commit the city field will be properly fetched. task-6332914 Forward-Port-Of: odoo/enterprise#121766
This change fixes an issue where the portal homepage flow could get stuck during testing because the page was not fully ready before the next step ran. It helps ensure the portal experience loads reliably and prevents test timeouts.
Original PR description
Since #256698, the `undeterministicTour_doNotCopy` flag was removed. Without this artificial delay, the `portal_load_homepage` tour executes steps faster than the website frontend JavaScript can finish initializing and binding event handlers to the form. Leaving the tour stuck on a blank text screen after Saving and causing a script timeout. Fix this by ensuring the frontend framework is fully initialized before interacting with the form fields. [Runbot-242298](https://runbot.odoo.com/odoo/runbot.build.error/242298) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr