Thursday, February 19, 2026
17 changes · saas-18.2
New functionality added to Odoo
A new internal test check helps detect when tests temporarily add methods to Odoo models but do not clean them up afterwards. This reduces the risk of one test affecting another, improving reliability for future releases without changing day-to-day user functionality.
Original PR description
Setting methods on models during tests and not removing them afterwards can cause misbehaviour of other tests. Setting mock or test-specific methods is not an issue but it should be done via patchers. https://runbot.odoo.com/odoo/error/237983 Forward-Port-Of: odoo/odoo#247151
Enhancements to existing features
This update adds more flexible options for calculating AVS (Additional Voluntary Savings) deductions within the Odoo Enterprise payroll system. Specifically, five new generic AVS deduction types have been implemented to provide greater flexibility for businesses. A new test has been added to ensure these deductions are calculated correctly.
Original PR description
5 more generic AVS is added to l10n_ch_hr_payroll/hr_salary_rule_data and /hr_payroll_input_types. task - 5902593 Forward-Port-Of: odoo/enterprise#106218
Resolved issues and error corrections
This fixes an internal validation issue where image fields could be incorrectly treated the same as general file fields. The change helps prevent mismatched file relationships and keeps data handling more reliable without changing normal user workflows.
Original PR description
This fixes an oversight of 4840a6639deb171c28ae14b0269d420aa1503860 that `Image` and `Binary` objects have the same `self.type` value and thus an `Image` can relate to a `Binary`, after all. Forward-Port-Of: odoo/odoo#249260
Point of Sale session reports now calculate discount amounts using the taxes that apply after a fiscal position is selected. This prevents incorrect discount totals on reports when fiscal positions change the taxes used for an order.
Original PR description
Steps: ---- - Create a fiscal position with 2 different taxes - Add a line in POS - Apply fiscal position and add line discount - Finish the order cycle - Download the session report Issue: ---- - The discount amount was calculated incorrectly in the session report Cause: ---- - The discount amount calculation used taxes before applying the fiscal position Fix: ---- - Used `tax_ids_after_fiscal_position` for tax calculation while computing the discount amount task-5421215 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#244650
This fix prevents a tooltip from disappearing when a user moves the cursor from a child item back within the same parent area. It improves interface consistency by keeping helpful on-screen guidance visible when the user has not actually left the relevant 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 Forward-Port-Of: odoo/odoo#248857
Missed presence notifications now show the correct availability status for each person instead of incorrectly reusing the current user's status. This helps users see accurate online/offline information in messaging and avoids confusion when reconnecting or subscribing to updates.
Original PR description
Before this commit, the missed presences flow incorrectly sent the current user's `im_status` for partners whose presences were missed. This happens because, since [1], presence updates send the bus target's `im_status`, which corresponds to the current user in this subscription flow. This commit fixes the issue by always retrieving the `im_status` from the presence record's identity field. [1] https://github.com/odoo/odoo/pull/204485
The Invoicing & Banks user group can now access basic accounting reports, including statement reports. This fixes an access gap so authorized finance users can view the reports they need without requiring broader permissions.
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 Forward-Port-Of: odoo/odoo#249006
This fix makes the Time Off calendar tour ignore inactive calendar slots when choosing a Thursday. It prevents automated checks from failing in certain years, helping keep the Time Off feature validation stable without changing user-facing behavior.
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 Forward-Port-Of: odoo/odoo#248275
The date picker now displays its navigation arrows in the correct direction when the website is used in right-to-left languages such as Arabic. This improves the rental booking experience for customers using RTL languages and avoids confusing date navigation.
Original PR description
### Steps to reproduce: - Download Rental and eCommerce apps. - Install an RTL language (e.g., Arabic) on the website. - Create a rental and go to website. - Try to pick a date for the rental. ### Issue: When the website is viewed in an RTL language, the navigation arrows of the date picker are displayed in the wrong direction. This happens because the date picker is not inside `o_rtl` component, but inside `o-main-components-container` component. So, when `o_rtl` is called in css (for example): https://github.com/odoo/odoo/blob/2264f330859b79010b227e3a9fda1075de8ed4e8/addons/web/static/lib/odoo_ui_icons/style.css#L67-L76 Since the arrows are not inside `o_rtl`, the transformation doesn't apply to them. ### Solution: The `o_rtl` class has been appended to `o-main-components-container` class in case of a RTL language, so that had the css file contain rules for `o_rtl`, they would be applied automatically. opw-5498615 Forward-Port-Of: odoo/odoo#246190
This fixes how electronic invoice customization settings are inherited across regional invoice formats. It helps ensure localized UBL/PINT e-invoicing configurations for countries such as Australia/New Zealand, Japan, Malaysia, and Singapore continue to work consistently.
Original PR description
no-task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248992
This update prevents an error that could occur when creating a new forum post while debug mode is enabled. It corrects how forum tag settings are passed internally, helping administrators and testers use the forum posting flow reliably.
Original PR description
Following rewrite in odoo/odoo@33206fd1941ae, this commit update passed props (`disabled` -> `isReadOnly`) to avoid a crash when creating a new forum post while being in debug mode: `OwlError: Invalid props for component 'WebsiteForumTagsWrapper': unknown key 'disabled'` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#244063
This fixes a database connection setting so Odoo uses the main database port when no separate replica port is configured. It prevents misleading connection warnings for deployments that simulate a replica on the same database, improving reliability of database management flows.
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-pr
Forward-Port-Of: odoo/odoo#249291This fixes a spreadsheet issue where duplicating an Odoo list and then using undo could crash the page. Users can now safely reverse a duplicated list action, improving reliability when working with spreadsheet data.
Original PR description
How to reproduce: - insert an odoo list in a spreadsheet - duplicate the list from the sidepanel - undo with Ctrl+z -> crash The command "DUPLICATE_ODOO_LIST" was not supported in the inverseCommand registry. Task-5943688 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 Forward-Port-Of: odoo/odoo#248969
This update resolves an issue where DHL shipping rate calculations failed when requested for dates outside of business hours. Adding a 'next business day' flag ensures rates are accurately calculated, preventing errors and ensuring reliable shipping options for customers. This addresses a previous problem that resulted in unavailable product messages.
Original PR description
Before this commit, there was an issue when trying to get the rates for DHL shipping late in the day. The issue happened because `plannedShippingDate` fell outside of the working hours. This commit adds the nextBusinessDay flag for the rating request to avoid the error. Error: ``` Product not found 996: The requested product(s) not available for the requested pickup date. Process ID associated for this transaction') ``` opw-5393684 Forward-Port-Of: odoo/enterprise#107153
This update resolves an issue where users in the Invoicing and Banks security groups were unable to access certain basic reports. The change adds necessary security permissions, allowing these users to open and utilize key reports without encountering access errors. This ensures consistent reporting functionality for all user groups.
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 Forward-Port-Of: odoo/enterprise#107654
This update streamlines testing within the Odoo Enterprise platform by resolving an issue where test patches were causing errors. The team has converted specific patches to use a standard method, improving the reliability and stability of the testing process. This change ensures more consistent and accurate test results.
Original PR description
Otherwise they trip the on-test-side-effect-detector (at least in its current incarnation). Forward-Port-Of: odoo/enterprise#106948
This update resolves an issue where test runs were repeatedly generating unnecessary assets, slowing down the testing process. By adding a key asset bundle to the test preparation list, we've eliminated redundant generation and significantly improved test performance. This ensures faster and more reliable testing of the Odoo Enterprise platform.
Original PR description
During tests runs, lazy loaded assets are generated on the fly, and eventually multiple hundred of times (i.e. +/- 150 times on runbot). This commit adds the `web_studio.studio_assets` bundle to the pregeneration list to avoid regenerating during tests runs. Forward-Port-Of: odoo/enterprise#107147