Thursday, June 18, 2026
6 changes · saas-18.2
Enhancements to existing features
The Indian e-Waybill flow now checks that a transport distance is entered when the dispatch and delivery pincodes are the same. This prevents incomplete submissions from being sent and reduces avoidable errors from the government service provider.
Original PR description
Prevent sending incomplete e-Waybill requests to the GSP server when the dispatch and delivery pincodes are identical. In such cases, the distance cannot be automatically determined and must be provided explicitly. This commit adds a validation to ensure a distance is set before generating the e-Waybill, avoiding incomplete requests and subsequent server-side errors. task-6234343 Forward-Port-Of: odoo/odoo#270155 Forward-Port-Of: odoo/odoo#268497
Resolved issues and error corrections
Odoo now skips automatically installing add-ons when one of their required components is missing. This avoids incorrect setup states during new database creation and helps keep installations more reliable.
Original PR description
Let's consider an auto-install module `A` having 2 dependencies, one to `base` and the second to custom module `B`. If module `B` is not present in the addons path (i.e is unknown), during a new database initialization module `A` would still be marked as `to install`. This commit ensures that if an auto-install module has a missing dependency, it will not be marked as `to install`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#270346
Documentation and clarification updates
Adrien Didot has added an Individual Contributor License Agreement signature. This records the legal permission needed for their contribution to be accepted into Odoo.
Original PR description
Individual Contributor License Agreement signature. Adds `doc/cla/individual/adridot.md` per the CLA signing instructions. Related contribution: #270196 Forward-Port-Of: odoo/odoo#270197
Fixed an issue where table of contents links could scroll headings underneath a sticky status bar, making the selected section hard to see. The editor now accounts for fixed top elements when navigating within long notes, improving readability and navigation.
Original PR description
Since [1] when the `o_form_statusbar` status bar was made `sticky` the table of content scrolls to a given heading without taking it into account. Because of this, when scrolling upwards the heading ends up behind the status bar. This commit fixes this by finding top-aligned sticky elements within the closest scrollable element impacted by the table of content. Steps to reproduce: - Go to a To do note - Define some headings - Have sufficient content so that reaching a heading requires scrolling - Define a table of content with `/toc` - Click on a heading => The heading ended up behind the status bar. [1]: https://github.com/odoo/odoo/commit/a3c63413825cf3492a10ade77a2c571c4eeb33a6 task-6302762
The mail chatter now only shows the “jump to present” button when the conversation area is actually visible. This prevents a confusing button from appearing on long forms when it cannot do anything useful.
Original PR description
### Description `Thread.updateShowJumpPresent()` (`addons/mail/static/src/core/common/thread.js`) sets `showJumpPresent` from the present-sentinel visibility only, without checking that the thread…
### Description
`Thread.updateShowJumpPresent()` (`addons/mail/static/src/core/common/thread.js`) sets `showJumpPresent` from the present-sentinel visibility only, without checking that the thread itself is on screen:
```js
this.state.showJumpPresent =
this.props.thread.loadNewer || this.presentThresholdState.isVisible === false;
```
In a form chatter, when the user is at the **top of a long form**, the whole chatter is below the fold. The present sentinel is therefore not visible, so the `position-fixed` jump-to-present button shows up even though the thread is off-screen — and clicking it does nothing useful (the scrollbar flickers, no jump).
### Fix
Gate `showJumpPresent` on the thread's own visibility (`this.visibleState`), exactly as on **saas-18.3+/19.0/master**. The 18.0 port of the jump-to-present rework (460d066817, #246299) brought the threshold/position changes but dropped this guard, so 18.0 (and saas-18.2) are still affected.
### Steps to reproduce (standard, runbot)
1. Open a record with a chatter and a long form (e.g. a CRM lead / Sales order).
2. Scroll to the **top** of the form (chatter below the fold).
3. The round jump-to-present button appears at the bottom; clicking it does nothing.
With this patch the button is hidden while the thread is off-screen, matching saas-18.3+.
<img width="5152" height="1926" alt="84359" src="https://github.com/user-attachments/assets/a16dbb74-c5c4-440a-8a94-ec7c5693904e" />
Forward-Port-Of: odoo/odoo#270316This update resolves a technical issue related to how Odoo handles SEPA Direct Debit mandates. Specifically, it ensures that the correct partner bank is associated with each mandate, improving the reliability and accuracy of direct debit processing. This change enhances the security and stability of financial transactions.
Original PR description
Forward-Port-Of: odoo/enterprise#120901