Wednesday, February 18, 2026
18 changes · saas-19.1
Resolved issues and error corrections
This update corrects a visual issue in the sign application where the header overlapped due to a red color bar. The fix removed a specific styling tag, resolving the overlap and ensuring a clean, professional appearance for users completing the signing process. This improves the user experience and brand consistency.
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 Forward-Port-Of: odoo/enterprise#106844
This update adjusts the width of the 'Review' button on the ticket screen in the Point of Sale module. Previously, when an order was paid, the button was unusually narrow. Now, it expands to take up the full screen width, providing a clearer and more usable experience for users.
Original PR description
Before this commit: --- - On the ticket screen in small UI, two btns are shown: Review and Load Order. - The Load Order button is only visible when the selected order is not paid. - When the order is paid, only the Review btn is shown, but it takes 50% width. After this commit: --- - When the order is paid, the Review button expands to take 100% width. task-5892189 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246743
A recent test report for MRP production planning was failing because the administrator user lacked the necessary permissions to select product variants. This update adds the required user rights, allowing the test to pass and ensuring accurate reporting of product variants within the test environment.
Original PR description
The _/mrp:TestReportBom.test_mrp_report_bom_variant_selection_ test was failling because administrator user couldn't use the product variants. The needed dropdown menu to switch variant wasn't displayed and the test failed. We add the "product.group_product_variant" rights to the user. Runbot error: 238917 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248634
This update corrects a rare display problem in Firefox where adding text to a link would create duplicate buttons. The fix resets Firefox's internal selection state, preventing this duplication and ensuring links display correctly. This improves the overall user experience for Firefox users.
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#248703 Forward-Port-Of: odoo/odoo#241895
This update fixes a display issue on the Odoo Sales Portal for mobile devices. The section showing order details was not resizing correctly due to differences in how columns (unit price and taxes) were displayed on smaller screens. This change ensures a consistent and properly formatted view for users accessing the portal on their phones and tablets.
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 Forward-Port-Of: odoo/odoo#248871
This update resolves a technical issue preventing users from removing a date filter on the booking Kanban view in the POS system. The fix involved correcting a missing function within the user interface, ensuring the date filter option is now correctly accessible. This improves the overall usability of the booking management feature.
Original PR description
Steps: - Install pos_appointment. - Open a POS session with bookings configured. - Open the Booking tab and click Remove date filter in the header. Issue: - A traceback occurs with `Invalid handler`. Cause: - The Remove date filter button’s onclick handler was not defined. Fix: - Define a valid onclick handler for the Remove date filter button. Task-5902656 Forward-Port-Of: odoo/enterprise#107633 Forward-Port-Of: odoo/enterprise#106684
This update resolves an issue where tables in Sale Quotations didn't display borders correctly when printed to PDF, specifically in Firefox. The fix ensures consistent border rendering by explicitly setting a border width in the PDF generation process, improving the visual quality of printed documents.
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 Forward-Port-Of: odoo/odoo#248613
This update prevents badges from overlapping when multiple badges are added and duplicated on a website page. The issue stemmed from a technical process that merged badges together, causing visual conflicts. This fix ensures badges display correctly and consistently across the Odoo website.
Original PR description
Steps to reproduce: - Go to Website > Edit a page - Add a badge using editor - Duplicate that badge more than once - Save -> badges intersect each other Cause: ====== When saving, `cleanForSave` will be triggered which then will call `mergeAdjacentInlines`, since badges are inline elements, they will be merged into one single badge causing that issue. Solution: ========= We add a predicate to `unsplittable_node_predicates` to prevent `mergeAdjacentInlines` from merging badges. opw-5790891 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247368
This update resolves a bug that was causing errors during the creation of payroll records. The fix avoids using a virtual ID (NewId) in search domains, which was triggering a framework error. This ensures smoother record creation and prevents disruptions to payroll processing.
Original PR description
The generic `TestEveryModel` fails because a virtual ID (NewId) is used in a search domain during record creation, causing a crash. This commit uses `.ids` with the `'in'` operator to idiomatically handle virtual records and prevent the framework error. runbot-115303 Forward-Port-Of: odoo/enterprise#107644
This update fixes a UI issue where repeatedly right-clicking pinned messages in the Odoo inbox could cause duplicate dropdown menus and instability. The change ensures only one dropdown is displayed at a time, preventing crashes and maintaining a smoother user experience.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- When multiple messages are pinned, repeatedly right-clicking different messages in the pinned…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- When multiple messages are pinned, repeatedly right-clicking different messages in the pinned messages panel can open multiple context dropdowns simultaneously. This may lead to UI inconsistencies and potential crashes. **Current behavior before PR:** ---------------------------------------------- - Multiple pinned messages can be right-clicked consecutively - Each right-click may open an additional dropdown menu - Duplicate dropdowns can remain visible at the same time - This can cause unstable or inconsistent UI behavior **Desired behavior after PR is merged:** ---------------------------------------------- - Only one dropdown menu is displayed at a time in the pinned messages panel - Repeated right-clicks properly reuse or replace the existing dropdown - Prevents duplicate dropdowns and avoids potential UI crashes Task-5935503 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where right-click actions were incorrectly displayed in the pinned messages panel. The fix ensures that actions are only shown when the panel is open and messages are pinned, aligning with the design intent. This improves the user experience for managing pinned conversations.
Original PR description
Before this commit, when some messages are pinned and the pinned messages panel is open, right-click on a message in pinned panel shows the message actions. The actions are not made visible in pinned messages panel, as intended by the props `hasActions=false` in this panel. However, the right-click showing of message actions lack condition based on this props, which is what this commit fixes. Task-5935503 Before / After (shows right-click of system) <img width="317" height="301" alt="Screenshot 2026-02-18 at 12 14 39" src="https://github.com/user-attachments/assets/e81d5118-09f1-4a67-907d-119e813cbac4" /> <img width="291" height="125" alt="Screenshot 2026-02-18 at 12 15 12" src="https://github.com/user-attachments/assets/417070a2-b926-4558-8479-aacf61a86948" />
This update corrects a bug where a purchase order wasn't automatically created when selling a product with multiple variants. The fix ensures that supplier information isn't incorrectly linked to the product template when a product has several variants, preventing the system from misinterpreting sales orders and failing to generate purchase orders.
Original PR description
Steps to reproduce the bug: - Create an attribute "Test": - Display type: Radio - Attribute values: X1 and X2 - Variant creation: Dynamically - Create a storable product "P1": - Attribute & variants:…
Steps to reproduce the bug: - Create an attribute "Test": - Display type: Radio - Attribute values: X1 and X2 - Variant creation: Dynamically - Create a storable product "P1": - Attribute & variants: add X1 and X2 - Add any vendor - Route: MTO - Create a sale order with one unit of P1-X1 - Confirm it -> the purchase order is created - Create a second sale order with one unit of P1-X2 - Confirm it -> the purchase order is not created Problem: When the Buy route is triggered, a check whether a vendor is linked to the product variant being used. However, since "product.supplierinfo" is linked to the template and also to the first variant (P1-X1), no supplier is found for the other variants, so no PO is created. https://github.com/odoo/odoo/blob/60993a956f127af5bf988b056f9df948a5437d8b/addons/purchase_stock/models/stock_rule.py#L52-L55 https://github.com/odoo/odoo/blob/4759c5f1649b2a9bd3378b6e29cd2b806e86ea37/addons/product/models/product_supplierinfo.py#L113-L114 Solution: When the number of variants changes for a product template, the compute of product_id in the model product.supplierinfo is triggered. In this case, product_id must be set to False when multiple variants are linked to the product template. opw-5871195 Forward-Port-Of: odoo/odoo#248656
This update fixes an issue where single-day time off requests were incorrectly displayed as multi-day events in the calendar, primarily affecting users in the Los Angeles timezone. The change ensures that single-day leaves appear as expected, resolving a visual inconsistency and improving calendar accuracy.
Original PR description
Issues: - Single-day time off requests appear as multi-day events in the Calendar app when using certain times - Full day time offs were not appearing as `allday` events in the calendar (bar over the…
Issues: - Single-day time off requests appear as multi-day events in the Calendar app when using certain times - Full day time offs were not appearing as `allday` events in the calendar (bar over the days instead of a block representing the hours) if the time off type had a request unit of half-days. Causes: The `_compute_date_from_to()` method converts user-specified dates to UTC. https://github.com/odoo/odoo/blob/028e7228cb830e47a9726bef4c82793ba4590cd5/addons/hr_holidays/models/hr_leave.py#L316-L317 The `_prepare_holidays_meeting_values()` method then uses these UTC datetime values (`holiday.date_from`, `holiday.date_to`) In Los Angeles timezone, and for a one day leave on september 17 2025 this leads to: - holiday.date_from: September 17, 2025 at 03:00 UTC - holiday.date_to: September 18, 2025 at 12:00 UTC causing a single-day leave to be displayed as a two-day event. - The cause of the second issue was relying on `leave_type_request_unit` which is a simple related to the leave's type unit which doesn't consider cases where the time off duration could be longer than the minimal request duration. After fix: - start_value: September 17, 2025 at 12:00 - stop_value: September 17, 2025 at 11:59 Steps to Reproduce: 1. Set the user timezone to "America/Los_Angeles" 2. Set the browser timezone to the same timezone 3. Create a one-day time off request (e.g., September 17, 2025) 4. Open the Calendar app: the event spans across two days opw-4744817
This update resolves a memory issue that could cause slowdowns and errors during Odoo upgrades. By optimizing image processing, particularly when related images have identical dimensions, the system uses less memory and processing time, leading to a more stable and efficient experience.
Original PR description
Description of the issue/feature this PR addresses: Because of the way `Pillow` manages memory, excessive image processing quickly leads to MemoryError, e.g. during upgrades. Current behavior before PR: When a readonly Image field with definied dimensions relates to another Image field of the same dimensions, there is no need to ever process the former one, since the processing will already have happened on the latter one. Still, the current code will process the image superfluously in these cases. Desired behavior after PR is merged: Extending the condition for skipping superfluous image processing to cover these cases will lead to reduced compute time and memory use. Forward-Port-Of: odoo/odoo#248990 Forward-Port-Of: odoo/odoo#248834
This update ensures that special products used in point-of-sale (like those with discounts or tips) cannot be deleted or archived. This prevents potential errors and data inconsistencies within the POS system, ensuring accurate sales tracking and reporting.
Original PR description
Before this commit, it was possible to delete or archive some products even if they were special for the pos (discount, tips, settle, etc.). This commit adds a mechanism to prevent this and reduce the risk of errors linked to missing products in the pos. Enterprise PR: https://github.com/odoo/enterprise/pull/95789 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230865 Forward-Port-Of: odoo/odoo#229074
This update ensures that essential products like 'settle due' and 'deposit' are automatically configured for all Point of Sale (POS) settings when the pos_settle_due module is installed. Previously, these products were only available in POS sessions without open sessions, causing potential issues. This change guarantees consistent product availability across all POS configurations.
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#96788 Forward-Port-Of: odoo/enterprise#95789
A recent issue with a POS80D printer was causing Odoo to crash. This update fixes a USB error related to printer descriptor validation, preventing the crash and ensuring reliable printer functionality. This resolves a reported problem impacting a specific printer model.
Original PR description
Seen on https://laloux-j.odoo.com/ 12/2 with a POS80D printer the printer triggers a core.USBError. This PR catches the corresponding exception 2026-02-12 04:21:12,496 1117 ERROR ? odoo.addons.iot_drivers.exception_logger: usb.core.USBError: [Errno None] Invalid descriptor task-5932720 Forward-Port-Of: odoo/odoo#248991
This update resolves an issue preventing the generation of P9 reports (tax documents) for Kenyan employees in version 19.0 and later. The fix removes a deprecated field related to employee identification, ensuring the report can be created correctly. Testing confirms the PDF generation now functions as expected.
Original PR description
Bug reproduction: When version >= 19.0, install Kenya payroll and accounting, create payslip for one of the Kenyan employee -> validate the payslip -> Reporting: P9 Report in payroll app -> Create…
Bug reproduction: When version >= 19.0, install Kenya payroll and accounting, create payslip for one of the Kenyan employee -> validate the payslip -> Reporting: P9 Report in payroll app -> Create new tax deduction card -> populate employees -> in the inside of the card: select employees and click to generate pdf -> it will not be generated
Bug cause:
1 - In cron parameters, context passed wrongly, it should take place in the clickable parameters
2 - After saas-18.4 in the migration, employee.l10n_ke_pin field is removed but this field still takes place in l10n_ke_tax_reduction_card_templates.xml and it gets error when the user clicks to generate PDF.
Bug solution:
1 - Fixing cron parameter passing
2 - Removing PIN of employee field from P9 report since it is not available anymore.
Testing: Unit test is written to check PDF's are generated for sure.
1 - Creating Kenya company, employees
2 - Creating payslip for employees and validate them
3 - Creating tax deduction card and generate declarations
4 - Checking PDF's are created
task - 5395267
Forward-Port-Of: odoo/enterprise#104816