Daily updates from Odoo
Monday, June 1, 2026
27 changes
1 change
Enhancements to existing features
This update streamlines KPI data retrieval across our servers by using a simplified SQL approach. Previously, each database required a separate registry load, which was slow. Now, KPIs are fetched using a new API endpoint with database credentials, improving performance and efficiency.
Original PR description
In order to improve speed of KPI retrieval on servers hosting many databases, we need to avoid loading a registry for each of them. With this commit, we introduce a route /kpi/summary that accepts a list of credentials in the form of pairs of database name and API key. The API key needs to be local to the database. Modules providing KPIs need to declare a method named `get_kpi_summary` in a file named `models/kpi_provider.py`, and it will return the exact same structure as the previous API `kpi.provider:get_kpi_summary`. The existing ORM-called methods now call the SQL version in order to avoid divergences in the future. Task-id: [5167731](https://www.odoo.com/odoo/project.task/5167731) Forward-Port-Of: odoo/odoo#267347 Forward-Port-Of: odoo/odoo#258050
4 changes
Enhancements to existing features
This update ensures that product tags sent to UrbanPiper are dynamically determined based on tax configurations and aggregator needs. Previously, tags were hardcoded, but now the system intelligently selects relevant tags, improving data accuracy and integration with the UrbanPiper platform.
Original PR description
Before this commit: ------------------------------------------ - The UrbanPiper payload used a hardcoded tag when the tax percentage was not 5%. - There was no mechanism to add additional tags based on providers, even though UrbanPiper supports multiple tags. After this commit: ------------------------------------------ - Tags are now dynamically handled using the Tag field in the product. - Users can define tags according to their tax configurations and aggregator requirements. - UrbanPiper only accepts relevant tags (default or provider-specific). task - 5154061 Forward-Port-Of: odoo/enterprise#112550 Forward-Port-Of: odoo/enterprise#96742
This update clarifies how half-day work periods are displayed on payslips. Previously, half-days were shown as separate entries, which was confusing. Now, the system consolidates these entries for a clearer and more straightforward view of employee work time and pay.
Original PR description
In order to clearly distinguish work days that extended full day or half day, the worked days under the payslips will not display both entries as separate types with the half days flagged Task: 5975762 Forward-Port-Of: odoo/enterprise#112328
This update improves the handling of Philippine taxes within Odoo. Specifically, it reorganizes VAT and reverse charge taxes into groups with positive and negative components, streamlining calculations. It also disables automatic tax closing entries for withholding taxes, ensuring accurate reporting.
Original PR description
Restructure FWVAT DS and FWVAT EM from single percentage taxes into group taxes with two children each: a positive 12% input VAT child and a negative 12% reverse charge child (FWVAT RC). Also, we disable tax closing entry for WHT taxes. task-6146238 Forward-Port-Of: odoo/odoo#266625
This update enhances the design of Odoo's documentation links by adding styling options through 'class' props. Previously, these links were fixed in appearance, limiting their use in different contexts. Now, developers can easily customize the links to fit various design needs, increasing their versatility.
Original PR description
Before this commit, the style of that component is fixed, thus it is not possible to customize it to render that component as a secondary button neither display it as dropdown item. This commit adds the `class` props in that component to be able easily change the style to use that component anywhere. task-6095833 Forward-Port-Of: odoo/odoo#267114
5 changes
Enhancements to existing features
This update streamlines KPI data retrieval across Odoo servers by using a simplified SQL approach. Previously, each database required a separate registry load, which was slow. Now, KPIs are fetched more efficiently using a new API endpoint and a standardized SQL query, resulting in faster reporting.
Original PR description
In order to improve speed of KPI retrieval on servers hosting many databases, we need to avoid loading a registry for each of them. With this commit, we introduce a route /kpi/summary that accepts a list of credentials in the form of pairs of database name and API key. The API key needs to be local to the database. Modules providing KPIs need to declare a method named `get_kpi_summary` in a file named `models/kpi_provider.py`, and it will return the exact same structure as the previous API `kpi.provider:get_kpi_summary`. The existing ORM-called methods now call the SQL version in order to avoid divergences in the future. Task-id: [5167731](https://www.odoo.com/odoo/project.task/5167731) Forward-Port-Of: odoo/odoo#258050
This update improves the handling of Philippine taxes within Odoo. Specifically, it reorganizes VAT taxes into groups with input and reverse charge components, and disables automatic tax closing for withholding taxes. These changes ensure accurate tax calculations and compliance with Philippine regulations.
Original PR description
Restructure FWVAT DS and FWVAT EM from single percentage taxes into group taxes with two children each: a positive 12% input VAT child and a negative 12% reverse charge child (FWVAT RC). Also, we disable tax closing entry for WHT taxes. task-6146238 Forward-Port-Of: odoo/odoo#266625
This update ensures that product tags sent to UrbanPiper are dynamically managed based on a product's settings and tax configurations. Previously, tags were hardcoded, but now the system automatically handles relevant tags, improving accuracy and flexibility for integrations with UrbanPiper.
Original PR description
Before this commit: ------------------------------------------ - The UrbanPiper payload used a hardcoded tag when the tax percentage was not 5%. - There was no mechanism to add additional tags based on providers, even though UrbanPiper supports multiple tags. After this commit: ------------------------------------------ - Tags are now dynamically handled using the Tag field in the product. - Users can define tags according to their tax configurations and aggregator requirements. - UrbanPiper only accepts relevant tags (default or provider-specific). task - 5154061 Forward-Port-Of: odoo/enterprise#112550 Forward-Port-Of: odoo/enterprise#96742
This update clarifies how half-day work periods are displayed on payslips. Previously, half days were grouped with full days, making it difficult to understand total work hours. Now, half days are clearly identified, providing a more accurate and transparent view of employee compensation.
Original PR description
In order to clearly distinguish work days that extended full day or half day, the worked days under the payslips will not display both entries as separate types with the half days flagged Task: 5975762 Forward-Port-Of: odoo/enterprise#112328
This update enhances the flexibility of our documentation links by adding styling options through 'class' props. Previously, these links had a fixed style, limiting their use in different contexts like buttons or dropdowns. Now, developers can easily customize the appearance of these links to fit seamlessly into various parts of the Odoo application.
Original PR description
Before this commit, the style of that component is fixed, thus it is not possible to customize it to render that component as a secondary button neither display it as dropdown item. This commit adds the `class` props in that component to be able easily change the style to use that component anywhere. task-6095833
1 change
Enhancements to existing features
This update adjusts how global discounts are exported in invoices to align with UBL (Universal Business Language) standards. Previously, discounts were represented as negative invoice lines, which is now changed to 'Allowances'. This ensures compliance with international trade regulations and simplifies the export process for global transactions.
Original PR description
Export global discounts as Allowances instead of negative invoice lines to comply with UBL specifications. task-5900496 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261029
15 changes
Enhancements to existing features
This update ensures that the helpdesk team automatically receives notifications when a new support ticket is created from a CRM lead. This improves team awareness and responsiveness to customer inquiries, streamlining the support process. It addresses a previous gap in notification workflows.
Original PR description
- Ensure that users added as followers of the helpdesk team receive notifications when a ticket is created from a CRM lead. task-4500059
This update enhances the appraisal survey experience by automatically displaying the employee's name (Appraisal Display Name) after the survey title when the survey is linked to an appraisal bridge. This makes the survey more personalized and provides better context for the employee providing feedback, leading to more relevant responses.
Original PR description
Display the Appraisal Display Name after the survey title when the survey is linked to an appraisal bridge, making the survey less generic and more contextual. Task-5972109
This update enhances the appearance of exported audit reports by applying the company's branding, including fonts, colors, and layout. Users now have more control over PDF dimensions and orientation, ensuring reports consistently reflect the company's visual standards.
Original PR description
When exporting an audit report to PDF, the system will now apply the margins, spacing, fonts, color theme, defined in the company's document layout. Users can also configure the PDF's dimensions (i.e: A4, etc) and orientation. This update makes the exported PDF fully customizable while ensuring it aligns with the company's branding and formatting standards. Technical note: This commit refactors the audit report XML templates to use the standard report assets. This reduces the number of generated asset bundles and ensures consistent styling. COM: odoo/odoo#241292 Task-5079740
This update adds specialized cost calculations within Odoo's payroll system for Belgium, specifically addressing the requirements for termination fees related to social security contributions. It incorporates detailed rules based on Belgian regulations, ensuring accurate accounting and reporting for employee departures. This improves compliance and financial reporting accuracy for businesses operating in Belgium.
Original PR description
task-5102928
This update simplifies the bank reconciliation view by only displaying the undo button when a reconciliation line is expanded. Previously, the button was present on every reconciled line, which was considered visually cluttered. This change improves the user experience and makes the reconciliation process more intuitive.
Original PR description
Before this commit, the undo button was present on each line that was reconciled, which was a bit too much in the view. we decided to have it only when the line is expand no task id
This update enhances Obox pairing by allowing users to connect directly to the Obox via IP address and identifier, eliminating reliance on odoo.com servers. This provides greater flexibility and control for users, particularly in environments with limited internet connectivity. This change improves Obox usability and expands its deployment options.
Original PR description
We add a way to allow pairing without relying on odoo.com servers by directly providing the IP addess and identifier of the Obox. see odoo/obox#172
This update enhances the performance and stability of Odoo's HTML editor by streamlining how it handles changes to the content. The changes, introduced by a community contribution, optimize the editor's responsiveness and reduce potential errors, particularly within various modules like AI, Documents, and Knowledge. This results in a smoother and more reliable editing experience for users.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/246336
This update enhances logging around IoT device connections and message transmissions. Specifically, it adds more detailed logs for IP and version changes, and optimizes a search process to prevent unnecessary activity. These improvements will aid support teams in troubleshooting IoT issues.
Original PR description
This PR adds some minor logs around ip/version change and websocket messages sent to the iot box. It also inverts a condition to avoid doing a useless search when sending websocket messages See https://github.com/odoo/odoo/pull/266410 Forward-Port-Of: odoo/enterprise#118442 Forward-Port-Of: odoo/enterprise#118377
This update enhances the Thailand withholding tax reports to provide more detailed and accurate information, aligning with PND 3 and PND 53 form requirements. Previously, the reports only showed total amounts; now, they group data by partner and tax type. Additionally, the CSV export format has been corrected to prevent data errors, ensuring reliable reporting.
Original PR description
Thailand withholding tax report only displayed the total withholding tax amount instead of showing extensive information required on PND 3 and PND 53 forms. This commit improves the tax reports by…
Thailand withholding tax report only displayed the total withholding tax amount instead of showing extensive information required on PND 3 and PND 53 forms. This commit improves the tax reports by grouping withholding tax values into partners and the withholding tax type. This change improves the report to display more comprehensive data for the users. Furthermore, previously the PND 3 & 53 report CSV export had hardcoded value on certain columns because the corresponding fields did not exist in Odoo. Now that we have fields required to properly build the CSV export, this commit updates the export logic to generate accurate values for the fields: - Partner title/company types are no longer hardcoded to "บริษัท". The value refers to the new fields in res.partner. - The withholding tax condition is no longer hardcoded to "1". The value is determined by the selection field value set on the related payment. - The tax type no longer depends on the withholding tax's amount value. The value is based on the selection field of the tax. Additionally, the CSV export delimeter is updated from "," to "|" to prevent data corruption caused by commas often found in the address values. [Task-5423108](https://www.odoo.com/odoo/project.task/5423108)
This update adjusts the sale module to allow orders to be shipped even if the stock isn't immediately available. The method name was changed from 'deliver' to 'ship' to better reflect this new functionality. This change streamlines the order fulfillment process.
Original PR description
**Purpose:** Reflect the changes made in sale module **Specification:** Renamed method _compute_show_deliver_button to _compute_show_ship_button Task-5343527 See also: - https://github.com/odoo/odoo/pull/240746 - https://github.com/odoo/upgrade/pull/10170
This update ensures that when an employee changes their assigned car within Odoo, the vehicle's driver is automatically updated to reflect that employee. Previously, this process was inaccurate, and this change corrects that, streamlining the driver assignment process. This improves data accuracy related to employee vehicle assignments.
Original PR description
In this PR, we updated driver assignment when car is manually changed on employee. When a car is selected or changed on an employee, update the vehicle's driver to the employee's partner. Clear previous car's driver link if reassigned. Related task: 4922053.
This update ensures our payroll rules for Saudi Arabia (KSA) comply with Saudi Labour Law Article 77 regarding termination compensation. It adjusts salary calculations to guarantee employees receive the legally mandated minimum wage for a specified period following termination, aligning with legal requirements. This update is crucial for accurate payroll processing and avoiding potential legal issues.
Original PR description
According to Article 77 of Saudi Labour Law: Unless the contract includes specific compensation for the termination by either party for an invalid reason, the party affected by termination shall be entitled to compensation as follows: 1. For indefinite term contracts: an amount equivalent to fifteen-day wage for each year of the worker’s employment. 2. For fixed-term contracts: the wage for the remainder of the contract term. 3. The compensation referred to in paragraphs (1) and (2) of this Article shall not be less than the worker’s wage for two months. This commit makes sure our KSA EOS salary rule complies with Article 77. task-6008261
This update enhances the tracking of payslips generated directly from payruns within the Odoo Enterprise system. Previously, it was difficult to monitor the creation of payslips originating from payruns. Now, the system provides better visibility into these payslips, improving payroll management and reporting.
Original PR description
Task#6253290
This update adds optional, hidden fields to the payslip form, specifically tracking the version of worked days lines. This enhancement provides more detailed information for payroll reporting and auditing, ensuring greater accuracy and traceability of payroll data. It's a minor improvement focused on data clarity.
Original PR description
Add optional hidden fields related to the version of the worked days lines on the payslip form. task-6133414
This update enhances the backend view of employee payslips by hiding lines that aren't printed. A new toggle allows users to view all payslip lines, ensuring a more accurate representation of the employee's actual earnings. This improves clarity and reduces confusion.
Original PR description
By default, payslip lines that do not appear on the printed payslip (appears_on_payslip = 'never', or 'non_zero' with zero total) are now hidden in the Salary Computation tab, giving a backend view…
By default, payslip lines that do not appear on the printed payslip
(appears_on_payslip = 'never', or 'non_zero' with zero total) are now
hidden in the Salary Computation tab, giving a backend view consistent
with what the employee sees on their payslip.
Added a Show All Toggle that controls the visibility of payslip lines that are invisible on the actual payslip.
This Toggle state is shared across all payslips, but not stored.
Implementation:
- Added a "Show All" toggle widget registered as a view_widget.
- Toggle state is persisted in localStorage under the key
"hr_payroll.display_all_payslip_lines"
- Created a module-level proxy object "payslipShowAllState" as the
single source of truth shared across all payslip instances.
- Custom ListRenderer (PayslipListRowVisibilityRenderer) filters rows
based on appears_on_payslip and payslipShowAllState.showAll.
- Custom X2ManyField widget (payslip_lines_2many) swaps the default
ListRenderer with the custom one.
task - 62002561 change
Enhancements to existing features
This update ensures that product tags sent to UrbanPiper are dynamically managed based on a product's settings and tax configurations. Previously, tags were hardcoded, but now the system automatically handles relevant tags, improving accuracy and flexibility for integrations with UrbanPiper.
Original PR description
Before this commit: ------------------------------------------ - The UrbanPiper payload used a hardcoded tag when the tax percentage was not 5%. - There was no mechanism to add additional tags based on providers, even though UrbanPiper supports multiple tags. After this commit: ------------------------------------------ - Tags are now dynamically handled using the Tag field in the product. - Users can define tags according to their tax configurations and aggregator requirements. - UrbanPiper only accepts relevant tags (default or provider-specific). task - 5154061 Forward-Port-Of: odoo/enterprise#112550 Forward-Port-Of: odoo/enterprise#96742