Daily updates from Odoo
Friday, June 12, 2026
32 changes
4 changes
Enhancements to existing features
This update introduces a new 'PINT' layer within the account_edi_ubl_cii module, streamlining the processing of UBL invoices for BIS3 compliance. This enhancement aligns with European regulations and standards, ensuring accurate and efficient exchange of invoice data, particularly for international transactions.
Original PR description
Add the layer PINT between UBL and BIS3. task: 5890887 Forward-Port-Of: odoo/odoo#260058
This update ensures Odoo complies with Serbian accounting regulations by automatically fetching the official mid-market exchange rate from the National Bank of Serbia. This improves the accuracy of financial reporting for Serbian businesses using Odoo Enterprise. It’s a necessary step for legal compliance.
Original PR description
[IMP] currency_rate_live: Fetch exchange rates National Bank Serbia To ensure compliance with the Serbian Law on accounting, fetch official middle exchange rate from the National Bank of Serbia task-6159555 Forward-Port-Of: odoo/enterprise#116935
This update introduces a new rule for calculating superannuation contributions in Australia, aligning with Australian Taxation Office (ATO) requirements. Specifically, it now separates 'Qualifying Earnings' (QE) from regular earnings, tracked per pay run, starting July 1st, 2026. This ensures accurate and compliant superannuation reporting.
Original PR description
Added new salary rule for Qualifying earnings. Super Streams now per payrun. task-6012509 Forward-Port-Of: odoo/enterprise#117367
This update automatically refreshes KYC status information for French PDP users by receiving notifications from IAP. Previously, users had to manually update this status. This change streamlines the process and ensures accurate, real-time data.
Original PR description
Before this commit, user needed to manually refresh de kyc status, with this commit, the status will be changed when receiving the notification from IAP task-6271596 Forward-Port-Of: odoo/odoo#268528
6 changes
Enhancements to existing features
This update streamlines the timesheet connection process by removing a redundant 'Close' button and automatically redirecting users to the timeline after a successful connection. This provides a smoother and more intuitive user experience for connecting to the Odoo Enterprise system.
Original PR description
- Remove 'Close' button from connection successful modal - Change Redirect users to http://localhost:5600/#/timeline after successful connection. task-6272843
This update introduces a new 'PINT' layer between UBL and BIS3 invoices, aligning with European regulations for electronic invoicing. This enhancement improves the accuracy and compliance of our system when handling invoices, particularly for international transactions and PEPPOL networks. It ensures adherence to industry standards for data exchange.
Original PR description
Add the layer PINT between UBL and BIS3. task: 5890887 Forward-Port-Of: odoo/odoo#260058
This update ensures Odoo complies with Serbian accounting regulations by automatically fetching the official middle exchange rate from the National Bank of Serbia. This improves the accuracy of financial reporting for Serbian businesses using Odoo Enterprise. The change was previously implemented in another pull request and is now being forward-ported.
Original PR description
[IMP] currency_rate_live: Fetch exchange rates National Bank Serbia To ensure compliance with the Serbian Law on accounting, fetch official middle exchange rate from the National Bank of Serbia task-6159555 Forward-Port-Of: odoo/enterprise#116935
This update introduces a new rule for calculating superannuation contributions in Australia, aligning with Australian Taxation Office (ATO) requirements. Specifically, it now separates ‘Qualifying Earnings’ (QE) from regular earnings, impacting how superannuation is calculated from July 1st, 2026. This ensures compliance and accurate reporting of superannuation obligations.
Original PR description
Added new salary rule for Qualifying earnings. Super Streams now per payrun. task-6012509 Forward-Port-Of: odoo/enterprise#117367
This update automatically refreshes KYC status information for French PDP users by receiving notifications from IAP. Previously, users had to manually update this status. This change streamlines the process and ensures accurate, real-time data.
Original PR description
Before this commit, user needed to manually refresh de kyc status, with this commit, the status will be changed when receiving the notification from IAP task-6271596 Forward-Port-Of: odoo/odoo#268528
This update simplifies invoice sending by automatically defaulting to the 'By Peppol' method only for customers in designated countries (GR, IT, PL, PO, RO). Previously, this setting was enabled by default for all customers, causing confusion and unnecessary steps for users in these regions. This change streamlines the invoicing process and improves user experience.
Original PR description
Current behavior before PR: - If the customer has a valid Peppol endpoint, the 'By Peppol' invoice sending method is selected by default. - For countries like 'GR,' 'IT,' 'PL,' 'PO,' and 'RO,' peppol is not mandatory or not used for sending invoice. It brings noise and it bothers the users. Desired behavior after PR is merged: - The 'By Peppol' invoice sending method is set to true by default only for customers from PEPPOL_DEFAULT_COUNTRIES. Changes Implemented: - Moved the countries 'GR', 'IT, 'PL', 'PO', and 'RO' from PEPPOL_DEFAULT_COUNTRIES to PEPPOL_LIST. - Added condition to set 'By Peppol' invoice sending method to true when customer is from PEPPOL_DEFAULT_COUNTRIES. task-6072935 Forward-Port-Of: odoo/odoo#269417 Forward-Port-Of: odoo/odoo#262402
5 changes
Enhancements to existing features
This update introduces a new 'PINT' layer to enhance the processing of UBL (Universal Business Language) invoices, aligning with European standards. This layer facilitates compliance with regulations like CEN-EN16931 and PEPPOL, ensuring accurate and reliable exchange of invoice data. It improves the handling of invoice data formats for international trade.
Original PR description
Add the layer PINT between UBL and BIS3. task: 5890887 Forward-Port-Of: odoo/odoo#260058
This update introduces a new rule for calculating superannuation guarantee, aligning with Australian Tax Office (ATO) requirements. Specifically, it now separates 'Qualifying Earnings' (QE) from regular time earnings, streamlining superannuation contributions from July 1st, 2026. This ensures accurate and compliant payroll processing for Australian businesses.
Original PR description
Added new salary rule for Qualifying earnings. Super Streams now per payrun. task-6012509 Forward-Port-Of: odoo/enterprise#117367
This update automatically refreshes KYC (Know Your Customer) status information for French PDP (Payment Distribution Platform) users. Previously, users had to manually update this status. Now, the system receives a notification from IAP and updates the status automatically, streamlining the process.
Original PR description
Before this commit, user needed to manually refresh de kyc status, with this commit, the status will be changed when receiving the notification from IAP task-6271596 Forward-Port-Of: odoo/odoo#268528
This update enhances the payment confirmation screen in the Point of Sale system. Now, customers see a "Processing..." message during payment finalization and a visual checkmark with the amount paid upon successful completion. The screen also removes distracting warning notifications and utilizes a reusable animation, creating a smoother and more informative experience.
Original PR description
In this commit : - Show "Processing..." text while payment finalization is running - Show animated success checkmark and "Amount Paid" once processing completes - Remove warning notification when clicking during processing - Extract shared checkmark animation into reusable template - Update tour tests to verify the success state Task:6246377 Forward-Port-Of: odoo/odoo#267635
This update changes the 'To Review' status badge on employee records from grey to orange. This improves readability, particularly in dark mode, ensuring that HR staff can quickly identify and address outstanding tasks. The change was made to enhance user experience and operational efficiency.
Original PR description
The 'To Review' status on employees uses a grey badge ('secondary'), which has poor contrast and is nearly invisible in dark mode.
Update the 'review_state' field options to change '2_to_review' to 'warning' (orange). This ensures the badge is readable in both light and dark modes.
Task: 62899191 change
Enhancements to existing features
This update automatically refreshes KYC status information for French PDP users. Previously, users had to manually update this status; now, the system receives a notification from IAP and updates the status automatically. This streamlines the process and improves data accuracy.
Original PR description
Before this commit, user needed to manually refresh de kyc status, with this commit, the status will be changed when receiving the notification from IAP task-6271596 Forward-Port-Of: odoo/odoo#268528
13 changes
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 update enhances how product categories are managed within Odoo Enterprise, specifically related to tax calculations. The changes streamline the process of assigning and displaying tax information for product categories, improving accuracy and usability. This ensures consistent and compliant tax reporting for our business users.
Original PR description
task-6201594
This update ensures the AI website's new page templates align with recent design and upgrade changes. Specifically, the naming of a new template has been adjusted to match the latest design theme and upgrade processes, improving consistency and preventing potential conflicts.
Original PR description
This PR updates a new page template reference in the `ai_website` module. - requires: - https://github.com/odoo/odoo/pull/259990 - https://github.com/odoo/design-themes/pull/1256 - https://github.com/odoo/upgrade/pull/10046 - https://github.com/odoo/documentation/pull/17550 task-6054072
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
3 changes
Enhancements to existing features
This pull request introduces support for classifying and tracking prophylactic leave (maternity protection and health risk) within the payroll system for Belgian companies. It creates two new unpaid leave categories, aligning with local regulations and providing accurate payroll reporting. This improves compliance and reporting accuracy.
Original PR description
Divided existing prophylactic leave into two categories: maternity protection -> LEAVE14849 / dmfa_code: 51 health risk -> LEAVE225 (existing) / dmfa_code: 53 Added both as unpaid in the payroll structure PR community: task-6285834
This update enhances the clarity of bank statements when transactions are split into multiple lines. By adding transaction category data, Odoo now provides more descriptive labels for each line, closely matching the details from CodaBox. This makes it easier for users to understand and track their financial activity.
Original PR description
Currently, when global transaction is split into multiple lines, Odoo assigns the exact same communication text to every single split line. This makes it difficult for users to identify what each specific charge is for. To fix this, this commit introduces the transaction category data. Using this data to append specific transaction details to the end of the communication label. As a result, each split line now has a clear, descriptive label that closely matches the detailed breakdown provided by CodaBox. task-6059709
This update enhances the tracking of Lazada orders by automatically logging the reasons for skipped synchronization. Previously, users had to manually investigate order details to determine the cause. Now, clear logging provides better visibility and simplifies troubleshooting for synchronization issues.
Original PR description
Before this commit, the only way to know why an order was not synchronized was to inspect the order details and infer the reason from the code. This commit now logs those reasons.