Daily updates from Odoo
Friday, March 27, 2026
26 changes · master
New functionality added to Odoo
This update introduces named ranges within the Odoo Enterprise spreadsheet functionality. Previously, auto-complete suggestions were limited. Now, users can define and utilize named ranges, improving data organization and usability within spreadsheets. This enhancement is part of a larger effort to streamline spreadsheet workflows.
Original PR description
This commits make the enterprise adaptations for the named range feature. Notably the auto-complete helpers now take the whold auto-complete proposal as argument, instead of the text value. Task: [5380498](https://www.odoo.com/web#id=5380498&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
This update expands the report search functionality within Odoo Enterprise to include 'variant' reports. Previously, users could only access the standard 'main' reports. Now, users can easily find and directly access variant reports from the search menu, streamlining report selection and usage.
Original PR description
When being on the main menu of Odoo, and writing the name of a report, we can only see the "main" reports, not the variants. The change adds the variant reports in the search base enabling to select them as well, and be directly redirected to them on selection. task: 5877548
Enhancements to existing features
This update improves the accuracy of China's accounting reports (ASBE and ASSBE) by adjusting formulas for asset account codes. This ensures compliance with Chinese accounting standards and provides more reliable financial reporting for our Chinese clients. The changes were made to the l10n_cn_reports module.
Original PR description
- update "account_codes_formula" for assets in ASBE & ASSBE reports task-[5985488](https://www.odoo.com/odoo/project.task/5985488?debug=1)
This update includes a new test to ensure the legend position selector remains functional for Odoo pie charts. This is important because Odoo charts consistently display labels, and the test verifies that the selector isn't incorrectly disabled in these scenarios.
Original PR description
Checked the legend position selector is not disabled for an odoo pie chart (because there are always labels for odoo charts) Task: 6014240
This update enhances the appointment booking experience by centralizing design options. Previously limited to dynamic snippets, users can now choose from various layouts (List, Pictures, Cards) directly on the main appointment selection page, improving flexibility and visual consistency. This simplifies the booking process and aligns with recent design updates.
Original PR description
…esigns Since the latest redesign of the dynamic snippet templates and of the various appointment screens done in odoo/enterprise#101785 , we have a collection of clean designs but cannot use it…
…esigns Since the latest redesign of the dynamic snippet templates and of the various appointment screens done in odoo/enterprise#101785 , we have a collection of clean designs but cannot use it outside of the appointment dynamic snippet. Therefore, enable all the designs on the main appointments selection page (see o_appointment_index, /appointment page). It now takes the form of a selection option in the editor, and overseeds the previous 'Card Design' boolean toggle option. MAIN CHANGES ------------ - Extract list item and picture item to dedicated templates, to be used in both the snippet and the main page. - A new selection option 'Layout' is available on the main selection page /appointment. Values are List (default), Pictures, Cards (previous), Dropdown (design without website) - A few design adjustements and renaming to match the new structure. - Extract the placeholder + svg helper behavior - shown when no appointment is found - in a dedicated public interaction, usable cross templates (see o_appointment_selection) UPG PR: odoo/upgrade#9346 Task-5426199
This update simplifies the layout of the Knowledge articles by moving away from Bootstrap's grid system. The side panels now have fixed widths, allowing the article content to take up the remaining space, resulting in a cleaner and more controlled display. This change improves the overall user experience.
Original PR description
Currently, Knowledge uses the grid system of Bootstrap for the layout of Knowledge. The classes `col-X` set predefined widths and come with breakpoints that are not really suitable for Knowledge. This commit will replace those classes with standard flex classes (e.g: `d-flex`, `flex-grow-1`, etc). The side panels will now have a predefined width and the article will take all the remaining space. With that change, the layout will be simplified: We will no longer have to overwrite bootstrap styling and we will have way more control over the display. task-3974361
This update improves the Accounting Firm mode by replacing an outdated setting (`quick_edit_mode`) with a new, more flexible option (`document_sequence_editable`). This change ensures the Accounting Firm mode functions correctly and efficiently as it's being fully updated.
Original PR description
As the entire Accounting Firms mode is being updated, the old field `quick_edit_mode` is replaced by `document_sequence_editable` in related modules with this PR. task-5418617
This update simplifies the process for public users to register within the document sharing system. Previously, registration was limited when sharing documents without a link, but now users can seamlessly sign up using the partner information associated with the document. This enhancement improves usability and streamlines the registration experience for public users.
Original PR description
Purpose ======= Improve the sharing flow for public user. Before, the public user could register using the partner set on the member only if the document was shared with "access_via_link = none", because we couldn't change template in stable. Now, they can click on "Sign up" in the public view, and the `res.users` will use the partner set on the member. Task-5481653
This update enhances the Hong Kong payroll system to accommodate a wider range of pay schedules, including those needed for new employee structures. It also ensures compliance with local regulations regarding payment intervals and clarifies internet allowance calculations. This improves payroll flexibility and accuracy.
Original PR description
Implement proper back for more pay schedules into the Hong Kong payroll. We need some of these for the soon-to-be casual employee structure, and it doesn't hurt to add support for the other schedules as that follows the same calculations. The calculations also properly support less than monthly payslips, even though we don't enable these for now. As per the law, the interval between payment of wages must not exceed one month. We also update the internet allowance fields a bit in order to make the labels clearer, and to make it clear that this amount is per payslips/pay period. task-6053670
This update ensures a more uniform look and feel for French reports by silencing the delete icon, aligning it with other interactive elements within the Odoo Enterprise system. This change enhances the user experience and maintains a consistent design across all reports.
Original PR description
To keep UI consistency with the rest of the interactive items. No task ID
This update expands the payroll calculation for fiscal voluntarism, allowing users to now choose between a fixed amount or a percentage deduction. This provides greater flexibility and accuracy in calculating payroll contributions, addressing a previous limitation where only a fixed number was used.
Original PR description
[IMP] l10n_be_payroll: fiscal voluntarism (fixed and percentage)
Fiscal voluntarism was only taking a fixed number and the salary rule was calculated according to that.
Now, yo can select fixed amount or percentage and the amount is calculated accordingly.
Test:
test_fiscal_voluntarism is updated to cover both fixed amount and percentage cases.
task - 6032479This update replaces the previous ChatGPT-based translation with Google Translate as the default provider, significantly expanding supported languages. The translation system has been refactored for easier integration of new translation services and now includes a user-friendly toolbar for translation selection and insertion.
Original PR description
*: html_builder, mail, ai Before this commit: we use chatgpt for translation. The translation has less supported languages comparing to mainstream translation providers. After this commit: we added the google translate and use it as the default translation provider. We refactored the translation code so now we can easily introduce new translation service by defining a new translator instance. The translation now has its own toolbar group and ai group is moved to the ai module on the enterprise branch. In debug mode, the translate_dialog also shows all the current translate services available: 1. it's possible to select a different translate service. 2. the translation is triggered on the change of translator. 3. user may select the preferred translation and insert it. An IAP service is also created for google translate in the iap-app repo. task-5155746
This update prepares the Odoo Enterprise spreadsheet functionality for a new feature allowing users to define named ranges within their spreadsheets. The changes include adjustments to auto-complete helpers and tests to ensure compatibility with updated chart components, ultimately improving spreadsheet usability and data management within the enterprise version.
This update enhances the user experience in Odoo's MRP scheduling by adding placeholders to key fields. Specifically, it clarifies default behaviors for the Master Production Schedule (MPS) and Work Center configurations, making them easier to understand and manage. This improves workflow efficiency and reduces potential errors.
Original PR description
To improve the ux and clarify default behaviors: - Added "Don't Import" placeholder to the BoM field in the Master Production Schedule (MPS) form view. - Added "Everyone" placeholder to the Allowed Employees field in the Work Center form view. task-6026150
Resolved issues and error corrections
This update addresses a minor visual issue on mobile devices where the last barcode in a work order list would appear hidden behind the work order card due to excessive spacing. The change reduces this spacing, ensuring all barcodes are fully visible and improving the user experience. This is a simple UX fix.
Original PR description
small UX improvements: - change button labels - prevent empty scroll on MO barcodes Decrease margin bottom on last barcode item to prevent empty scroll. Previous margin was too big and made it possible to scroll up too far so that the last barcode was out of view, 'hidden' behind MO card. task-5974291
This update removes a redundant column ('No Follow-Up') from the Customer Statement report. This simplifies the report for users, eliminating potential confusion and ensuring a clearer presentation of customer invoicing data. The change improves the overall user experience.
Original PR description
Currently, the `Customer Statement report` includes the `No Follow-Up` column. **Steps to reproduce:** - Install the `account_reports` module. - Go to Invoicing> Customers > Customers and open any company partner. (e.g., Azure Interior) - Click the `Payable` smart button. - Select `Report: Customer Statement`. **Observation:** The `No Follow-Up` column appears in the `Customer Statement report`. However, this column is only relevant for the `Open Items`. In the Customer Statement report it has no functional purpose and may create `confusion`. **Fix:** This commit removes the `No Follow-Up` column from the `Customer Statement report`. Upgrade PR: https://github.com/odoo/upgrade/pull/9733 opw-5743390
This update optimizes how Odoo counts knowledge articles, ensuring faster loading times and a smoother user experience. The change addresses a technical issue related to data retrieval, meaning the update doesn't introduce new queries. This results in a performance improvement for the Knowledge module.
This update corrects an issue in the payroll calculations by ensuring ormcache keys accurately include all necessary parameters. Specifically, the system now handles dynamic date calculations correctly, preventing caching problems and improving the stability of payroll processing. This change ensures more reliable and efficient payroll operations.
Original PR description
[FIX] hr_payroll: fix ormcache key for _get_parameter_from_code 1. ormcache key should contain all parameters, `raise_if_not_found` is not a valid exception 2. `data=None` will fallback to `fields.Date.today()` which is dynamic and shouldn't be ormcached. https://github.com/odoo/odoo/pull/255514
This update resolves an issue where payroll data was incorrectly relying on outdated XML references. By adding a specific parameter, the system now loads data more reliably, ensuring accurate payroll calculations. This improves the stability and accuracy of HR payroll processing.
Original PR description
For now some data depend on xml ref and the code run on loading before the actual recoreds are loaded so we need to add `, raise_if_not_found=False` Task: 6072212
This update resolves an issue where clicking the 'X' button in the pay run confirmation wizard unexpectedly continued the process instead of closing it. The fix ensures the 'X' button correctly closes the wizard, improving user experience and preventing unintended actions. This change ensures consistent and reliable pay run confirmation.
Original PR description
Steps to reproduce: - Install the hr_payroll module. - Create a new Pay Run with all employees - Click on Continue for Time Off, which opens the confirmation wizard - Click on the “X” (close button) at the top right corner Issue: Clicking on the “X” in the confirmation wizard continues the process instead of simply closing the wizard. Cause: The issue occurs because the dismiss action is not properly handled when opening the confirmation wizard. Fix: This PR handles the dismiss action by passing an empty function. task-6036649
A bug in report calculations was causing errors when editing values within reports. This update corrects a mismatch between how report data is sent and received, ensuring accurate calculations after manual changes. This improves report reliability and data accuracy for users.
Original PR description
…getting column_group_totals from json Backport of f91e98fe645768db4af590fa4cdfe2ddfe85f888 // Bug The following flow failed: 1) Create a report with 3 lines: - Line 1: using the "domain" engine -…
…getting column_group_totals from json
Backport of f91e98fe645768db4af590fa4cdfe2ddfe85f888
// Bug
The following flow failed:
1) Create a report with 3 lines:
- Line 1: using the "domain" engine
- Line 2: using the "external" engine, with subformula="editable"
- Line 3: an aggregation summing lines 1 and 2
2) Open the report, and edit the amount in line 2
===> Error message, stating Line 1 cannot be evaluated while evaluating Line 3's formula.
// Cause of the issue
When editing a manual value, to avoid recomputing the whole report uselessly, the client sends the column_groups_totals that were computed to render report back to the server. When modifying the external value, that data structure is used to get the results of all other expressions, and reevaluate the aggregations that depend on the modified external value. json is used to send the column_group_totals.
json conversion always forces the keys to be strings. In the past, this was no problem, since the column_group_totals' keys were column group keys, which were also strings server-side. However, https://github.com/odoo/enterprise/commit/ec3581cd759d8c4e03db9e08f6f95546e5724e1f now makes those key indices of a list, hence integers. So, when column_group_totals were sent from the client, they basically were ignored, since none of their keys matched any column group index, causing the bug.
Forward-Port-Of: odoo/enterprise#111841Features or functions removed from Odoo
This update removes leftover order files related to the Urban Piper module, a byproduct of a previous module removal. This cleanup ensures the system is running efficiently and avoids potential issues with outdated data. The change is a routine maintenance task.
Original PR description
** :enhancements, ubereats In this commit: --- - Remove PO files that were added after the modules were removed in [commit]. [commit]: https://github.com/odoo/enterprise/commit/b48ddcce7bf849f072efd44b066ac365d519abc0
This update removes redundant settings related to individual delivery carriers within the Sale module. Previously, each carrier had its own settings, which were duplicated in the Inventory module. This change consolidates settings for a cleaner and more efficient system.
Original PR description
In https://github.com/odoo/odoo/pull/252058, we remove delivery carrier specific settings from the Sale module settings to avoid duplication (as they are already available in the Inventory module). In this commit, we remove the records that inherited and extended the deleted settings from each of the delivery carrier modules. See Community PR: https://github.com/odoo/odoo/pull/252058 task-5887918
This update removes a field from the headcount report that was no longer providing useful information. The report now accurately displays employee counts by contract type, simplifying the data presentation. This change improves report clarity and efficiency.
Original PR description
this PR removes the, now useless, field `version_names` as we cannot uniquely identify contracts (now, "versions") by their names, and in the report it just shows <Employee Name> number of contract in report time period times, separated by commas. [task#6064150](https://www.odoo.com/odoo/project.task/6064150)
Code cleanup and technical improvements
This update enhances how users access knowledge articles within the Odoo Enterprise system. The changes streamline the user experience by transitioning to a client action and utilizing a new knowledge app component, making it easier for employees to find relevant information. This improves efficiency and knowledge sharing across the organization.
This update streamlines the process of retrieving the custom field view ID for the sign template, making it easier to manage and debug. By directly checking the reference within the component, we've simplified the system and reduced unnecessary data passing, leading to a more stable and efficient sign template experience.
Original PR description
Previously, the `sign_item_type_view_form_custom_field` view ID was fetched in the Python model and passed down through multiple component layers via props to reach the sign template sidebar. This commit refactors the approach by utilizing `check_object_reference` directly within the component making it easy to debug and avoid unnecessary props. Task: 6067313