Thursday, June 18, 2026
10 changes · 18.0
Resolved issues and error corrections
This update fixes a visual issue in the ATO submission wizard for Australian payroll. The checkbox to accept terms and conditions was misaligned with the text, particularly on wider screens. This change ensures a consistent and user-friendly experience when submitting payslips or payruns to the ATO.
Original PR description
- Step to reproduce: with l10n_au_hr_payroll_account installed and validated payslips or payruns click "Sign & Submit to ATO" -> wizard opens with checkbox to accept T&C, mght be misaligned depending on window width - Cause: if text fills full width then checkbox is moved above. - Solution: using d-flex and utilities, force checkbox on same line as text and allow text to split if necessary. Task: 6051482
This update fixes a potential issue where Odoo would incorrectly try to install auto-install modules if a required dependency was missing. Now, if an auto-install module has a missing dependency, it won't be marked for installation, preventing installation errors and improving database startup times.
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
This update eliminates a distracting, empty vertical scrollbar that appeared in Odoo's notebook headers when the tabs fit within the window. The fix ensures a cleaner user experience by correctly managing scrollbar behavior, without impacting the functionality of the horizontal tab bar. This was previously fixed in the master branch and now applied to version 18.0.
Original PR description
### Description `.o_notebook_headers` sets `overflow-x: auto` while leaving `overflow-y` at its default `visible`. Per the [CSS overflow…
### Description `.o_notebook_headers` sets `overflow-x: auto` while leaving `overflow-y` at its default `visible`. Per the [CSS overflow spec](https://www.w3.org/TR/css-overflow-3/#overflow-properties), when one axis is not `visible`, the computed value of the `visible` axis becomes `auto`. So `overflow-y` resolves to `auto`, and a sub-pixel vertical overflow (the active tab border / nav-link height) renders a useless vertical scrollbar next to the tabs — even when the tabs fit horizontally (no horizontal overflow). Pinning `overflow-y: hidden` suppresses it, without affecting the legitimate horizontal scrolling of the tab bar when the tabs don't fit. ### Steps to reproduce 1. Open any form view with a notebook in a maximized window where the tabs fit horizontally. 2. A short vertical scrollbar is drawn at the right of the tab bar, scrolling nothing. ### Note Already fixed on `master` (`addons/web/static/src/core/notebook/notebook.scss` has `overflow-y: hidden`). This backports the one-line fix to 18.0. <img width="2637" height="1924" alt="29476" src="https://github.com/user-attachments/assets/9b51723d-5b98-4047-b51a-65c56c2505ce" /> <img width="1661" height="499" alt="88342" src="https://github.com/user-attachments/assets/0e7299f1-7b2b-4b19-9c2f-ff9bd3985e98" />
This update corrects a bug where the link popover title didn't update when a file's name was changed within the HTML editor. Now, the popover displays the correct, current file name, ensuring users always see accurate information about attached files. This improves the user experience and data consistency.
Original PR description
Problem: After updating a file name, the link popover still shows the original file name. Cause: The link popover always displays the attachment name instead of the current link content. Solution: Use the link content as the popover title so it reflects the updated file title. Steps to reproduce: - Go to To-Do → Create New. - Upload a file. - Change its title. - Observe that the title shown in the link popover still uses the original file name. task-6213840 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where the composer field in Odoo was misinterpreting the 'End' key when a mention was added. By adding a special character (FEFF), the browser now correctly positions the cursor at the end of the line, improving the user experience for composing messages.
Original PR description
### Purpose of this PR: - Inserting a mention in the composer results in a paragraph ending with a bare `<a>` element and no trailing text node. This causes the browser to mishandle the End key, moving the caret to the start of the next paragraph instead of the end of the current line. - Fix by appending a \uFEFF (zero-width no-break space) text node. task-6295924 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where the sale stock module installation would fail due to a warehouse constraint warning. The fix ensures that the installation process continues smoothly even when a company initially lacks a defined warehouse, preventing unnecessary installation interruptions.
Original PR description
Steps to reproduce the bug:
- Have a database with sale_management installed and at least two companies (Company 1 and Company 2)
- Confirm sale orders with storable products under each company
- Install the stock module (which triggers sale_stock as a bridge module)
Problem:
The installation raised a RedirectWarning ("Please create a warehouse for company 2") and aborted. During sale_stock installation, _init_column initialises the new `warehouse_id` column on `sale.order` via SQL. Orders belonging to companies that have no warehouse yet (company 2, since `create_missing_warehouse` only creates one for the first company at that point) remain NULL. The stored-field recompute then calls write(), which fires _check_warehouse. That constraint calls _warehouse_redirect_warning() for each company without a warehouse, raising a RedirectWarning that aborts the install.
opw-6302537This update resolves an issue where markdown commands and shortcuts were unexpectedly active within code blocks, causing errors. The fix prevents commands like `/table` from being executed inside code blocks, ensuring code blocks function as intended and improving the user experience. This ensures consistent and reliable code block functionality.
Original PR description
### Steps to reproduce: - Go to ToDo. - Create a code block using `/code`. - Place the cursor inside the code block. - Type `/table` and select the table command. - A traceback occurs. ### Purpose of this PR: - Commands and markdown shorthands should not be available inside code blocks. However, typing `/` inside a `<pre>` opened the command palette, allowing structural commands such as `/table` to be executed and causing a traceback. Similarly, markdown shorthands such as `* ` and `1.` were still active, unexpectedly transforming code content into lists. ### This PR fixes the issue by: - Disabling the command palette when the cursor is inside a `<pre>` element. - Disabling markdown shorthands inside `<pre>` elements by registering an `is_shorthand_available_predicates` predicate. task-6292231 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update ensures that binary files uploaded through forms now store their original filenames. Previously, this feature was limited to manual fields, causing issues with mimetype detection and hindering the migration of SaaS modules. This change improves file handling and reliability.
Original PR description
Description of the issue/feature this PR addresses: Since [1], studio binary fields uploaded through a form store their filename. Due to the condition of [1], this behaviour is restricted to manual…
Description of the issue/feature this PR addresses: Since [1], studio binary fields uploaded through a form store their filename. Due to the condition of [1], this behaviour is restricted to manual fields, which limits the usage of those fields in standard and is particularly problematic when Saas modules that use this feature are migrated to Python. Not storing the filename can lead to incorrect mimetype guesses. Given that a more appropriate condition has already been added in [2], it should no longer be necessary to restrict this feature to manual fields. This commit removes that restriction to allow standard binary fields to store their filename when uploaded through a form. Current behavior before PR: When uploading a file to a non-manual binary field that has a related '_filename' field, the filename will not be stored, which can later lead to incorrectly guessing the mimetype of the file. Desired behavior after PR is merged: Uploading a file to a non-manual binary field that has a related '_filename' field stores the filename of the file. Task related to this issue: https://www.odoo.com/odoo/project.task/5917543 [1] https://github.com/odoo/odoo/commit/0e2f3b144581c47d25a99cecdd7e058a3d55bcc3 [2] https://github.com/odoo/odoo/commit/1bcab2f42eebf98127416e54f31cd6e351938b7f --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268014
This update fixes a translation error in the Odoo POS system for Spanish-speaking users. Previously, the display of available event seats showed the directional term 'izquierda' instead of the correct 'restantes'. This change ensures users see the accurate remaining seat count, improving the user experience.
Original PR description
Description of the issue/feature this PR addresses: The string "left" in `pos_event` (used to show remaining/available seat count, e.g. "5 left") was translated in `es.po` as "izquierda" (directional meaning) instead of "restantes" (remaining count). The `es_419.po` file already had the correct translation "restantes". Current behavior before PR: Users with Spanish (es) language see "5 izquierda" in the event configurator popup and product card instead of "5 restantes". Desired behavior after PR is merged: The available seat count shows "5 restantes", consistent with the es_419.po translation. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a minor issue where the invoiced quantity was slightly off (rounding error) after importing XML bills and linking them to purchase orders. The fix ensures accurate quantity calculations by addressing a decimal precision discrepancy during the import process. This prevents discrepancies in invoice totals.
Original PR description
When importing an XML bill and linkin git to a purcahse order, the invoiced quantity may be computed incorrectly, due to a decimal precision mismatch. Steps to reproduce: - Import an XML bill having a line with quantity 1800.0 - Link to a purchase order with the same line Issue: The invoiced quantity will be computed with 1 cent difference (1800.01) Analysis: Because the system forced a decimal precision of 13 for 'Product Unit of Measure', quantity is imported as 1800.0000000000016. Later, when computing the invoiced quantity, the system round the quantity using 'UP' strategy, rounding the amount to 1800.01 opw-6194824