Daily updates from Odoo
Thursday, September 11, 2025
9 changes · master
Resolved issues and error corrections
Changing the signing order on a document now stays in place instead of reverting automatically. This ensures notification emails go to the right people at the right time, so documents are signed in the intended sequence.
Original PR description
### Issue: - When the signing order was changed, the changes were reverted back. - Because of this, emails were sent to the wrong users (those supposed to sign later got emails earlier). ### Fix: - Updated the `_compute_signer_ids` method to correctly compute and store the signing order. ### Impact: - Users will receive emails and can sign in the correct sequence according to the set signing order.
DHL and USPS delivery integrations now retrieve package details correctly from sales orders. This prevents shipping information errors and helps ensure accurate carrier processing for affected orders.
Original PR description
This commit fixes the same issue in #89771, but for sale orders instead of pickings. opw-4979982 Forward-Port-Of: odoo/enterprise#94186
This fix restores the intended layout of the quick-create area in bank reconciliation. Users should again see the fields sized and arranged correctly, reducing confusion when entering reconciliation details.
Original PR description
In commit[1] the css handling the grid-template-columns was removed, breaking the quick-create layout. task-5079288 Follow-up of task-4749379 [1]: odoo/enterprise@f9725d7b01cbd1235f022821a6861adb2955e49e
AI chat and document features now handle invalid tool requests and usage limits more clearly instead of stalling or returning empty responses. This improves reliability for users by allowing the AI to recover from mistakes and by making failures visible when a request cannot be completed.
Original PR description
This commit introduces several related fixes to the LLM API service to make tool call processing more robust and prevent silent failures. - **Unknown Tool Calls**: When an LLM requests a tool with an…
This commit introduces several related fixes to the LLM API service to make tool
call processing more robust and prevent silent failures.
- **Unknown Tool Calls**: When an LLM requests a tool with an invalid or unknown
name, it previously resulted in an empty response, causing the conversation to
stall. This change ensures that a proper error message is now returned to the
LLM for the invalid tool call. This allows the LLM to process the failure and
continue the conversation.
- **Failing on Limits**: The query processing loop in `_request_llm` has limits
for both successive API calls and the number of tool calls per request.
Previously, these limits would be reached silently.
- **API Call Limit**: If the `AI_MAX_SUCCESSIVE_CALLS` limit is reached
without the LLM providing a final answer, a `ValueError` is now raised. This
prevents silent failures and makes it clear to the calling code that the
request could not be completed.
- **Tool Call Limit**: If the number of tool calls in a single response
exceeds `AI_MAX_TOOL_CALLS_PER_CALL`, any calls beyond the limit are now
provided with a result stating that the limit was reached. This gives the
LLM the opportunity to try the unprocessed tool calls again in a subsequent
turn.
- **Ignore Explanatory Text**: The text that LLMs often include alongside a tool
call request (the "thinking" text) is now ignored to provide a cleaner and
more concise final response to the user.The AI assistant can now correctly apply date filters when users ask for time-based information, such as orders from last month. This makes search results more accurate and avoids unreliable fallback behavior for common business queries.
Original PR description
Enable AI agent to handle date-based queries by adding date filter support to all terminating tool calls (open_menu_*, adjust_search). - Extract date filter info from search views in clean_search_view_xml() - Add date_filters parameter to all terminating tool methods and schemas - Update frontend handlers to process date filters via toggleDateFilter() - Fix param schema validator to support arrays of objects (required for date_filters) - Add tests for new array-of-objects schema validation - Update AI instructions with correct period IDs (month, quarter, year vs this_month) This allows natural language queries like "show orders from last month" to properly apply date filters instead of falling back to custom domains.
A timesheet grid test now uses a consistent calendar timezone so results do not vary depending on demo data. This helps keep automated checks stable without changing how scheduling works for users.
Original PR description
The test `test_create_from_future_template` was failing with demo data due to timezone differences. Demo companies often have a resource calendar with a non-UTC timezone (e.g., Europe/Brussels). In that case, calling `action_create_from_template` schedules tasks via `_scheduling`, which computes the task start/end in local time and stores them in `UTC`, shifting the expected hours. Without demo data the company calendar timezone itself is already `UTC`, so the test passed. This change enforces the company resource calendar timezone to `UTC` at the start of the test to ensure consistent behavior regardless of demo fixtures. No change in scheduling logic, only a test stabilization. [runbot-231452](https://runbot.odoo.com/odoo/error/231452)
Creating a payroll run no longer fails for Swiss payroll users. This restores the expected payroll workflow and prevents an error that blocked pay run creation.
Original PR description
Currently on master when you try to create a pay run it creates a traceback, mentioning that _get_valid_version_ids is given 7 arguments and only 6 were taken, this probably happens because the overloaded function in Swiss l10n wasn't adapted task: 5082011
Fixed an issue that could prevent payroll payment report CSVs from being generated when an employee had multiple bank accounts with a 100%/0% salary split. Reports can now include the 0% split account without causing an error, helping payroll teams complete payments reliably.
Original PR description
-When generating a payment report CSV for user with multiple bank accounts that have a salary split of 100%/0%, a trace-back occurs. -The logic has been adjusted so that bank account of 0% split percentage can be included in the payment report.
The Colombian withholding certificate report no longer shows a confusing compliance message. This makes the report clearer for users while preserving legal compliance with DIAN requirements.
Original PR description
Before PR: - retention reports showed a confusing message which was intended to show compliance with DIAN. After PR: - the confusing message has been removed. Omitting this message does not affect legal compliance. Task Id: 4859088