Daily updates from Odoo
Monday, July 14, 2025
15 changes
3 changes
Enhancements to existing features
The IoT setup dialog for using a pairing code has been updated with clearer wording. This helps users understand the pairing process more easily when connecting an IoT box.
Original PR description
We improved the "use pairing code" dialog to make it clearer. Task: 4942391 Forward-Port-Of: odoo/enterprise#90164
The production planning screen now reloads only the schedules currently visible to the user instead of every affected schedule in the background. This makes updates much faster in complex manufacturing setups, reducing a benchmarked reload from 31.6 seconds to 3.5 seconds.
Original PR description
Description ----------- Only fetch forecasts for MPS schedules visible in the view rather than all impacted schedules. Schedules not visible due to pagination are skipped when reloading the MPS state. Benchmark --------- Adjusting a quantity for a product, which will impact around 1k+ other schedules (hierarchy is deep with boms), `get_production_schedule_view_state` takes: | Before | After | Speed-up | |--------|-------|----------| | 31.6s | 3.5s | 9x | Reference --------- opw-4778588 Forward-Port-Of: odoo/enterprise#87299
Domestic VAT return names no longer show the country ISO code, reducing unnecessary clutter. ISO codes remain visible for foreign VAT returns, making it easier for users to distinguish cases where the country matters.
Original PR description
Showing ISO codes for every return is unnecessary and should only be shown for foreign VAT returns. This commit removes the ISO code from the return name for domestic return only. task-4783937 Forward-Port-Of: odoo/enterprise#86391
11 changes
Enhancements to existing features
Odoo now supports the updated Finance iframe flow that lets users create a bank account directly when their institution is not found. This makes online bank synchronization smoother, especially in the mobile-first experience, by keeping Odoo aligned with the new embedded workflow.
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#89932 Forward-Port-Of: odoo/enterprise#81894
AI operations now produce clearer logs showing how long requests take, approximate token usage, and whether tools run one at a time or in batches. This helps teams monitor performance, understand AI-related costs, and troubleshoot slow or complex AI interactions more easily.
Original PR description
Track API usage and performance with detailed logging: - Log each API call with token counts (estimate) and timing - Show batch (⚡) vs single (→) tool execution - Display summary with total metrics…
Track API usage and performance with detailed logging: - Log each API call with token counts (estimate) and timing - Show batch (⚡) vs single (→) tool execution - Display summary with total metrics Example 1: Simple response generation ``` [AI API Call #1] Sending request with 2619 tokens [AI API Call #1] Completed (1.80s, 68 tokens) [AI Summary] Total: 3.86s | API calls: 1 (1.80s) | Tools: 0 (0.00s) | Tokens: 2687 (in: 2619, out: 68) | Batches: 0 ``` Example 2: With single tool call (long args list is in DEBUG log) ``` [AI Response] Starting generation for agent 'Odoo Compliance Assistant' (ID: 2) [AI API Call #1] Sending request with 2687 tokens [AI API Call #1 - →] Received single tool call (1.85s, 49 tokens) [AI Tool →] Starting _create_calendar_event(event_title=..., attendee_names=..., event_datetime=..., event_duration=..., summary=...) DEBUG [AI Tool] _create_calendar_event(event_title='Sales improvement', attendee_names=['Marc Demo'], event_datetime='2025-07-18 00:00', event_duration=3, summary=None) [AI Tool - 0.16s] Completed _create_calendar_event [AI API Call #2] Sending request with 2851 tokens [AI API Call #2] Completed (1.63s, 40 tokens) [AI Summary] Total: 4.34s | API calls: 2 (3.48s) | Tools: 1 (0.16s) | Tokens: 5627 (in: 5538, out: 89) | Batches: 0 ``` Example 3: Complex response generation loop - multi api calls, batched tool calls ``` [AI Response] Starting generation for agent 'Foo Agent' (ID: 123) [AI API Call #1] Sending request with 16170 tokens [AI API Call #1 - ⚡] Received Batch #1, 3 tool calls (2.90s, 17938 tokens) [AI Tool - Batch #1 ⚡] Starting (1/3) _sum_2_numbers(a=10, b=20) [AI Tool - Batch #1 - 0.01s] Completed _sum_2_numbers [AI Tool - Batch #1 ⚡] Starting (2/3) _sum_2_numbers(a=30, b=40) [AI Tool - Batch #1 - 0.01s] Completed _sum_2_numbers [AI Tool - Batch #1 ⚡] Starting (3/3) _sum_2_numbers(a=50, b=60) [AI Tool - Batch #1 - 0.01s] Completed _sum_2_numbers [AI Tool Summary] Batch #1 completed, 3 tool calls [AI API Call #2] Sending request with 22390 tokens [AI API Call #2 - →] Received single tool call (2.45s, 24395 tokens) [AI Tool →] Starting _sum_2_numbers(a=100, b=200) [AI Tool - 0.02s] Completed _sum_2_numbers [AI API Call #3] Sending request with 22417 tokens [AI API Call #3] Completed (1.52s, 24424 tokens) [AI Summary] Total: 7.44s | API calls: 3 (6.88s) | Tools: 4 (0.11s) | Tokens: 66757 (in: 60977, out: 5780) | Batches: 1 ```
The manufacturing planning screen now reloads only the schedules currently visible to the user instead of processing hidden paginated items. This makes quantity adjustments much faster in large production plans, reducing a benchmarked reload from 31.6 seconds to 3.5 seconds.
Original PR description
Description ----------- Only fetch forecasts for MPS schedules visible in the view rather than all impacted schedules. Schedules not visible due to pagination are skipped when reloading the MPS state. Benchmark --------- Adjusting a quantity for a product, which will impact around 1k+ other schedules (hierarchy is deep with boms), `get_production_schedule_view_state` takes: | Before | After | Speed-up | |--------|-------|----------| | 31.6s | 3.5s | 9x | Reference --------- opw-4778588 Forward-Port-Of: odoo/enterprise#87299
Installing the Belgian POS blackbox module no longer shows a driver reload prompt. This reduces setup friction because IoT Boxes now receive the required blackbox driver automatically by default.
Original PR description
When we installed the module `pos_blackbox_be`, a dialog was shown to ask the user to reload his IoT Box's drivers (in order for its blackbox to be dected as a blackbox instead of an adam scale). We removed this dialog as we now download the blackbox driver by default on IoT Boxes. Forward-Port-Of: odoo/enterprise#89724
NACHA payment files can now correctly identify transactions for savings accounts instead of treating all bank accounts as checking accounts. This helps businesses route payments, including payroll-related payments, with the right banking transaction codes and reduces processing issues with banks.
Original PR description
[IMP] l10n_us_*: adapt nacha file Modules: l10n_us_payment_nacha, l10n_us_hr_payroll_account Adapt NACHA file to process transactions to savings accounts. Currently, NACHA files are only configured to process checking accounts (accounts meant to handle daily transactions). This means that any account added to res.partner.bank and associated with res.partner will be categorized as a checking account. NACHA accepts different transaction codes for checking and savings (long-term transactions) accounts but currently, our file is pre-configured to only process codes for checking accounts. task-4631279 Runbot: https://runbot.odoo.com/runbot/bundle/master-us-nacha-transactions-savings-account-roto-377535
Domestic VAT return names no longer show the country ISO code, reducing unnecessary detail in report labels. ISO codes remain visible for foreign VAT returns, where the country distinction is useful.
Original PR description
Showing ISO codes for every return is unnecessary and should only be shown for foreign VAT returns. This commit removes the ISO code from the return name for domestic return only. task-4783937 Forward-Port-Of: odoo/enterprise#86391
The Carta Porte PDF now includes key transport details such as trailers, intermediaries, locations, and the correct certification date, reducing the risk of customers carrying incomplete legal documentation. The delivery slip is simplified to avoid duplicate information, making the reports clearer and easier to use.
Original PR description
Currently, the information relevant to the carta porte is divided into two reports, the delivery slip and the carta porte. This means that if a customer only carries one report, they could be in…
Currently, the information relevant to the carta porte is divided into two reports, the delivery slip and the carta porte. This means that if a customer only carries one report, they could be in legal breach, in addition to the fact that there is a lot of repeated information in both reports. Current behavior before PR: - The delivery slip report has the CFDI stamp, in addition to the information on trailers and intermediaries. - The carta porte report is missing information on trailers and intermediaries. - Certification Date in QR code uses the scheduled date Desired behavior after this PR: - The carta porte will contain information about trailers and intermediaries. - The structure of the delivery slip has been simplified to contain only the necessary information, without including duplicate data that is already on the carta porte. - The missing location field has been added to the addresses section in the carta porte report. - Certification Date in QR code uses the actual certification date. opw-[4590387](https://www.odoo.com/odoo/my-tasks/4590387) "I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)"
The missing transactions wizard now highlights cancelled journal entries for the selected journal after a chosen date. This helps accounting teams spot potentially relevant cancelled bank transactions and reset bank statement lines to draft when needed.
Original PR description
This commit will add a new warning in the missing transaction wizard. It will allow to show the cancel entries of the journal you selected and after a certain date. task: 4532485
Vendor bill line labels can now help predict the professional deductible percentage when the user has access to partial purchase deductibility. This reduces manual entry and helps eligible accounting users see more complete predicted bill details.
Original PR description
- On Vendor Bill lines, on change of Label(name) of the line predict Professional%(deductible_amount) only if user have `account.group_partial_purchase_deductibility` group so this field is optional=show and user can see predicted amounts. - This predictions are done using `_predicted_field` method, using which we are already predicting product, taxes, account and now deductible_amount. Community PR: https://github.com/odoo/odoo/pull/205491 task-4661380
The Knowledge editor now uses the richer embedded file experience when embedded components are available, while keeping the standard file option elsewhere. This makes files inserted through the /file command behave more consistently in Knowledge without disrupting other editor uses.
Original PR description
### Current behavior before PR: - The /file command in powerbox used a static file box (FilePlugin) across all editor usages. - EmbeddedFilePlugin was only used in the Knowledge app. ### Desired behavior after PR is merged: - The editor uses EmbeddedFilePlugin when embedded components are enabled. - Other fallback to the standard FilePlugin. **community-https://github.com/odoo/odoo/pull/216572** task-4671755
The Sign app now lets businesses set a default validity period, in days, for new signature requests. This reduces repetitive setup for users and helps ensure requests consistently expire on schedule.
Original PR description
Added a setting in the Sign app to define a default validity period (in days) for sign requests. This improves the user experience by eliminating the need to manually set an expiration date for each new request. task-4942996
1 change
Enhancements to existing features
This update lets Odoo automatically add the right labels to certain automated tests when they use website tours or database query checks. It helps the testing system run and report these tests more accurately, reducing missed labels and warning developers when special tests are not marked correctly.
Original PR description
This commit add the possibility to automatically add test-tag on a test method at runtime. A generic method `get_method_additional_tags` is added on `BaseCase` test class. That method can be overridden to return a list of test-tags that will be added on the test methods. With this mechanism, the `HttpCase` class override this method to add a `is_tour` test-tag when the `start_tour` method is used in the test method. Also, the `start_tour` method will now emit a warning when the method is called without being tagged `is_tour`. That way, all the tours can now be started with the `is_tour` test-tag. Forward-Port-Of: odoo/odoo#217102 Forward-Port-Of: odoo/odoo#212315