Tuesday, February 17, 2026
23 changes · 19.0
Enhancements to existing features
The web interface framework used by Odoo has been updated to a newer version. This helps keep the user interface foundation current and may bring reliability and maintenance improvements without introducing a major visible change for users.
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
The SEPA payment method created by the online payment provider is now labeled “Online SEPA” instead of sharing the same name as another SEPA method. This reduces confusion for users configuring payment settings and helps them choose the correct option.
Original PR description
When activating SEPA Payment Provider and checking SEPA in your settings, the name of the two (different) method was the same. Rename the method line associated with the method that comes from the provider by 'Online SEPA' to avoid confusion. task-5875979 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Documentation and clarification updates
Henry Backman has been added as a member under Camptocamp's corporate Contributor License Agreement. This keeps the project's contributor records up to date and supports compliant contributions from the organization.
Original PR description
Please add me as a member of the Camptocamp organization. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The stock app now restricts the serial/lot number quantity field to whole numbers, preventing users from entering text or decimal points. This avoids unexpected error screens when warehouse users generate serial or lot numbers during receipt processing.
Original PR description
Issue before this commit: ========================= When generating serial/lot numbers, if a user enters a `string value (e.g. "dhha" or ".")` in the `Number of SN` field of the Generate Serials/Lots…
Issue before this commit: ========================= When generating serial/lot numbers, if a user enters a `string value (e.g. "dhha" or ".")` in the `Number of SN` field of the Generate Serials/Lots wizard, a traceback is raised: `InvalidNumberError: "dhha" is not a correct number`. Steps to Reproduce: ========================= - Install the "stock" module. - Create a receipt for a serial-tracked product. - Open the detailed operations. - Click on "Generate Serials/Lots". - Enter a string value in the "Number of SN" field. Result: A traceback is raised with: InvalidNumberError: `"dhha" is not a correct number.` Cause of the issue: ========================= The [next_serial_count input](https://github.com/odoo/odoo/blob/17.0/addons/stock/static/src/widgets/lots_dialog.xml#L36) field is defined as type="text", which allows users to enter string values, even though the field represents a numeric count. The value is later processed using [parseInteger](https://github.com/odoo/odoo/blob/17.0/addons/stock/static/src/widgets/generate_serial.js#L33), which throws an error when the input is not a valid integer string, [Here](https://github.com/odoo/odoo/blob/17.0/addons/web/static/src/views/fields/parsers.js#L139). With This Commit: ========================= The input type is changed from type="text" to type="number", ensuring that only numeric values can be entered. This prevents invalid input and avoids the traceback when generating serial or lot numbers. Additionally, a `t-on-keydown` handler is added to prevent entering a `dot (.)`, ensuring that only integer values are allowed. Forward-Port-Of: odoo/odoo#248729 Forward-Port-Of: odoo/odoo#248221
This fix gives the point-of-sale test process more time when product tax updates trigger local browser storage activity, reducing false timeout failures in Kenya localization test runs. It also adds clearer diagnostic information if the timeout happens again, helping teams investigate future issues faster.
Original PR description
There is an issue that seems to only happen on l10n_ke runbot that times out on tests that try to add a product to the cart in pos and then refresh the page. The l10n_ke_edi_oscu_pos module has a…
There is an issue that seems to only happen on l10n_ke runbot that times out on tests that try to add a product to the cart in pos and then refresh the page. The l10n_ke_edi_oscu_pos module has a listener added on the order component which tries to automatically add the taxes to the products in the order. This triggers a transaction on indexed db. Since the tour test executes the refresh immediately after adding the product to the cart, it causes a timeout. I could not reproduce the issue locally, but it's been happening consistently on almost every nightly run, always on the l10n_ke run. This PR will increase the timeout and add some extra info to the timeout message to help with debugging in the future. Runbot error: [233525](https://runbot.odoo.com/odoo/runbot.build.error/233525) Task: [5897379](https://www.odoo.com/odoo/project/1737/tasks/5897379) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248257
This fix prevents certain page elements with special rendering rules from being incorrectly included in translation text. It helps avoid translation extraction or display issues in Odoo views, with a small internal impact on translation reliability.
Original PR description
Nodes with directives must not be included inside a translatable span. But the function `translatable` missed the directive `groups` (without `t-`), and the class `o_translate_inline` should only override the predicate about the element's tag. Forward-Port-Of: odoo/odoo#248591 Forward-Port-Of: odoo/odoo#246354
Product details in the catalog now display in the correct order and alignment when users work in Arabic. This prevents product names, references, and prices from visually collapsing together, making sales and purchase order entry clearer for right-to-left language users.
Original PR description
Steps to reproduce: 1. Switch the user language to Arabic. 2. Open the Product Catalog from a Sales/Purchase order. 3. Observe that the Name, Internal Reference, and Price collapse into a single line with inconsistent ordering due to unmanaged horizontal inline flow. Cause: The use of generic span elements inside a portal encourages horizontal inline flow that fails to mirror correctly in RTL without explicit flex instructions. Solution: Update the Order Line portal template to use 'd-inline-flex' and 'align-items-baseline'. This treats the price and reference as a logical unit that respects the global direction and ensures consistent text alignment in both English and Arabic. opw-5867434 Forward-Port-Of: odoo/odoo#248620
Users in the Invoicing and Banks group can now access basic accounting reports, including statement reports, in enterprise environments. This fixes an access gap so the right 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 'Stetment Reports' task-5925567 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
Printed quotations with tables will now display table borders consistently, including when opened in Firefox. This prevents sales documents from looking incomplete or poorly formatted for customers.
Original PR description
Problem: When adding a table in the Sale Quotation description and printing it, the generated PDF shows no table borders when opened in Firefox. Cause: Some PDF viewers (e.g., Firefox) do not render table borders correctly of a PDF created by `wkhtmltopdf` without an explicit border width. Solution: Explicitly define the border width in the `base_style` of `html_editor` to ensure consistent rendering in generated PDFs. Steps to reproduce: - Create a new Sale Order. - Add a table in the description. - Print the quotation. - Open the generated PDF in Firefox. - Observe that the table appears borderless. opw-5857255 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes a Firefox-specific editing issue where typing after deleting text around a link or button could create an empty duplicate element. This helps users edit website or email content more reliably without unexpected broken buttons or links appearing.
Original PR description
In some situations Firefox behaves strangely when adding a character add the end of a button, by duplicating the button element without children and inserting the text between both buttons. It seems Firefox maintains an internal selection state that is corrupted after some operations. This commit resets the collapsed selection inside links in order to reset this internal state in Firefox. Steps to reproduce: - Insert a link - Put some text after the link - Delete the first character from the text - Keep deleting until the last character from the button is deleted - Type a character => The button was duplicated and the text was inserted between both buttons. - Note that if you undo/redo, then typing a character did work fine task-5033890 Forward-Port-Of: odoo/odoo#248533 Forward-Port-Of: odoo/odoo#241895
This fix removes a temporary workaround in the API documentation area now that renamed custom fields are handled correctly elsewhere. It helps keep the documentation code simpler and reduces the chance of inconsistent field names appearing in generated API docs.
Original PR description
Reference-to: ec2b2edda9d4a2e4fb45d0 ([FIX] base: rename inherited custom field) 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
Candidate refusal emails are now recorded together with the related refusal action, making it clear whether the message was successfully sent. This helps recruitment teams better verify applicant communications and avoid uncertainty in the hiring process.
Original PR description
Before this commit, applicant refusals were logged in the chatter separately from sending the mail, making impossible to see if the mail was correctly sent or not. Forward-Port-Of: odoo/odoo#235888
This fixes the sales order portal layout so section rows span the right width on smaller screens. Mobile users will see cleaner, properly aligned sales order details when some columns are hidden responsively.
Original PR description
The colspan computation on the SO section is broken on mobile. This is because the unit price column is not rendered < sm viewports, and the taxes column is not rendered < md viewports. Thus we need to adapt the colspan accordingly to these responsive columns. task-5942576 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where journal filters weren't correctly reflected when viewing journal items within the general ledger report. Now, when selecting a journal filter, the corresponding journal entry details are accurately displayed alongside the related invoices. This ensures users can easily analyze financial data by journal.
Original PR description
When opening the general ledger, if a journal was selected in the filter of the report, when clicking on "Journal Items" it would open the list view of account.move.lines without the journal in the filter. Also, the support for multiples journals is added but will require a -u of account to refresh the view. To reproduce: - Create an invoice on an Account such as Product Sales - Create a journal entry on the same account - Open the general ledger - Select "Customer Invoices" and click on "Journal Items" on the Account you choose. You can see both the move lines from the invoice and the journal entry. Forward-Port-Of: odoo/enterprise#106836
This update corrects a problem where payment reference data from Codabox was incorrectly formatted, often with extra spaces. The change automatically removes these spaces before creating reco models, ensuring data accuracy and preventing potential errors in financial reporting. This improves the reliability of bank statement imports.
Original PR description
Before this commit, when we do the creation of the automatic reco models, it was possible that the payment ref ended with a lot of empty spaces. To avoid that, we now strip the payment ref before the creation of the reco model. Data coming from codabox where wrongly formatted since the payment ref could have space at the end or the start and even in the middle. By using a split join we solve that issue. task-5926548 Forward-Port-Of: odoo/enterprise#107421
This update ensures that essential products like 'Settle Due' and 'Deposit' are automatically configured for all Point of Sale (POS) settings within the Odoo Enterprise system. Previously, these products were only added when a POS session wasn't active, causing potential issues. Now, all POS configurations will have these products available, streamlining the user experience.
Original PR description
Before this commit, when the module pos_settle_due was installed, the special products (settle due, deposit, settle invoice) were only set on the POS configurations that did not have any open session. This could lead to issues when trying to use these products in a POS session of a configuration that did not have them set. Now, the special products are set on all POS configurations when installing the module. Community PR: https://github.com/odoo/odoo/pull/229074 Forward-Port-Of: odoo/enterprise#95789
This update fixes an issue where the inf-a and inf-b reports were incorrectly excluding partners without VAT numbers. The changes now include these partners and harmonize warning messages, ensuring more accurate reporting of VAT obligations. This improves the reliability of key financial reports.
Original PR description
Both inf-a and inf-b reports should include partners with no vat number. Also updated partner warning on reports to harmonize with main query itself. Now warning is shown if: - no country and no VAT - no country and VAT not starting with EE - no country and VAT is "/" Forward-Port-Of: odoo/enterprise#106954
This update fixes a problem where the system was creating multiple, empty pay runs when generating payslips through the selection dialog. The fix ensures only one temporary pay run is created per dialog, preventing data clutter and improving system stability. This avoids unnecessary database entries and simplifies payroll processing.
Original PR description
When generating payslips from the selection dialog the UI previously created a new hr.payslip.run on every attempt; server-side validation can fail and each failed attempt left an empty pay run in the database. Fixed by allowing the dialog to create at most one temporary pay run per dialog lifecycle, reuses it on retries, and removes it if generation fails or the dialog is closed. task-5920710 Forward-Port-Of: odoo/enterprise#106857
This update resolves an issue where the header in the sign application was overlapping due to a color bar. The team removed a styling tag to correct the layout and ensure a clean, professional appearance for users completing the signing process. This improves the user experience.
Original PR description
Remove `top` tag to prevent header overlap due to neutralize red color bar Before fix: <img width="1953" height="790" alt="image" src="https://github.com/user-attachments/assets/dd9f7a00-eaea-4304-a22d-d8df96203823" /> After fix: <img width="1892" height="639" alt="image" src="https://github.com/user-attachments/assets/247e6067-570a-4fcb-a0e9-6f2640940f21" /> opw-5900244
This update ensures that specific fields related to Belgian payroll and fleet management within the Odoo Enterprise system are hidden for companies outside of Belgium. This change streamlines the system for international users while preserving the unique fiscal logic for Belgian operations. The update aligns with a broader refactoring effort to standardize payroll and fleet data across all countries.
Original PR description
This branch only hides BE-specific fields in l10n_be_hr_payroll_fleet (they remain defined/used there and are invisible for non‑BE companies). On master (19.3) those generic fields (can_be_requested, default_car_value) were refactored into hr_payroll_fleet so payroll+fleet consumers across all countries can use them; BE fiscal logic stays in l10n_be_hr_payroll_fleet task-5906656 Forward-Port-Of: odoo/enterprise#106456
This update ensures that the preparation display in the backend accurately reflects changes when a POS order is cancelled or deleted. When an order is removed, related preparation data is also cleaned up, preventing outdated information from appearing. This improves the accuracy and reliability of the POS system.
Original PR description
**In this commit:** Ensure the preparation display UI is updated when a POS order is cancelled or deleted from the backend. - On order cancellation, the preparation display is refreshed accordingly. - On order deletion, related preparation orders, lines, and states are removed via notify call. Task-5373116 Related: https://github.com/odoo/odoo/pull/240523 Forward-Port-Of: odoo/enterprise#103052
This update fixes a technical error in the account return process that was preventing accurate reporting. The incorrect configuration of check codes was resolved, ensuring the system now correctly identifies and handles returns. While previously protected, this change addresses a potential future vulnerability.
Original PR description
the check codes to ignore was wrongly defined, leading to contain records instead of 'code', plus having the exact opposite of what it was supposed to contains, i.e. codes that aren't supposed to be run at the current state of the return. However, it didn't have any impact functionally because it was "protected" by the function _should_run_checks(), which might disapear in the future.
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 professionalism of the payslip document, aligning with standard reporting practices. 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