Daily updates from Odoo
Thursday, July 10, 2025
11 changes
4 changes
Enhancements to existing features
Account merging has been optimized to avoid loading very large volumes of accounting entries during the final update step. This reduces the risk of memory errors and significantly improves completion time for companies with large accounting datasets.
Original PR description
### Issue --> The final step of the `_action_merge` method updates the `code` field of the account onto which the other accounts are merged. During the write call on `code`, a dependent field…
### Issue --> The final step of the `_action_merge` method updates the `code` field of the account onto which the other accounts are merged. During the write call on `code`, a dependent field `always_tax_exigible` on `account.move` gets added to the compute chain. This causes a fetch of all `account.move` records related to journal items related to the account that is getting updated. This can lead to a MemoryError on databases with large `account.move` tables. ### Solution --> We delegate the write of the `code` field to SQL. In the account merge wizard, accounts that can be grouped are grouped by the keys --> `'account_type', 'non_trade', 'currency_id', 'reconcile', 'deprecated','name'`. Therefore, the `account_type` does not change after the merge. We can safely assume that any fields dependent on `account_type` do not need recomputation and hence, bypass the ORM for this update. ### Benchmark --> For an account with ~1.17M related `account_move_lines` and ~570k `account_moves`, | Before Fix | After Fix | |--------|--------| | TO/Memory error past TO | ~24s | #### Additional change --> Disable the prefetcher in the write call in `account.account` to optimize memory usage on databases with a large number of journal items/journal entries when writing on `code` or `account_type` in general. opw-4839985 Forward-Port-Of: odoo/odoo#216768
The POSBox homepage now shows a simpler database connection flow. Users see a clearer “Disconnect” button and are no longer prompted to configure a new database when one is already set, reducing screen clutter and confusion.
Original PR description
We renamed the "Disconnect from current" button to "Disconnect", and removed the possibility to configure a new database if one is already configured. This eases user experience, by reducing the amount of information on the screen. Task: 4922634 Forward-Port-Of: odoo/odoo#217706
This update enables an automated website tour that checks snippet caching across multiple websites. It helps ensure website content remains reliable when businesses manage more than one site from the same Odoo database.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Vietnam VAT number checks now recognize the updated formats required under recent regulations, including the 12-digit citizen ID format for individuals from July 2025. This helps businesses register and validate Vietnamese customers and partners without incorrectly rejecting valid tax identifiers.
Original PR description
The current validation uses stdnum.vn.mst.validate(), which only accepts 10- or 13-digit MST with legacy checksum logic. It does not support the 12-digit CCCD format now required for individuals from…
The current validation uses stdnum.vn.mst.validate(), which only accepts 10- or 13-digit MST with legacy checksum logic. It does not support the 12-digit CCCD format now required for individuals from 01/07/2025 (per Circular 86/2024/TT-BTC). * This patch introduces a separate format-level validator for: • 10-digit enterprise VAT • 13-digit branch VAT (10-digit + suffix) • 12-digit CCCD (from 01/07/2025) * References: • Circular 86/2024/TT-BTC (tax registration & CCCD admin): https://thuvienphapluat.vn/van-ban/Thue-Phi-Le-Phi/Thong-tu-86-2024-TT-BTC-dang-ky-thue-565309.aspx • CCCD replacing tax ID from 01 Jul 2025: https://thuvienphapluat.vn/ma-so-thue/bai-viet/cach-doi-ma-so-thue-sang-ma-so-dinh-danh-ca-nhan-tu-0172025-200926.html • VAT ID structure 10/13 digits (Law, TT 105/2020): https://thuvienphapluat.vn/phap-luat/cau-truc-ma-so-thue-la-10-chu-so-hay-13-chu-so-phan-loai-cau-truc-ma-so-thue-nhu-the-nao-theo-quy-d-796465-178397.html --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217914 Forward-Port-Of: odoo/odoo#217253
5 changes
Enhancements to existing features
Belgian accounting localization data was refreshed with updated chart of accounts details, translations, and disallowed expense rules. The change also adds default asset model support so eligible Belgian accounts can automatically create assets, reducing manual setup and improving accounting consistency.
Original PR description
1) Misc data modifications and corrections for l10n_be. * Updated the CoA (accounts, descriptions, translations) * Fixed and updated disallowed_expenses 2) Added default asset models module for l10n_be See task-4791757 for more details. Related :https://github.com/odoo/odoo/pull/210755 Forward-Port-Of: odoo/enterprise#89471 Forward-Port-Of: odoo/enterprise#87067
Payroll users no longer need to manually click the Compute button after changing information that affects a payslip. Payslip lines are recalculated dynamically when related payroll data changes, helping reduce missed updates and improve payroll accuracy.
Original PR description
make it so payslip lines are dynamically recomputed when dependencies are edited. task-4720287
Project update descriptions now better reflect the information shown in the project side panel. This makes profitability-related project information easier to understand even when the sales timesheet app is not installed.
Original PR description
_*: project_timesheet_forecast_sale Currently, profitability isn't displayed in the project update description form without the sale_timesheet module. In this commit, we have improved the project description according to the project side panel. task-3916169
The Website Studio form walkthrough has been updated to work with the redesigned website builder. This restores automated checks that help ensure the form-building experience remains reliable for users.
Original PR description
The `website_studio_website_form` tour was previously broken due to DOM structure changes introduced by the new website builder and was consequently disabled. This commit updates the tour steps to align with the new DOM and re-enables the associated test. Forward-Port-Of: odoo/enterprise#89389
The DHL delivery integration is now categorized under shipping connectors. This makes it easier for users to find the DHL connector in the appropriate section when browsing or managing apps.
Original PR description
DHL module should be in the shipping connectors section Task: 4903666
2 changes
Enhancements to existing features
Expense receipt scanning now captures the actual merchant or place name, such as a restaurant or fuel station, instead of a broad category like food or gasoline. This makes automatically created expense records clearer and easier for employees and approvers to understand.
Original PR description
The detection of the description has been improved in the latest version of the expense OCR API. It now actually detects a description (restaurant name, fuel station name, etc) instead of predicting a category ('food', 'parking', 'gasoline', etc).
Task [link](https://www.odoo.com/odoo/project/2068/tasks/4623180)
task-4623180
Forward-Port-Of: odoo/enterprise#89448Odoo now better supports the updated mobile-first finance connection flow by handling bank accounts created directly inside the embedded iframe. This helps users continue setup when their searched institution is not already available in Odoo Finance, reducing friction during bank synchronization.
Original PR description
The aim of this commit is making sure that the odoo database code is handling properly the new feature introduced with the iframe revamp in mobile-first. This feature allows user to create a bank account from the iframe directly if Odoo Finance doesn't have the searched institution. task-4481880 Forward-Port-Of: odoo/enterprise#81894