Monday, February 16, 2026
27 changes · saas-19.1
Resolved issues and error corrections
This update fixes an issue where the record count wasn't correctly displayed alongside group labels in list views. Previously, the count was appearing in unrelated columns, creating a confusing user experience. This change ensures the grouped record count is now consistently shown next to the group label, improving clarity and usability.
Original PR description
Currently, when applying a `Group By` filter in `list views`, the record count is displayed far from the group label. **Steps to reproduce:** - Open `Apps` and switch to the list view. - Apply a…
Currently, when applying a `Group By` filter in `list views`, the record count is displayed far from the group label. **Steps to reproduce:** - Open `Apps` and switch to the list view. - Apply a `Group By` filter (e.g., Author). - Observe where the grouped record count is displayed. **Observation:** The total number of records is rendered under unrelated columns rather than being displayed next to the group label. **Root Cause:** After commit [1], the `ms-auto` class at [2] causes the `group count` to be moved away from the group label. **Fix:** This commit ensures that the grouped record count is displayed next to the group label, consistent with previous versions. **Before:** <img width="1909" height="466" alt="5438766_before" src="https://github.com/user-attachments/assets/3ac44b19-2dad-4f01-ab78-8f456405e4d5" /> **After:** <img width="1905" height="453" alt="5438766_after" src="https://github.com/user-attachments/assets/ce0143e5-feeb-49ee-8d42-5235add669e4" /> [1]: https://github.com/odoo/odoo/pull/235250/commits/963696f4839b3043226ac118bf6a4ae8e8e92823 [2]: https://github.com/odoo/odoo/blob/25c372b254cec8635bb73b04c7729530f8a08e72/addons/web/static/src/views/list/list_renderer.xml#L247 opw-5438766
This update resolves a minor issue that prevented the application from functioning correctly when using the Ukrainian language. The fix addresses a problem with how the system retrieves language patterns, ensuring a more reliable experience for users in Ukrainian. This change improves overall application stability.
Original PR description
**Steps to Reproduce:** 1. Install `stock_fleet` module (with demo data). 2. Set the **Ukrainian** language for the user. 3. Open Fleet > Vehicle > Click Category Error: `KeyError: '2'` **Cause:** Babel's CLDR list patterns for some locales (e.g., Ukrainian 'unit-short') do not include the two-item pattern key, so when babel's `format_list` attempts to access patterns, it will raise an error. **Fix:** This commit wraps the call in a try/except that handles KeyError and retries formatting with the 'standard' style to avoid the crash. Forward-Port-Of: odoo/odoo#248519 Forward-Port-Of: odoo/odoo#248228
This update fixes a potential crash in the Italian EDI invoicing process when invoices are created with zero amounts in a foreign currency (like USD). The issue stemmed from a division-by-zero error during currency conversion. The fix ensures the system handles zero amounts gracefully, preventing errors and ensuring invoices can be generated correctly.
Original PR description
**Steps to reproduce:** 1. Install the `l10n_it_edi` and switch to IT company 2. Go to Accounting → Invoice. 3. Create an invoice add partner and change the currency to USD 4. Add a product and apply tax and discount of 100% and confirm 3. Click on Send **Issue:** A ZeroDivisionError is raised during the Italian EDI XML generation. `ZeroDivisionError: float division by zero` **Cause:** The conversion rate is computed by dividing `amount_total` by `amount_total_signed` without handling the case where `amount_total_signed` is `0.0`. **Solution:** Skip the conversion rate computation when the signed total amount is zero, preventing the division by zero **opw-5481821** Forward-Port-Of: odoo/odoo#245087 Forward-Port-Of: odoo/odoo#244423
This update corrects a previous issue where taxes related to GST, TDS, and TCS registration remained active even after the registration settings were disabled. Now, when a user removes these registrations, the associated taxes are automatically deactivated, ensuring accurate tax calculations and compliance. This simplifies tax management for users.
Original PR description
Before this PR: - When enabling TDS, TCS, or GST registration from settings, related taxes are activated, but when disabling these settings, the taxes remain active. After this PR: - When disabling TDS, TCS, or GST registration, all related taxes are deactivated. task-5456351 Forward-Port-Of: odoo/odoo#242030
This update fixes an issue where the total amount for invoice sections was incorrectly positioned in the PDF reports for the l10n_in tax module in Russia. The change adds the necessary column to align with product HSN/SAC reporting, ensuring accurate invoice summaries. This improves the clarity and accuracy of invoices generated for Russian businesses.
Original PR description
How to reproduce : - With l10n_in company - Create Invoice - Add section - Add product under section - Confirm invoice - Print to pdf The problem : The value for the total amount of the section is in the wrong column (the one to the left) Why : The l10n_in module adds a column in the report for the HSN/SAC of the products. It correctly did for the products and the table title but not for the sections. opw-5879828 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246768
This update resolves a visual bug where product arrows within snippets were incorrectly positioned, particularly when the snippet was set to full width. The fix ensures arrows appear correctly regardless of snippet size or scrolling mode, improving the overall presentation of product listings on the website. This enhances the user experience and consistency of product displays.
Original PR description
*: website_sale Since commit [1], the position of the arrows in the product snippet was broken when they were set to appear at the bottom. It also fixes the arrow positioning when the snippet is set…
*: website_sale Since commit [1], the position of the arrows in the product snippet was broken when they were set to appear at the bottom. It also fixes the arrow positioning when the snippet is set to full width, with the title displayed on the side and "Scrolling Mode" set to "All." This commit correctly adjusts the arrow positioning. [1]: https://github.com/odoo/odoo/commit/54fde5da6c229a7173c5b4c042b3330598db3904 task-5935743 | Before | After | |--------|--------| | <img width="1617" height="635" alt="Capture d’écran 2026-02-13 à 09 40 36" src="https://github.com/user-attachments/assets/21e3545c-e243-4ee7-9fd5-51ca06b8c496" /> | <img width="1620" height="664" alt="Capture d’écran 2026-02-13 à 09 39 14" src="https://github.com/user-attachments/assets/6dcdfc0f-6dc8-4293-9d23-ea36d19fc2b4" /> | | <img width="1921" height="719" alt="Capture d’écran 2026-02-13 à 11 12 22" src="https://github.com/user-attachments/assets/8916438c-8108-43ec-a70a-aba8c83ba881" /> | <img width="1918" height="654" alt="Capture d’écran 2026-02-13 à 11 17 21" src="https://github.com/user-attachments/assets/df872f4a-5674-4fff-a0de-b6c99f30acb2" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue preventing users from correctly updating map addresses within the website. The fix eliminates an infinite loop that occurred when changing map locations, ensuring accurate map displays after address modifications. This improves the user experience when using the Google Maps integration.
Original PR description
When we add the google map block and try to change the address, we're unable to do so because of the infinite loop. The issue is due to the onPlaceChanged call inside the onPlaceChanged. We'll use commitPlace instead to commit place's coordinates, then re-render the map to reflect it. Steps to reproduce: 1. Add a google map block. 2. Try to change the address. It doesn't work due to the maximum call size exceeded due to infinite loop. opw-5386094 Forward-Port-Of: odoo/odoo#243679
This update fixes an issue where resetting dynamic colors in SVG illustrations would cause the images to disappear. Now, resetting the color palette restores the correct theme colors, ensuring SVG images remain visible and functional after color adjustments. This improves the user experience when customizing website visuals.
Original PR description
Steps to reproduce: - Insert a media library SVG illustration. - Change one of its Dynamic Colors. - Click the reset button in the colorpicker. => The SVG disappears. Before this commit, resetting a dynamic SVG color could send an empty color value and the image failed to render. After this commit, resetting restores the theme palette colors so the SVG stays visible. task-5868584 Forward-Port-Of: odoo/odoo#248092 Forward-Port-Of: odoo/odoo#245778
This update fixes an issue where the split screen in the restaurant POS module incorrectly showed discount information. The fix ensures that the correct discount value (as a percentage) is displayed, resolving a confusing user experience. This improves accuracy and clarity when splitting bills.
Original PR description
Steps: --- - Configure Restaurant with a global discount. - Open a session and add products. - Apply a global discount. - Open the control buttons and click Split. Issue: --- - The split screen displays the text `With [Object Object]% discount`. Cause: --- - The discount object was rendered directly instead of its value. Fix: --- - Display the correct discount value based on its type. task-5905885 --- 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 code editor lost focus after changing the syntax highlighting language. Now, users can seamlessly switch languages without needing to manually re-enter the code. This improves the user experience and efficiency when working with code snippets.
Original PR description
**Description of the issue:** - When a user changes the language of a syntax-highlighted code block, the editor loses focus from the code input. As a result, the user must manually click back into…
**Description of the issue:** - When a user changes the language of a syntax-highlighted code block, the editor loses focus from the code input. As a result, the user must manually click back into the code block to continue typing **Steps to reproduce:** - Insert a syntax-highlighted code block. - Click the language dropdown to change the syntax highlighting language. - Select a different language from the dropdown. The language dropdown closes correctly after selection. Focus does not return to the code block input. Instead, focus remains on the dropdown button. **Cause:** - Although focus is explicitly set back to the code block input after selecting a language, closing the dropdown restores focus to the element that was active when the dropdown was opened . As a result, the input does not receive focus. **Solution:** - For the language selector dropdown, set focusToggleOnClosed = false so that closing the dropdown does not restore focus to the dropdown button. - For the copy button, prevent focus on pointerdown. task-5785595 Forward-Port-Of: odoo/odoo#245161
This update corrects a technical issue where website controllers could incorrectly link to irrelevant model types, leading to potential errors. By restricting controller bindings to concrete models, we’ve enhanced the stability and performance of the Odoo website. This change ensures data integrity and a smoother user experience.
Original PR description
Before this commit, a website_controller_page could be bound to any sort of model. For some of them this was irrelevant or plain wrong: - transient models: they are not pointing to anything relevant business wise - abstract: they cannot even have records, and most of them are mixin - _auto = False: Those are models with a table which is a custom one. The heuristics here is to say that records are not "real" ones. Also, most of these tables are sqlViews or something similar Business wise there were errors because of this, so this commit introduces a constraint that forbids the above use cases. sentry-6842596566 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#246115
This update adds a system setting to automatically delete old device logs, helping to manage database storage and improve performance. Administrators can now define how long session data is retained, ensuring efficient log management. Careful consideration of database backups is required when setting this retention period.
Original PR description
The res.device.log table contains a huge amount of data. It makes sense to provide a way for administrators to garbage collect these logs according to their retention policy. The `ir.config_parameter` to determine the retention policy is `base.res_device_log_retention_days`. With the hard GC configured, a log will be deleted if its last activity has exceeded the number of days specified in the system parameter. This can remove all traces of a session identifier. The parameter must be chosen judiciously according to the database backups. Note: Put more information in the logs, as this data may be deleted. Task-5928301
This update resolves an issue where Point of Sale would crash when a user created an order containing a combo with an archived product. The fix prevents the system from attempting to access data from the archived product, ensuring a stable Point of Sale experience. This improves reliability for users managing product inventories.
Original PR description
Steps to reproduce: - Archive a product used in a combo. - Open Point of Sale. - Create a new order. - A blank screen appears (error in console) Cause: - The system attempts to access fields of an archived product included in a combo choice. Fix: - Skip loading the combo choice whose product is archived. Task-5936290
This update addresses a recent failure in the automated testing for the Employee Holiday Report. The fix involves ensuring a necessary table is always initialized, resolving an issue identified in a previous Odoo bug report. This ensures the report functionality continues to operate correctly.
Original PR description
Since odoo/odoo#215798 , Click All test has been failing, this commit aims to fix it by introducing a proper _init function to ensure the table exists at any time task-5907217 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a minor issue in the HTML editor that could occasionally cause errors. The fix uses a technique called 'optional chaining' to safely access the previous sibling element, preventing the error when the element is missing. This improves the overall stability and reliability of the HTML editor.
Original PR description
Before this commit: in rectifySelection, the focusTarget can be null and causing an error when calling the previousSibling After this commit: now we do an optional chaining(?.) on previousSibling task-5481248 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248595
This update resolves a problem where font family settings in the mass mailing editor weren't consistently applied. The fix ensures that changes made through the Design Tab correctly override font styles, providing users with greater control over the appearance of their emails. This improves the overall user experience and design flexibility.
Original PR description
There is an issue where some editor descendants have a rule overriding their `font-family` which has more precedence than the inherited `font-family` from the Design Tab. How to reproduce: - create a new mass_mailing - add a text snippet - select all text and change e.g. the `font-size` - open the Design Tab and change the `font-family` of paragraphs Issue: - the text `font-family` does not change Resolution: Fix a css rule applying on every element that is not a `fa` element so that it only applies on the `o_layout` element to let the Design Tab override the `font-family` for specific elements (e.g. `<p>`, `<a>`, ...). task-5869568 Forward-Port-Of: odoo/odoo#245304
This update fixes a technical error in the l10n_hr module where tax group receivable accounts were incorrectly linked to payable accounts. This misconfiguration was preventing accurate tax reporting and financial calculations. The change ensures proper accounting for tax groups, resolving a potential reporting issue.
Original PR description
The receivable accounts were wrongly setup where the receivable account of the tax group was set with the payable account, ... task-5045769 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248842
This update corrects an issue where rental order display names were failing due to incorrect data being used. The fix ensures consistent and accurate partner name display by utilizing the `display_name` field, preventing errors when contact names are missing.
Original PR description
Steps to produce: --- - Install `sale_renting` and `contacts` modules. - Go to contact and open `yourcompany` record. - Add a new contact of type Delivery and save (leave the name empty). - Go to…
Steps to produce: --- - Install `sale_renting` and `contacts` modules. - Go to contact and open `yourcompany` record. - Add a new contact of type Delivery and save (leave the name empty). - Go to Rental > New Order. - Select YourCompany, Delivery as the customer. - Add a rental product and confirm the order. - Open the Schedule view. Traceback: --- `TypeError: sequence item 0: expected str instance, bool found`. Root cause: --- - At [1], the system tries to use the customer's name when computing the display name. However, in this case, the delivery contact has no name, resulting in a False value. This False value is then included in the description list, causing the TypeError when joining the sequence. Solution: --- - Use the partner's `display_name` instead of `name`. The `name` field can be `False` in some cases. The `display_name` field is a computed field that always provides a valid, formatted string by using fallback values such as the company name, parent name, or contact type. This ensures consistency and prevents errors [1] https://github.com/odoo/enterprise/blob/f5fea1d7b40e42b7bc1c323cc9613b1aa347da09/sale_renting/models/sale_order_line.py#L61 opw-5914084 --- Forward-Port-Of: odoo/enterprise#106827
This update resolves an issue where the version of the l10n_be_hr_payroll module was incorrectly referenced. This fix ensures accurate tracking and deployment of the payroll module, maintaining the stability and reliability of financial reporting within Odoo Enterprise. It's a routine maintenance update.
Original PR description
Forward-Port-Of: odoo/enterprise#107482
This update corrects a flaw in the VoIP unit tests by replacing a misleading selector with a more accurate one. The change ensures the tests reliably check for expected conditions, and also streamlines the test code by removing unnecessary assertions. This improves the overall stability of the VoIP functionality.
Original PR description
Introduced by [1]. The use of `:value()` is always truthy, making that assertion useless in the related unit test. Replaced by `:empty` as intended and took the opportunity to remove the non-required extra assertion around that code. [1]: https://github.com/odoo/enterprise/commit/0ff7c35c266c547ed3cc63155ffba54727d43c07
This update fixes an issue where the month displayed on global invoices linked to POS orders was incorrectly reflecting the invoice creation date instead of the order date. This ensures accurate reporting and compliance with Mexican tax regulations. The fix corrects the 'Meses' attribute in the generated XML.
Original PR description
**PROBLEM** In accounting, if you create a global invoice with an invoice, the attribute `Meses` will be the month of the invoice date. In POS, if you do the same with an order, the attribute `Meses` will be equal to the month the day we create the global invoice, instead of the month of the order date. This is wrong. **STEP TO REPRODUCE** 1. Have an order from the month before (not sure how to do this on a runbot). 2. Create a global invoice. 3. Check the generated xml, and notice the month is wrong. opw-5381607 Forward-Port-Of: odoo/enterprise#107362 Forward-Port-Of: odoo/enterprise#106856
This update corrects a display issue where percentage fields in HR contracts were showing decimal values (e.g., 0.25%) instead of the intended percentage format (e.g., 25%). The underlying calculations remain accurate, and this change ensures a more user-friendly experience when viewing and editing these values. No data was changed.
Original PR description
Percentage fields are stored as a decimal in the DB (0.25) but represent a percent value (25%) The calculations are correct but the display to the user shows 0.25%, this PR fixes that without modifying the values stored on the database task-5350196
This update fixes an issue where the Employer File Number field was hidden in the payroll settings after installing the l10n_hk_hr_payroll module. The fix removes the setting that previously obscured this important data, ensuring users can now correctly input and view this required information.
Original PR description
Issue: - Employer File Number was hidden in Payroll settings after installing the l10n_hk_hr_payroll_empf module. Fix: - Removed the setting that hid the Employer File Number field. task-5476454 Forward-Port-Of: odoo/enterprise#103987
This update fixes a misleading error message displayed when validating Argentine electronic invoices (ARCA). The message has been corrected to accurately reflect the requirement that the invoice date cannot be before the last validated invoice, preventing incorrect invoice processing. This ensures compliance with AFIP regulations.
Original PR description
WSFE error 10016-1 must be "The invoice date cannot be before the last invoice validated in AFIP." instead of "The invoice date cannot be after the last invoice validated in AFIP". Steps to reproduce: validate argentinean customer electronic invoice with invoice date before than the last invoice date validated in ARCA. Task Adhoc side: 44290 Task latam: 1376 Forward-Port-Of: odoo/enterprise#106687 Forward-Port-Of: odoo/enterprise#106305
This update fixes an issue where the activity menu in web_studio was incorrectly displaying all records for custom models, rather than just those with activities assigned to the current user. Now, the activity menu accurately filters records to show only those with associated activities, improving the user experience and data accuracy.
Original PR description
After commit odoo/odoo@5c5fbc10b7024c7227f03e37897d421bba64df82 , actions spawned by the activities menu have their domain managed by dynamic <filter /> rather than a plain readonly domain. Before this commit, clicking on the activity menu to go to a custom model showed every record, not just ones with activities after this commit, only records with activities assigned to the current user are showed opw-5778806 Forward-Port-Of: odoo/enterprise#107277 Forward-Port-Of: odoo/enterprise#106622
Features or functions removed from Odoo
This update streamlines the demo data for the Indian payroll module (l10n_in_hr_payroll) by removing redundant working schedules. The change consolidates to a standard 40-hour work week, improving data consistency and reducing complexity. This ensures a more accurate and manageable demo environment.
Original PR description
### AIM - In the demo data, there is no need to create multiple working schedules for Indian locations. - We can use a single working schedule of 40 hours per week. Task: 5899739
Documentation and clarification updates
This pull request updates the Adhoc Corporate Legal Agreement (CLA) membership list. This ensures Odoo's development team adheres to the required legal agreements for open-source contributions. The change is purely a formality and does not impact Odoo's functionality.
Original PR description
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#248286