Daily updates from Odoo
Thursday, September 11, 2025
12 changes · master
New functionality added to Odoo
A new bridge module connects Sign with AI features so the AI option in the Sign sending flow appears correctly. AI-related functionality now loads only when the AI module is available, avoiding confusing display issues for users without AI installed.
Original PR description
In this commit, Introduce a bridge module that integrates AI features into the Sign send wizard. Without this module, when AI is not installed, the AI button in the wizard was incorrectly rendered as a HTML field instead of a AI button. After this commit, the button displays correctly and AI features load only when AI module is available.
Users can now send signature requests through WhatsApp as well as email. Administrators can configure a WhatsApp message template in the Sign settings, and the WhatsApp send option appears only when that template is available, giving teams another channel to collect signatures faster.
Original PR description
Implemented a new feature that allows users to send sign requests via WhatsApp in addition to email. A new global setting has been added in the Sign app configuration to let users define a WhatsApp message template for sign requests. Once configured, a new button appears in the Send Request wizard, enabling users to send the request via WhatsApp using the selected template. The system uses the defined WhatsApp template to generate the message, including placeholders such as recipient name, document title, and signing link. If no template is configured, the WhatsApp button remains hidden. This enhancement improves flexibility and expands the available communication channels for collecting digital signatures. task-5079248
Enhancements to existing features
The point of sale now remembers the customer display selected on a mobile device and opens it automatically the next time the PoS is launched. This saves staff from manually choosing the same display each session and helps speed up store setup.
Original PR description
- Save the selected display in cookie - Open the selected display automatically when open the PoS
The stock operations dashboard has been updated with new features to improve visibility into inventory and operational performance. This helps business users monitor stock-related activity more effectively and make better-informed decisions.
Original PR description
Update the dashboard with new features. Task: 4851982
Adds US-specific profit and loss and balance sheet reports so companies can view financial statements in the format expected under US GAAP rather than generic IFRS-style reports. Related reporting tests were adjusted to keep automated checks focused on the intended report variants.
Original PR description
The generic reports are based on International Financial Reporting Standards (IFRS) whereas the US expects reports based on Generally Accepted Accounting Principles (GAAP). This also includes some changes to the account_reports tests to avoid _init_options_variants() from automatically picking these new reports in the tour tests. task-5068369
The Taiwanese Profit & Loss and Balance Sheet report layouts have been updated to match recent changes in the local chart of accounts. This helps businesses in Taiwan generate financial statements that better align with current accounting structures and reporting expectations.
Original PR description
This commit updates the Profit & Loss and Balance Sheet report definitions to reflect the changes in the Taiwanese chart of accounts. [Task-4915057](https://www.odoo.com/odoo/my-tasks/4915057)
Restaurants using UrbanPiper can now set minimum and maximum quantities for product attributes, such as required or capped add-ons. This helps keep online orders aligned with menu rules and reduces incorrect customer selections.
Original PR description
### In this commit: - Added support for setting minimum and maximum quantity limits on attributes. task: 4961323
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
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.
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