Wednesday, February 18, 2026
14 changes · 18.0
Enhancements to existing features
This update brings the Owl library, a key component of Odoo's website functionality, to version 2.8.2. This ensures continued compatibility and stability of Odoo's front-end performance and user interface.
Original PR description
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.8.2 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248976
Resolved issues and error corrections
This update fixes a bug in the onboarding tour for holiday requests. The tour previously failed when the yearly calendar displayed an initially disabled weekday cell (due to January 1st falling on a weekend). By excluding disabled calendar slots, the tour now reliably selects the correct 'first Thursday' for navigation, ensuring a smoother user experience.
Original PR description
Before, the tour attempted to click the “first Thursday” by selecting the first .fc-day-thu element in the DOM. The yearly calendar sometimes renders an initial “empty”/disabled weekday cell (when Jan 1 is Fri/Sat/Sun), so the first .fc-day-thu can be a disabled slot with no actionable element. That makes firstChild de-facto empty and the tour fails (seen reproducibly when the server date is set to years like 2027/2028, for example). Excluding .fc-day-disabled makes the selector target the first real Thursday cell task-5930501 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue preventing payroll users from opening the 'One-time payments' section within contracts. The fix allows authorized payroll users to access this functionality, ensuring they can complete necessary payroll processes. The change utilizes a secure method to bypass access restrictions.
Original PR description
Steps to reproduce: ------------------- 1. Install l10n_ch_hr_payroll_elm_transmission. 2. Switch to a Swiss company and create a new employee. 3. Create a new internal user with Payroll…
Steps to reproduce: ------------------- 1. Install l10n_ch_hr_payroll_elm_transmission. 2. Switch to a Swiss company and create a new employee. 3. Create a new internal user with Payroll Officer/Manager access. 4. Log in as that user, create a contract, and click on "One-time payments". Issue: --------- A Traceback with AccessError: ```You are not allowed to access 'Action Window' (ir.actions.act_window) records.``` Cause: ---------- https://github.com/odoo/enterprise/blob/9e39b4b85fcb9f6ed5b21b942796b76b8a6eefdb/l10n_ch_hr_payroll_elm_transmission/models/hr_contract.py#L195 The code attempts to call `.read()` on an `ir.actions.act_window` record. Standard users typically do not have read access to window action records, resulting in an **AccessError** even if they have rights to the payroll data. Solution: ------------- Use [_for_xml_id](https://github.com/odoo/odoo/blob/93bd4d018d815b5f98d1eaaac3ae613aefbdba56/odoo/addons/base/models/ir_actions.py#L187) to return action content for the provided xml id in a safe way by doing [sudo](https://github.com/odoo/odoo/blob/93bd4d018d815b5f98d1eaaac3ae613aefbdba56/odoo/addons/base/models/ir_actions.py#L205) internally to bypass the access restriction. opw-5491467 Forward-Port-Of: odoo/enterprise#106598
This update fixes an issue where input fields weren't resizing correctly in some browsers, particularly Safari and Firefox. The change eliminates a reliance on outdated browser detection methods, ensuring consistent and accurate input field sizing across all supported browsers and preventing overflow.
Original PR description
Before this PR, `autoresizeInput` used a fixed buffer of `5px` to compensate for input borders. This caused incorrect sizing when inputs had thicker borders, leading to overflow issues. Safari 16 and…
Before this PR, `autoresizeInput` used a fixed buffer of `5px` to compensate for input borders. This caused incorrect sizing when inputs had thicker borders, leading to overflow issues. Safari 16 and earlier versions did not include padding and border in `scrollWidth`. To work around this, browser detection via regex was used to add a hardcoded extra value. A similar issue appeared in Firefox 145, where scrollWidth also excluded padding and border, causing inputs to overflow again. After this PR, The buffer is no longer hardcoded. The border width is now calculated dynamically and applied correctly to the final width. Browser sniffing has been removed entirely. Instead, the logic detects at runtime whether scrollWidth includes padding; if not, the missing padding is added to the computed width. This makes the behavior consistent across browsers and prevents overflow without relying on user agent checks. task-[5412025](https://www.odoo.com/odoo/project/1519/tasks/5412025) Forward-Port-Of: odoo/odoo#241315
This update fixes an issue where pasting XML into email templates didn't always work correctly, leading to malformed content. The change now automatically cleans and validates pasted XML, ensuring email templates are properly formatted and functional. This improves the user experience when creating and editing email templates.
Original PR description
Problem: Pasted HTML in email templates is not properly parsed. Cause: The pasted content can be valid XML. In that case, some self-closing elements (e.g. self-closing `t` tags) are not correctly parsed by the editor, leading to malformed content. Solution: Call the `fixInvalidHTML` utility when starting the edition to normalize the content and properly handle self-closing tags. Steps to reproduce: - Open an email template. - Add some content. - Toggle to code view. - Paste XML containing a self-closing `t` tag. - Observe that the content is not properly parsed. opw-5089487 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248624
This update resolves an issue where custom filter operators (like 'ends with') were not being correctly saved after a page refresh. Users were experiencing a confusing situation where the selected operator would revert to 'starts with'. This fix ensures that selected filter operators remain active, improving the usability of the custom filter creation process.
Original PR description
Steps to reproduce ================== - Go to Sign - Add a custom filter - Select the Display Name field - Select the "ends with" operator -> The "starts with" operator ends up being selected Cause of the issue ================== The ends_with operator is a virtual operator that should be restored after a render opw-5714125
This update corrects a display issue in the employee offer screen for the Belgium payroll localization. Previously, a contract type field was incorrectly shown, which has now been removed. This fix ensures the correct offer screen display and avoids future duplication in subsequent Odoo versions (starting 19.0).
Original PR description
Bug reproduction: Ensure that belgium payroll localization is not installed, go to offer of employee, contract type field is not there. Bug cause: Contract type field does not exist in the model, it was adding to the view by l10n_be_hr_payroll. Bug solution: I added new field contract_type_id to the hr_contract_salary_offer model (to show it on UI). Solved from 17.0 Note: I need to fix after version 19.0, because by starting from 19.0, the Belgium one will try to add the same field to the view again task - 5500488 Forward-Port-Of: odoo/enterprise#104578
This update grants the Invoicing & Banks group within the enterprise version of Odoo access to essential reports, specifically 'Statement Reports'. This enhancement improves reporting capabilities for this key group, allowing them to better manage financial data.
Original PR description
In enterprise, we are allowing the Invoicing & Banks group to have access to basic reports, including 'Statement Reports' task-5925567 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where Invoicing and Banks users were unable to access certain basic reports. The change adds necessary security permissions, allowing these groups to view key reports related to partner ledgers and tax units, improving usability and functionality.
Original PR description
* Revert commit https://github.com/odoo/enterprise/commit/86c3c212bb79fbc2becac46f4d83b6f2fc381854 that introduced having Accounting features, menu items, and Account on invoice lines available for Invoicing users. * Allow Invoicing & Banks group to access basic reports * Backport missing access rights to properly open the reports without an access error. task-5925567
This update resolves an issue where Odoo couldn't connect to the database correctly when using the standard Odoo 18 setup. The fix ensures Odoo automatically uses the correct port for database connections, regardless of whether a replica database is configured. This improves overall stability and reduces potential connection problems.
Original PR description
Start postgres on an alternative port (e.g. 5434), start odoo with `--db_port 5434 --db_replica_host=''`, access /web/database/manager, there's a warning in the logs that says it is not possible to connect to the replica database.
The empty string for the replica host is Odoo 18 way to tell Odoo to simulate a replica database by connecting to the same db as the primary one. It should use `--db_replica_port` and when not set fallback on the same port as `--db_port`. The problem is that in case no `--db_replica_port` is set, the option is set `None` in the config, i.e. `get('db_replica_port', cfg)` was retuning `None` as was not using the fallback.
Description of the issue/feature this PR addresses:
Current behavior before PR:
Desired behavior after PR is merged:
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update fixes an issue where order totals in Point of Sale weren't always rounded correctly before being saved to the database. This ensures accurate financial reporting and prevents discrepancies in order amounts. The change improves data integrity and reliability for sales transactions.
Original PR description
Before this commit, the total amount of an order could be not properly rounded in some cases, and would get stored in the database with more decimal places than allowed by the currency. opw-5919317 --- 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 'Expenses Report' feature would fail when attached to encrypted PDF receipts. The fix skips these encrypted files and adds a note to the report explaining why the attachment was omitted. This ensures the report generation process continues smoothly.
Original PR description
**Steps to reproduce:** - Install hr_expense - Create an expense - Attach several receipts with at least one encrypted PDF - Create Report - From cog menu, print "Expenses Report" **Issue:** A traceback is raised while trying to add the attachments to the report: "File has not been decrypted". **Cause:** The encrypted file cannot be appended to the report PDF. **Solution:** Skip encrypted files and log a note with the reason in the report. opw-5194501 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248869
This update prevents tooltips from disappearing unexpectedly when a user navigates between a parent and child element within the Odoo interface. Previously, tooltips would be prematurely terminated, disrupting the user experience. Now, tooltips remain active as long as the user remains within the parent element's area.
Original PR description
Have a tooltip on a parent. Hover on a child of that parent. Now, leave the child but stay in parent. Before this commit, the tooltip would be killed and never respawn. After this commit, the tooltip is not even killed if we stayed within the parent's physical space. task-5346498 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update ensures that all rates displayed on the printed payslip are formatted to a maximum of 4 decimal places. This improves the clarity and consistency of the payslip output, aligning with reporting standards. The change was implemented to address a formatting issue.
Original PR description
This commit improves the payslip display by limiting all rates to 4 decimals max on the printed pdf payslip. Task: 5709739 Forward-Port-Of: odoo/enterprise#104915