Daily updates from Odoo
Friday, June 12, 2026
11 changes · master
Enhancements to existing features
This update enhances the softphone's contact search functionality during call transfers. It now prioritizes internal users (colleagues) when searching, making it faster and easier to transfer to someone within the company. This improves the user experience by reducing irrelevant search results and streamlining the transfer process.
Original PR description
The softphone displays searched contacts grouped by the first letter of their name. This commit creates an extra group "Internal" at the top regrouping all internal users of the database, only when a search is performed, only while searching for a contact to which a call has to be transferred. Indeed, when transferring, it is likely you want to transfer to one of your colleague, and after a 2-3 letters search, it should be enough for your colleague to be nearly alone in its "Internal" group, while searching for "James" could lead to 100 "James" in the "J" section regrouping all the contacts your company is dealing with. Follow-up of task-5404888 task-5871346
This update expands the meal voucher report to include data for all companies within an organization, including parent and child branches. Previously, the report was limited to a single company. This change improves reporting accuracy and provides a more complete view of employee expenses.
Original PR description
- Added selection of company (only top-level can be selected so the report won't be partial or context dependant) - Company selection is done automatically if there's only one valid candidate - The report cannot be validated without a top level company and a top-level company cannot be selected if the user has not access to it - Used branch_ids to gather all branches that need to be computed [a root branch can be defined as a branch that has no parent or a branch which root_id is equal to its id] - Used sudo to make sure all subbranches can be computed #task-6220264
This update allows users to efficiently edit multiple sales orders simultaneously through a new 'mass editing' feature on the sales order list views. This streamlines the process of updating large numbers of orders, saving significant time and improving operational efficiency. Previously, changes required editing each order individually.
Original PR description
Enable multi_edit on sales order list views to allow mass editing. See also:https://github.com/odoo/odoo/pull/266345 task-6227460
This pull request updates the design of the Frontdesk welcome screens, enhancing their responsiveness and overall appearance. The changes aim to provide a more modern and user-friendly experience for new Frontdesk users. This is an important improvement to the user interface.
Original PR description
Follow-up of: - https://github.com/odoo/enterprise/pull/119827 Redesign of the welcome screens. Improved responsiveness and design task-6022341
This update simplifies the process for companies using fiscal years different from the calendar year. Previously, users had to manually configure return type periods for each type, which was difficult to find and manage. Now, companies can easily set these periods at the start of their returns set, improving efficiency and accuracy.
Original PR description
When a company has its fiscal year different than the calendar year, return types periodicities rarely follow an universal rule. Those rules vary a lot depending on the country. Currently, the only way for users to configure them is to open the return types and configure the desired periodicity & start date for each return type individually -> The discoverability is bad. Users should be able to configure it easily at the start of the returns set task: 5913359
This update improves the Field Service product to align with the new field service feature, streamlining the setup process. Additionally, a simplification was made to the planning role configuration, removing a requirement for resource assignments and allowing for more flexible resource selection within the auto-planning feature.
Original PR description
…duct This commit updates the Field Service product to better fit the new field service feature. task-5264800
This update simplifies the appraisal process for all users by adding a helpful message and adjusting access controls. Light users now have a streamlined view with simplified fields, while managers retain full editing capabilities for goal assignments. This enhances usability and ensures the right level of access for each user type.
Original PR description
### Dashboard: Added a helper message "Request an Appraisal with your manager to assess your work" to the empty state view of appraisals. ### Goals Form: - Set employee_id to invisible for light users to simplify the view. - Restricted the visibility of the "Save as Template" button to exclude light users. - Updated the manager_id field to be editable for light users, allowing them to assign or update their supervisors on specific goals. task-6133003
This update improves AI chat by allowing it to display rich, clickable previews of website records like products and events. Previously, AI responses only showed record names. Now, users can quickly access detailed information directly from the chat, boosting efficiency and engagement. This enhancement leverages website data to provide a more comprehensive and user-friendly experience.
Original PR description
### Summary This PR adds **AI preview cards** for website records. When an AI agent returns supported website content, the chat can now show rich, clickable cards instead of only plain record names.…
### Summary This PR adds **AI preview cards** for website records. When an AI agent returns supported website content, the chat can now show rich, clickable cards instead of only plain record names. Supported records include products, product variants, events, blog posts, appointment types, courses, lessons, and jobs. ### What changed #### Record preview flow Add `_ai_tool_prepare_record_previews` to prepare AI search results for display before the final answer is posted. The tool keeps the result order, stores preview links in the message body, and exposes metadata that the frontend can use to either render visual cards or keep normal records' links visible when cards are not available. #### Website card rendering Introduce `ai.preview.card.mixin` for website models that support visual previews. Each website bridge module provides its own `_ai_get_preview_cards_render_context`, so preview cards reuse the same public website templates and styling as the corresponding website pages. #### Frontend integration Add the `AIPreviewCardSet` component, preview-card cache, styling, and carousel behavior. Cards are rendered in website AI chat and embedded livechat. For embedded livechat, cards are injected through a light-DOM slot so website styles can still apply across the livechat shadow DOM. #### Website-aware pricing Add `ai.product.pricing.mixin` to expose website-aware pricing metadata for products, appointments, and paid slide channels. --- task-id-5153868
This update clarifies payslip corrections by showing the exact amount adjusted on PDF reports, rather than displaying original figures. It presents the difference in key figures like salary and worked days, making it easier to understand the change. The system now automatically handles related refunds and payments for accurate accounting.
Original PR description
When a payslip is corrected, the resulting correction payslip represents an adjustment, not a full re-statement of earnings. Showing absolute values on the PDF was confusing: the employee would see…
When a payslip is corrected, the resulting correction payslip represents an adjustment, not a full re-statement of earnings. Showing absolute values on the PDF was confusing: the employee would see the same gross/net figures as the original, making it unclear what actually changed. This PR makes correction payslips display the difference from the original in the PDF report (worked days, salary lines, totals), so it is immediately clear what was adjusted and by how much. On a correction PDF report, the Qty, Amount, and Rate columns are handled: - If only one of these three fields has changed, the report shows the delta for that field and the original values for the others, so that the product of the columns matches the total delta. - If two or more fields has changed, only the Total delta is shown, as a calculated product of multiple deltas would be misleading. To support this, two computed fields are introduced on hr.payslip: is_correction_payslip (True when the slip has an origin and is not a refund) and correction_net_delta (the net wage difference vs. the origin). A few related improvements are bundled: - The reverted (refund) payslip is automatically validated and created as a refund of the origin, while the correction payslip is left in draft. - Reverted payslips are excluded from PDF generation and e-mail notification. - When paying a correction, the system groups the amount between the correction and its corresponding reverted payslip and marks both as paid once the payment is confirmed (unless the reverted payslip was already paid). - When a negative correction delta occurs (the employee was overpaid), the workflow uses the existing negative-net warning: the correction sets 'has_negative_net_to_report' and 'negative_net_to_report', so the usual warning and salary attachment flow will handle recovery on next payslips. - The "wrong version" and issues detection now accounts for worked-day-level versions and time-off changes on already-paid payslips. - The related payslips smart button has been extended to corrections and reverts to access their origin and its related slips.
This update modernizes the Romanian D300 VAT report generation within Odoo, aligning with the latest requirements from the ANAF (Romanian tax authority). It now creates an XML file, completing the necessary flow for submitting the report and ensuring compliance. This improves the accuracy and reliability of financial reporting for Romanian businesses using Odoo.
Original PR description
Rename VAT report fom Romania and generate XML file to complete flow for D300 return complying with the latest ANAF specifications. https://static.anaf.ro/static/10/Anaf/Declaratii_R/300.html task-5423935 Forward-Port-Of: odoo/enterprise#109849
This pull request completely redesigns the appointment booking page, focusing on a cleaner mobile experience and simplified flow. Key changes include a foldable calendar, harmonized user selection, streamlined data loading, and automated confirmation features, resulting in a more intuitive and efficient booking process.
Original PR description
The slot selection page in appointment has been changed a large number of times. Adding a lot of small features to a complex flow made the code a mix of old and new, mixing interaction features and…
The slot selection page in appointment has been changed a large number of times. Adding a lot of small features to a complex flow made the code a mix of old and new, mixing interaction features and DOM manipulations. Parts were starting to get outdated, and the flow extremely complex to maintain, as comporting a lot of variation depending on the appointment type setup. Main changes --- In order to modernize the UI of the page, as well as to provide a cleaner mobile experience, we redesign it completely, rebuilding the js code and templates around the existing fundations. - The calendar is now foldable in a dropdown - The user / resource selection is harmonized: cards are used for both values of select_first (entity / date) - Selection is also foldable in a dropdown when starting with the entity. - Loaders and helpers are harmonized and streamlined into fewer cases / elements on the page. - When capacity is managed, 2 is selected as default if possible. We fallback to 1 otherwise. - The two-column design is abandoned. Also, some auto-confirmation is implemented: - When clicking on an entity, when it is last thing to select, submit the slot selection. - When selecting the time for the slot, submit the selection if no additional step is required. Technical Improvements --- - The previous way to refresh the availability was to rerender the full calendar template in the controller, return it and replace its outerHtml in the page. This is not dynamic nor interactive. We changed this old behavior to a more classical approach: the controller only returns a JSON with relevant data, and we render the calendar directly from the JS. We therefore moved the template into a JS one. - Controllers are cleaned from redundant data, and reworked to match previous change. - JS is streamlined as much as possible, reducing unjustified differences between similar elements. Interaction features are exploited as much as possible Other changes --- - Currently, we only compute one month of availability at a time for performance reasons. Keep this behavior, but replace the context key by real arguments in the controller. Also enable this behavior for flexible appointments - Remove 'discard' button when adding guests - Some ui polishing of various views in the booking flow - Added a small summary, only visible on mobile, at the top of the registration page. This allows a quick look in the booking details on mobile before starting filling details. Task-5358867