Daily updates from Odoo
Friday, April 10, 2026
10 changes · master
Enhancements to existing features
This update replaces the traditional helpdesk knowledge section with an AI live chat widget when both the live chat and helpdesk modules are installed. The ‘Odoo Compliance Assistant’ AI agent is automatically assigned when demo data is available, ensuring a seamless customer experience. This change improves customer support by providing instant AI-powered assistance.
Original PR description
Currently, when the website_helpdesk_knowledge module is installed, customers can use the knowledge form and help section for assistance. Now, when both ai_website_livechat and helpdesk modules are…
Currently, when the website_helpdesk_knowledge module is installed, customers can use the knowledge form and help section for assistance. Now, when both ai_website_livechat and helpdesk modules are installed,
the knowledge section is replaced with the AI live chat widget.
When demo data is available, the **“Odoo Compliance Assistant”** AI agent is set by default.
Technical Details:
----------
1)
When we update AI agent, placeholder, or live chat channel values from the snippet, we need to allow those attributes by adding them to the **_get_allowed_root_attrs** method.
2)
file: demo.xml
```xml
<odoo>
<data noupdate="1">
<template id="ai_helpdesk_knowledge_demo" inherit_id="ai_website_helpdesk.ai_helpdesk_knowledge">
<xpath expr="//section[hasclass('s_ai_livechat')]" position="attributes">
<attribute name="t-att-data-agent-id">request.env.ref('ai.ai_agent_1').id</attribute>
</xpath>
</template>
</data>
</odoo>
```
However, when we set the AI agent from demo data, the snippet does not update correctly.This happens because the **replace_arch_section()** method does not update `t-att-data-agent-id` in inherited views. As a result, the snippet updates the data-agent-id in the main view, but when the page loads, the inherited view’s agent value takes priority. so, I have to use this demo data **(Odoo Compliance Assistant)** AI agent in the controller.
task-5166174This update enhances the way time off is displayed on pay runs, providing a clearer view of pending requests. It ensures the Gantt chart accurately reflects the pay run period and includes a notification to quickly approve outstanding time off. This improves payroll accuracy and reporting.
Original PR description
- Added a styled "X to approve" notification pill to the Pay Run Kanban card that dynamically hides when 0, and redirects to a pre-filtered list of pending time offs. - Updated the time off window actions to pass `initialDate` and a mapped `default_scale` in the context, forcing the Gantt chart to perfectly match the pay run's specific period. - [WIP] Refactored `_gantt_progress_bar` in `hr.leave` to calculate actual daily working hours by subtracting time off intervals from the employee's `resource.calendar` schedule. - Injected a hidden `span` containing the computed daily working hours into the Gantt chart cells (`web_gantt.GanttRenderer.RowContent`), laying the structural groundwork for CSS hover effects. task-5965514
This update streamlines the calculation of prices for subscription-based sales (sale_subscription) by optimizing how pricelist rules are applied. It allows for faster filtering of rules based on minimal quantities, improving efficiency and reducing processing time. This change enhances the overall performance of subscription sales pricing.
Original PR description
*= sale_subscription, website_sale_subscription * This change introduces batching of price computation by product periodicity to enable early filtering of pricelist rules based on minimal quantities directly in SQL through `_get_applicable_rules` and `_get_applicable_rules_domain`. * It also aligns method overrides with the main method signatures to ensure consistency and maintainability. task-4875803 Co-authored-by: Victor Feyens (vfe) <vfe@odoo.com> See Also: - https://github.com/odoo/odoo/pull/234935
This update enhances the Odoo Enterprise spreadsheet edition by allowing users to directly link cells to data sources. This provides a more seamless way to integrate spreadsheet data with other Odoo modules, streamlining reporting and analysis. It's an improvement to the spreadsheet functionality.
Original PR description
Task-5932139
This update introduces geo-fencing to control where employees can check in and out. It prevents check-ins outside designated workplace areas, improving accuracy and potentially reducing errors in attendance tracking. The system now flags and warns employees if check-ins occur outside of their defined work locations.
Original PR description
-Currently, employees can check in and check out from any location, which may not always be desirable. This commit introduces a geo-fencing mechanism to restrict attendances to a defined workplace area. -Established geo_fence functionality on configuration. -Refined '_attendance_action_change' logic to handle check-in from various work location. Also implemented the warnings to be displayed if the check-in is not as per the defined work location. -Added the method _calculate_employee_distance_from_workplace to find the distance between workplace and employee's location. -Added the filter to fetch offsite and conflicting attendance. task-4963427
This update enhances the user experience of the Salary Attachment form by simplifying labels and button text, moving the priority indicator, and adjusting the layout. These changes aim to improve usability and clarity for HR staff managing salary adjustments.
Original PR description
This commit introduces some UI/UX changes to the form view of Salary Attachments. The changes are: - The text under Salary Adjustment in the top is not "Type + Durantion Type" anymore but "Type + Employee Display Name". - The "Mark as completed" button now instead reads "Done". - The "closed" state text is now "Done" instead of "Closed". - The priority widget (3 stars) has been moved to the top right of the form. - The Type selection menu has been shrinked to half width. - The date_end or date_estimated_end are no longer editable. Task: 5959289
This update aligns the Odoo spreadsheet functionality with a recent upgrade to the underlying library. Specifically, several actions previously disabled on locked spreadsheets have been re-enabled, and new datasource links have been added to cells. This improves usability and expands the capabilities of the spreadsheet feature.
This update streamlines the booking process in our Point of Sale system by improving calendar views and adding new functionality for managing table reservations. Specifically, users can now easily add or update bookings through various interfaces, confirm table assignments, and filter bookings based on key criteria, leading to more efficient operations.
Original PR description
In this commit: --------- - We are improving the calendar event views on the booking page in PoS. - Added a flow to add or update resources on clicking the kanban/gantt popover `check in` button, on kanban state change to `check in`, and on clicking the list view `Set Table` button. - Added a flow to update table booking on long press on a table in the floor plan. - Introduced a new search view with filters based on booking states, booking start time, etc. - Added a confirmation pop-up when opening a table with an appointment, allowing the user to confirm and link the order to the calendar event or automatically change the appointment resource. - Updated the calendar event form view. - Removed the calendar view from the booking page in PoS. Related PRs: - Community: https://github.com/odoo/odoo/pull/255217 - Upgrade: https://github.com/odoo/upgrade/pull/9746 Task-6018428
This update adapts various Odoo modules to the recent catalog refactor, improving its design and extensibility. Specifically, it prepares for future changes in unit of measure handling and simplifies data transmission to the frontend, leading to more efficient product catalog updates. This change enhances the overall product catalog experience.
Original PR description
In https://github.com/odoo/odoo/pull/209316, The catalog was refactored to have a better and an easier to extend design. As well as adding a feature that shows the price per product unit, if the line's unit or seller's unit is different In this commit, uom was added to the parameters passed to `update_order_line_info` in order to prepare it for the upcoming PR that will allow the change of the UoM directly from the catalog. New method was introduced in the catalog refactor, and the modules needed to be adapted to use the new method, which would make sending new props to the frontend much easier without having to loop over all the products everytime.
This update enhances financial reporting by providing a 'coverage ratio' for each analytic plan. This allows users to easily identify if journal items are fully distributed across their planned analytics, which is crucial for accurate audit trails and financial analysis. It addresses discrepancies in P&L and BS reports caused by partial analytic distributions.
Original PR description
The objective is to bridge the gap between journal items and analytic items in the reporting. As Odoo allows for partial analytic distribution, this creates discrepancies in the P&L and BS when filtered by an analytic plan. This features aims to provide users with a clear 'coverage ratio' per plan to identify incomplete distributions during audits. task-5887978 Forward-Port-Of: odoo/enterprise#106750