Tuesday, August 4, 2026
11 changes · 19.0
Enhancements to existing features
This update adds and improves automated checks for marketing automation flows, especially around failed or bounced messages and scheduled synchronization. It helps reduce the risk of regressions in campaign enrollment and message handling, improving confidence that automated campaigns continue to behave correctly.
Original PR description
Backport various tests added in Odoo 19.4+ in order to better spot potential regressions. Add new tests for synchronization cron behavior, notably in case of failure.
Resolved issues and error corrections
The Planning app now applies employee and material filters correctly for open shifts. This prevents shifts with assigned resources from being incorrectly included or excluded, making planning views more reliable for schedulers.
Original PR description
Before this commit, the domain wrongly assumes that we always search on shifts having no role or a role containing resources of types 'user' or 'material' (1). Additionally to the basic domain which searches on the shifts having resources of types 'user' or 'material' (2). After this commit, we add a condition on domain (1) to only apply it for open shifts (shifts having no resource_id). no-task Forward-Port-Of: odoo/enterprise#126247
Features or functions removed from Odoo
An outdated automated test for structured references in accounting reconciliation was removed because the related behavior is no longer supported after a previous change. This keeps the test suite aligned with the current, simpler reconciliation setup and avoids misleading failures.
Original PR description
After merging pr #117256 the behavior for creating auto reconcile models for structured reference is no longer working so the test for checking that behavior should be removed. This was an FP request to use contains instead of regex in auto reconcile model creation because it was too complicated for users. no task id
A small issue in the journal report actions was corrected by removing unused date values that could cause confusing or incorrect behavior. This helps keep the accounting report interface consistent and reliable for users.
The self-order flow test now reflects that takeaway is selected automatically when it is the only available option. This keeps automated checks aligned with the current customer experience and helps avoid false test failures.
Original PR description
In this commit: - The takeaway preset is now automatically selected when it is the only available option. Remove the explicit "Takeaway" selection step from the tour to match the updated behavior. Task:6217791 Community PR : https://github.com/odoo/odoo/pull/274301
The AI chat now works more reliably when users move into areas such as Shopfloor that do not provide view-switching information. Instead of crashing when a message is sent, the system safely continues with no available view options listed.
Original PR description
### Issue
When AI chat is used in views where `config.viewSwitcherEntries` is not initialized, sending a message raises a `TypeError` because the code attempts to call `.map()` on an undefined value.
### Steps to Reproduce
[Video](https://drive.google.com/file/d/1i7kWDnmv4mebGtf1to12BNHCG5omBTXl/view?usp=sharing)
1. Click the **Ask AI** button.
2. Open the AI chat.
3. Keep it open and navigate to the **Shopfloor** app.
4. Send a message in the AI chat.
### Error
```text
TypeError: Cannot read properties of undefined (reading 'map')
at WithSearch.getCurrentViewInfo
```
### Fix
Safely handle cases where `config.viewSwitcherEntries` is undefined by using optional chaining and falling back to an empty array.
**Before**
```js
result.available_view_types = config.viewSwitcherEntries.map((v) => v.type);
```
**After**
```js
result.available_view_types =
config.viewSwitcherEntries?.map((v) => v.type) || [];
```
opw-6414684Bank reconciliation now safely handles imported statement lines whose payment reference contains only spaces. This prevents an unexpected error when assigning accounts, improving reliability for accounting teams working with imported bank data.
Original PR description
When reconciling bank statements with an account, the system will look for past statement lines already reconciled with that account and create a reconciliation model based on common substring in…
When reconciling bank statements with an account, the system will look for past statement lines already reconciled with that account and create a reconciliation model based on common substring in payment_ref. If this payment refs contains only spaces (eg. ' '), it will trigger an index out of range traceback. This is explained by the fact that spaces are striped then '' is considered as False in some filtering leaving the list empty. From the UI, putting ' ' is not supposed to be possible because spaces are striped before write but there is many ways to import statement lines which may lead to this hence the decision of handling this scenario to make the code more robust. Steps to reproduce: 1/ Create two statement lines with payment_ref as ' ' (you can force it using a write) 2/ Click "Set account" on first one and pick 100000 Issued Capital 3/ Do the same for the second statement line => Traceback In this commit, we do not check for common substring if there is less than two labels. opw-6379977
The Barcode app welcome screen now correctly shows guidance to scan a package when package tracking is enabled. This helps warehouse users find transfers from package scans without missing an available workflow.
Original PR description
When packages are enabled, the barcode scanner welcome screen does not display the instructions for scanning a package. ## Steps to reproduce - Enable `Packages` in Inventory settings. - Open the Barcode application. - Observe the instructions listed on the welcome/landing page. - Notice that the instruction `Scan a package to find a transfer` is missing, even though packages are enabled. ## Issue The MainMenu component has a getter barcodeHomeHelper that checks this.packageEnabled to construct the barcode scanner helper bullet points. However, during setup, the configuration value was incorrectly assigned to this.packagesEnabled. ## Fix Correct the variable name typo in the main menu setup so that the package related instructions are correctly displayed when packaging is enabled. [^1] [^1]: 
This update fixes incorrect Italian field labels in the Balance Sheet reports. It improves clarity for Italian-speaking accounting users by ensuring report wording matches the correct translations.
Original PR description
### Steps to reproduce the issue: 1. Download Accounting and l10n_it 2. Install and switch to italian language 3. Go to Balance Sheets and select Balance Sheet (IT) 4. Some words are not correct [Here]( https://docs.google.com/spreadsheets/d/1-w83oAHTxDRIi-W_VSJiscNclw-yijzQUHOgMnTq7jE/edit?gid=0#gid=0) the wrong fields with their correct translations. opw-6424609
Shipments sent through Sendcloud now avoid including VAT fields when the contact's VAT value becomes empty after cleanup, such as placeholder characters. This prevents valid deliveries from being rejected because of blank tax number data.
Original PR description
Follow up of #124245. There remains an edge case where a contact's vat number might be comprised only of characters removed by `_sanitize_vat_number` (eg just `/` as a placeholder). In such cases, the `if ship_to.vat` condition is True so we end up sending data but with an empty value field. This leads to the delivery being rejected by Sendcloud. Might as well change it for `ship_from` too. ----- Ticket: opw-6384603
The change updates cash basis accounting report tests so they use the account configured in the system instead of assuming a fixed account code. This prevents false test failures when account codes differ between database setups, improving release validation reliability.
Original PR description
Description of the issue this commit addresses: Commit 63f5646cfd75 made the tests use the default outstanding account but hard-coded code 101403. In an all-module database, generated account codes depend on existing accounts, so Outstanding Receipts may use code 101404 and make otherwise correct report assertions fail. --- Desired behavior after this commit is merged: This commit derives the expected report line name from the configured outstanding receipts account, making the assertions independent of its generated code. --- runbot-[231581](https://runbot.odoo.com/odoo/error/231581)