Daily updates from Odoo
Wednesday, June 24, 2026
15 changes · master
Resolved issues and error corrections
This update fixes a confusing issue in the budget report where budget lines were labeled with repetitive names. The change now includes related analytic accounts in the display name, making budget lines much easier to distinguish and understand. This improves report readability and data analysis.
Original PR description
Budget report grouping by budget line displayed the budget name for every line, which made different lines indistinguishable and produced labels like "Budget 2026 x", "Budget 2026 x (2)", etc. Compute a more specific display name for budget lines by appending the analytic accounts concerned by the line to the budget name. Also expose Budget Line as a first-class group-by in the Budget Report search view and apply it by default when opening the report. task-6293065 Forward-Port-Of: odoo/enterprise#121204
This update automatically updates the map routes when a user changes their location. Previously, users had to manually refresh the map to see the correct routes. This improvement ensures a smoother and more accurate user experience when navigating maps within the Odoo Enterprise application.
Original PR description
In this commit, we ensure that the map is updated with the newly computed routes if the user position changes. Prior to this commit, the user had to manually trigger an update to correctly view the updated routes. Forward-Port-Of: odoo/enterprise#120966
This update resolves an issue where appointment filters were incorrectly persisting across different views (Kanban to Gantt). Now, filters are automatically cleared when switching views, ensuring accurate appointment display and preventing bookings from being hidden. This improves the user experience for managing appointments.
Original PR description
In this commit: - When switching from Kanban to Gantt view, the POS-specific filters `date_filter` and `hour_filter` (added by `PosAppointmentSearchFilter`) were persisting on the shared SearchModel, incorrectly hiding bookings. - Now these filters are removed when activating the Gantt view. - Clear these filters when changing views and add a tour test to cover the Kanban → Gantt navigation flow. Also extract common appointment view tour helpers for reuse. Task:6276594 Forward-Port-Of: odoo/enterprise#120368
This update resolves an issue where tours were behaving unpredictably. The team refined the triggers used in the tours to ensure they consistently activate when intended, leading to a smoother and more reliable user experience. This change focuses on internal improvements to the Odoo Enterprise application.
Original PR description
Fix undeterministic tours by making some triggers more precise in a few steps.
This update fixes an issue where scanning an unknown barcode in the Point of Sale (POS) system didn't automatically open the product creation form. The fix removes a redundant check for API keys, ensuring the form opens correctly regardless of whether a barcode lookup key is configured. Users can now consistently create products by scanning barcodes.
Original PR description
When scanning an unknown barcode in POS, the product creation form was never opened because `barcode_lookup()` was called with no barcode as an implicit API key check. Commit 0c8019a4aa7 ([FIX] product_barcodelookup: avoid crash on invalid image URLs) standardized `barcode_lookup_request()` to always
return a `requests.Response` object, removing the `{'authenticated': True}` dict it previously returned for HTTP 404 responses. As a result the JS check `response?.authenticated` was always falsy and the form never opened.
Fix: remove the API key check entirely. `allowProductCreation()` already gates on the user having product create rights, which is the only condition that matters. If a Barcode Lookup API key is configured the `_onchange_barcode` on the form will auto-fill product data; if not, the user can fill it in manually. Either way the form is always usable.
opw-6295221
Forward-Port-Of: odoo/enterprise#120256This update streamlines the automatic onboarding tours within several Odoo modules (Helpdesk, Planning, Sale, Web Studio, and Knowledge) by removing unnecessary formatting wrappers. This fix resolves validation errors and ensures a smoother, more reliable onboarding experience for new users. The change also adds specific validation rules for onboarding tours.
Original PR description
…ntent
This update fixes an issue where report titles within Odoo Knowledge embeds were not consistently translated. The solution involves retrieving the report's name directly, streamlining the process and eliminating a previous fallback mechanism. This ensures accurate and localized report titles are displayed in Knowledge.
Original PR description
Problem: The title of the report is not translated properly in embeds in Knowledge. Considering how `data-embedded-props` are fed, I don't think we can directly feed the translated value that easily ? Possible solution: we have the report_id in options, we can just read the name ? Pro: we wouldn't even need to provide the report name in the first place (so that fallback thing is most likely useless). Cons: There's a bit of back-and-forth with the additional read. Should most likely be fixed in 19.0+ and not in master if we want to fix it. task-none (follow-up of discussion in https://github.com/odoo/enterprise/pull/120077#discussion_r3389814591)
Features or functions removed from Odoo
This update removes an outdated coding technique, `useLayoutEffect`, from the Web Studio module. This change is part of a larger effort to modernize the system and prepare for the upcoming OWL3 migration, ensuring a smoother and more efficient user experience.
Original PR description
Remove useLayoutEffect usage in web_studio utils.js as part of OWL3 migration.
This update removes a specific code snippet (useLayoutEffect) from the POS platform. This change was made to simplify testing and prepare for a future update using a more efficient API. The removal is expected to improve the overall performance and stability of the POS system.
Original PR description
Commented out useLayoutEffect calls to test coverage before replacement with OWL3 API.
This update removes a temporary code change in the Knowledge module's chatter integration. This was a preparatory step for a future update using the standard OWL3 API, streamlining the module's functionality. The removal has no impact on the core Knowledge features.
Original PR description
Remove useLayoutEffect from chatter_patch.js in knowledge module. This is a throwaway commit that will be replaced with the OWL3 native API implementation.
This update simplifies the Frontdesk module by removing the 'cancel' visitor state, which was no longer used. This streamlines the visitor tracking process and reduces unnecessary complexity within the system. This change improves the overall user experience and maintenance of the Frontdesk feature.
Original PR description
This commit removes the cancel state from the frontdesk visitor states, as it is no longer relevant. Task-6312796
Code cleanup and technical improvements
This update removes the useLayoutEffect function from several Odoo modules to facilitate testing and ensure compatibility with the upcoming OWL3 replacement. This change is part of a controlled experiment to improve test coverage and prepare for a key system upgrade. It's a technical refactoring focused on testing.
Original PR description
Commenting out useLayoutEffect to check test coverage before applying OWL3 replacement.
This update removes an outdated technique used in the documents viewer to improve its performance and stability. The change is part of a larger effort to migrate to the OWL3 system, ensuring a smoother user experience for viewing documents. It addresses a technical issue related to document rendering.
Original PR description
Remove useLayoutEffect usage in documents_file_viewer.js as part of OWL3 migration. Effect bodies are commented out to detect test failures before applying the proper OWL3 replacement.
This update replaces an outdated technique with a modern one, ensuring the knowledge chat feature continues to function reliably. The change addresses a deprecation issue within Odoo's OWL3 framework, streamlining the code and maintaining core functionality without requiring additional configuration.
Original PR description
Replaced `useLayoutEffect` with `useEffect` (from `@odoo/owl`) because `useLayoutEffect` is deprecated in OWL3. `useEffect` in OWL3 has no dependency array — it auto-subscribes to any reactive values…
Replaced `useLayoutEffect` with `useEffect` (from `@odoo/owl`) because `useLayoutEffect` is deprecated in OWL3. `useEffect` in OWL3 has no dependency array — it auto-subscribes to any reactive values accessed inside the callback. The effect reads `this.props.threadId` and `this.state.thread` access-right fields directly, so OWL3 tracks those dependencies automatically. This restores the original logic: detecting thread changes, resolving the `chatterThreadReady` promise, and updating toolbar visibility without requiring an explicit dep list. The `useLayoutEffect` refactored in this PR has test coverage — below are some tests that failed when the effect was commented out, and are now passing: - TestHelpdeskKnowledgeCrossModuleFeatures.test_helpdesk_pick_file_as_attachment_from_knowledge - TestHelpdeskKnowledgeCrossModuleFeatures.test_helpdesk_pick_file_as_message_attachment_from_knowledge - TestHelpdeskKnowledgeCrossModuleFeatures.test_helpdesk_pick_template_as_message_from_knowledge see commented-out runbot build: https://runbot.odoo.com/runbot/batch/2596754/build/114855772
This update removes a potentially performance-impacting technique (useLayoutEffect) from the VoIP search bar. This change improves the stability and responsiveness of the search functionality, aligning with our ongoing efforts to optimize Odoo's performance. The change also prepares for the integration of the OWL3 API.
Original PR description
Commented out useLayoutEffect usage to identify test coverage before applying OWL3 replacement.