Odoo Release Updates
Every commit to Odoo Community and Enterprise, parsed and categorized. Never miss a bug fix, improvement, or new feature.
Activity
2026-03-23
This fix addresses a test flakiness issue in the project sharing module where dynamically assigned ports (port 0) caused mismatches between the port written to web.base.url during database installation and the actual port used during post_install test execution. The solution explicitly sets web.base.url to a controlled value before running the test and updates the assertion to check for that exact value, ensuring the generated portal signup links contain the correct base URL regardless of kernel port assignment behavior.
[FIX] project: reset web.base.url in order to control link
This fix prevents Manufacturing Orders (MOs) from sharing purchase order references when duplicated. Previously, when an MO was copied, its reference_ids field was also duplicated, causing the new MO to become incorrectly linked to the original MO's purchase order. This resulted in quantities being consolidated on a single PO instead of creating separate purchase orders for each MO. The fix adds copy=False to the reference_ids field definition to ensure each duplicated MO gets its own independent reference records.
[FIX] mrp: prevent duplicated MO from reusing same reference
This commit refactors Odoo's field tracking infrastructure to simplify the API and improve code organization. It introduces a new mail.track.mixin that separates tracking value generation from message posting, adds new _track_add and _track_record methods to replace manual tracking value manipulation, and renames _track_subtype to _track_log_get_default_subtype for clarity. The changes eliminate low-level data structure handling across multiple modules (account, CRM, HR, fleet, Peppol) while adding comprehensive test coverage for various tracking scenarios including parent model logging and manual tracking calls.
[IMP] mail: cleanup and test tracking usage
This change removes the "Uploading..." text that appeared during file attachment uploads in the mail chatter by setting the showUploadingText property to false on the FileUploader component. The removal is justified because an upload progress indicator already exists within the attachment box itself, making the redundant text unnecessary and improving the user interface clarity.
[IMP] mail: remove "Uploading..." text
This fix corrects a CSS selector typo in the website_sale module that prevented the product grid from displaying a left border on smaller viewports when the sidebar is hidden. The selector was incorrectly structured with redundant class chaining, causing the border styling rule to never apply on mobile and tablet devices where the sidebar is collapsed.
[FIX] website_sale: add missing border on grid layout
[FIX] pos_online_payment: prevent error when closing the payment popup
This commit applies a systematic OWL3 migration across the entire Odoo codebase by prefixing all template variable references with "this." to comply with upcoming OWL3 requirements. In OWL3, component instance properties must be explicitly accessed via "this." in templates, changing from implicit scope resolution to explicit context binding. This large-scale automated refactoring affects template files across multiple modules including account, board, CRM, HR, and many others, converting patterns like "showUploadButton" to "this.showUploadButton" and "state.name" to "this.state.name" throughout XML templates.
[IMP] *: run rendering context migration script entire codebase
This fix prevents the "Export XML" option from appearing in the print menu for bills that cannot be properly exported as UBL/CII XML, specifically non-imported bills where the XML computation would incorrectly invert customer and supplier party information. The solution adds a validation check via _need_ubl_cii_xml() to only allow XML export for self-bills or previously imported documents, eliminating user confusion from malformed XML output.
[FIX] account_edi_ubl_cii: Don't show "Export XML" for none exportable
This commit consolidates avatar card handling across HR modules by centralizing the single source of truth for employee information in hr.employee records rather than duplicating data across multiple models. The hr.employee.public model is now simplified to act as a proxy to hr.employee using access control, eliminating duplicate field definitions and complex JavaScript patches. The store service's employee chat lookup is refactored to use the standard Store API instead of maintaining a separate employee cache, improving consistency and reducing code complexity.
[REF] mail, *: clean up avatar card and related models
Fixed a traceback that occurred when users selected channel mentions from the @ suggestion list in the mail composer. The issue arose from incomplete code migration where the `channel` attribute was renamed to `thread` in a previous commit, but the suggestion template still referenced the old attribute name. The fix restores the `channel` property in the suggestion object while keeping the renamed `thread` property, and corrects the template reference to use the appropriate channel suggestion template. A comprehensive test tour was added to verify the channel mention selection flow works correctly.
[FIX] mail: fix traceback when selecting items from @ mention in composer
This commit fixes a failing livechat digest test in the runbot environment by removing any existing livechat channels before test execution. The test was failing because demo data created additional livechat channels that interfered with the digest calculations, so the fix ensures a clean slate by deleting all livechat channels prior to running the test setup.
[FIX] im_livechat: fix runbot livechat digest test
This fix prevents unwanted formatting and styles from being pasted into the HTML editor composer in Odoo's Discuss module. The change intercepts paste events, sanitizes the HTML content, and strips out disallowed tags and styles, allowing only a controlled set of formatting tags (bold, italic, lists, links, etc.) while preserving essential mail-specific class names for mentions and redirects. This ensures consistent message formatting and prevents users from inadvertently introducing problematic HTML or styling into their composed messages.
[FIX] mail,*: no formatting paste in HTML composer
This commit enhances the Live Chat user experience through four targeted improvements: rating filters are now grouped under a collapsible "Rating" section for cleaner interface organization, the sessions pivot view axis has been flipped for better data visualization, empty state messaging has been rewritten to be more instructive and action-oriented, and the Chatbot "Channels" button now intelligently opens the form view directly when only one channel exists instead of always showing a list view. Additionally, technical menu items have been reorganized under the main Technical menu structure.
[IMP] im_livechat: improve Live Chat views
This commit fixes multiple printing issues in the Discuss app by hiding non-essential UI elements during print and ensuring proper layout overflow visibility. The sidebar, message composer, thread actions, and visitor offline banners are now hidden when printing, while a new print stylesheet ensures the discuss container displays correctly, similar to existing knowledge module print behavior.
[IMP] im_livechat, mail: enhance print layout in discuss
This commit updates the o-spreadsheet library to version 19.3.0-alpha.4, incorporating 24 upstream commits that address multiple functional areas including formula handling, clipboard operations, chart rendering, pivot tables, filters, and UI improvements. Key fixes include correcting formula reconstruction, enabling paste-as-value functionality, updating geospatial chart data with region selectors, adding column analysis capabilities, improving dark mode compatibility, and enhancing pivot measure calculations. The update also introduces stricter code quality standards through ESLint promise enforcement and improved context menu event handling.
[IMP] spreadsheet: update o_spreadsheet to latest version
2026-03-21
This commit fixes a HOOT (Headless Odoo Object Testing) framework bug where invoice lines were not rendering in tests when localization modules like l10n_in or l10n_ar were installed. The fix changes how test invoice lines are created—from a direct account.move.line creation to writing through the invoice_line_ids one-to-many relationship—preventing the mock server's relationship mapping from being shadowed by competing withholding line relationships in localization modules.
[FIX] account: fix HOOT test with l10n_in/l10n_ar installed
2026-03-20
This fix corrects the messaging menu counter calculation when the Discuss app is not actively in use by ensuring archived channels and muted channels are excluded from the unread message estimation. The issue occurred because the server-side counter estimation included channel members from archived and muted channels that were not actually displayed in the UI, causing the counter to be inflated. The fix adds filters to check both channel.active status and mute_until_dt field in two locations where the counter is calculated.
[FIX] mail: correct messaging menu counter when not using Discuss
This commit integrates user activity management directly into the attendee calendar view by displaying pending activities as special all-day events that users can interact with via a popover interface. Users can toggle activity visibility through a calendar sidebar filter, reschedule activities to specific dates, and access related records, with the feature designed to be optional and controlled through user settings. The change also refactors activity field storage to include res_name for linking and removes obsolete calendar event ordering logic that was specific to work locations.
[IMP] mail,calendar: add activities in attendee calendar
This fix removes three leftover console.log debugging statements from the spreadsheet module's chart plugin test file that were inadvertently included in a previous pull request. These debugging lines served no functional purpose in the final test code and have been cleaned up to maintain code quality and prevent unnecessary console output during test execution.
[FIX] spreadsheet: remove left-over console.log from tests
The MRP module's production order tracking was refactored to use the new unified '_track_add' tool instead of custom low-level tracking code for the date_finished field changes on completed productions. This simplifies maintenance by leveraging standardized tracking infrastructure while preserving the same business functionality of recording when production completion dates are modified.
[REF] mrp: replace manual track
The spreadsheet module was updated to the latest o-spreadsheet library version (19.3.0-alpha.4), incorporating 24 commits with significant enhancements to formula handling, clipboard operations, chart functionality, and UI/UX improvements. Key business-impacting changes include new column analysis capabilities, improved pivot table handling, geo chart region selection, customizable chart axis scales, and fixes for critical issues like formula reconstruction and clipboard paste operations. The update also refines dark mode support, context menu behavior, and adds data validation features to enhance overall spreadsheet usability and reliability.
[IMP] spreadsheet: update o_spreadsheet to latest version
This commit modifies the Owl template engine to add a `this` key to the context object passed via t-call-context directives, enabling templates to access context values using `this.` notation while maintaining backward compatibility with the current syntax. This change is a preparatory step for migrating to Owl 3, which will adopt this new access pattern as standard, allowing developers to update their templates incrementally before the major version upgrade.
[REF] web: patch owl to prepare migration to owl 3
This fix corrects the Spanish Facturae EDI XML generation to aggregate multiple invoice line items into a single tax node per tax type rather than creating separate tax entries for each line, and enables proper rounding during this aggregation. The changes consolidate tax bases and amounts across all lines sharing the same tax, reducing XML redundancy and improving accuracy when applying global rounding methods, as validated by updated test cases.
[FIX] l10n_es_edi_facturae: XML structure and rounding fixes
This commit adds a test case to verify that the sequence mixin properly clears its internal cache when a database savepoint is rolled back. The test ensures that if a transaction is partially reverted, cached sequence data doesn't persist in an inconsistent state, preventing subtle bugs from being introduced by future code changes.
[FIX] databases: sequence.mixin add test - savepoint rollback
This fix corrects a bug in im_livechat where the livechat channel name was incorrectly duplicated when an agent initiated a self-chat (talking to themselves). The issue occurred because the visitor_user variable was being set even when the visitor and agent were the same person, causing the agent's name to appear twice in the channel name. The fix prevents visitor_user from being assigned when the current user equals the agent, ensuring the channel displays with a single name instead of duplicated entries.
[FIX] im_livechat: duplicated name in self livechat
This commit enhances Chrome browser debugging in Odoo's test framework by capturing Chrome's native debug logs instead of stderr, which was producing confusing and unhelpful dbus errors. The logs are now saved whenever Chrome completes (successfully or unsuccessfully) and controlled via a new ODOO_BROWSER_LOG_VERBOSITY environment variable, providing developers with detailed information about tab crashes, network requests, and other Chrome-level events to diagnose test failures more effectively.
[IMP] core: save chrome debug logs
This commit adds test coverage for the manual tracking of date_finished field changes on manufacturing orders in Odoo MRP. The test verifies that when the date_finished is modified without changing the production order state, the system correctly records and tracks this change with proper tracking values logged to the mail message history. This ensures that future modifications to the tracking model will not break the date_finished change tracking functionality.
[IMP] mrp: test date_finished manual tracking
This refactoring removes the 'archive' presence state from the HR module since it provided little practical value, and instead hides the presence status icon entirely when an employee is archived. The change simplifies presence state management by eliminating redundant state tracking while still preventing display of presence information for inactive employees, addressing usability issues where archived employee status was being confused with actual presence states.
[REF] hr: remove archive option from presence, hide icon when employee archived