Daily updates from Odoo
Wednesday, October 8, 2025
12 changes · master
Enhancements to existing features
IoT box information is now cached so connected devices can keep communicating when the internet connection is unavailable. This reduces unnecessary server calls and improves reliability for IoT-based flows such as self-ordering and printing.
Original PR description
In order to make the `iot_http` service work offline, we cache the iot box records until there is a full action failure. This avoids useless orm calls and in the meantime, allow making requests to the iot box without internet connection. Community PR: odoo/odoo#226839 Forward-Port-Of: odoo/enterprise#96332 Forward-Port-Of: odoo/enterprise#93895
Businesses in Colombia can now create and send invoices for free samples or commercial gifts that must be reported to the government. This makes it easier to stay compliant with Colombian electronic invoicing requirements when goods are given away at no charge.
Original PR description
Colombian companies are able to give away free samples/commercial gifts, but these have to be declared to the government. This commit allows for easy creation and sending of these invoices. task: 4782963
The Point of Sale IoT Box status icon now shows the most recent communication method used, helping staff better understand how the box is connected. The old longpolling on/off setting was removed because WebRTC is now the main communication method.
Original PR description
We updated the IoT Box status icon in PoS to display the last protocol used to communicate with the box. We removed the longpolling enable/disable toggle as the main protocol now is WebRTC. Task: 5116840 Forward-Port-Of: odoo/enterprise#96405
This update improves live currency rate handling so businesses can work more reliably with conversion rates for historical transactions and demo scenarios. It helps accounting teams get more accurate currency conversions when reviewing or entering transactions dated in the past.
Original PR description
WIP task-5046193
IoT boxes now let the backend choose the correct messaging channel and starting point when they connect. This prevents old messages from being replayed on first connection, reducing the risk of a device being accidentally unpaired right after setup while keeping compatibility with older IoT software.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/230475 Before this commit, the IoT box would use the websocket channel name from the `/iot/setup` result to make its subscribe message, and use a last message ID of either 0 or a previously saved value. The main issue with this approach is that on first connection, the websocket could receive stale messages, including `server_clear` which could immediately unpair the IoT box after it connects. After this commit, we no longer send the channel to the IoT box. Instead, the IoT box sends its token in the subscribe message, and we override the subscribe method in the backend to set the correct channel and the latest message ID. This both simplifies the process and fixes the stale message problem. For now the `/iot/setup` controller will still return the websocket channel, to ensure compatibillity with old IoT code.
The follow-up process tests now use the newer journal items action, aligning validation with the current way overdue customer items are reviewed. This keeps the accounting follow-up workflow reliable while removing outdated supporting pieces that are no longer used.
Original PR description
Current behavior before PR: - The test_journal_items_action_domain_filters_partner_posted_entries test was calling action_open_overdue_entries on the partner. - It checked overdue invoices by…
Current behavior before PR: - The test_journal_items_action_domain_filters_partner_posted_entries test was calling action_open_overdue_entries on the partner. - It checked overdue invoices by searching moves with the returned domain. Desired behavior after PR is merged: - The test now calls the new action action_open_partner_followup_journal_items. - It searches for account.move.line records using the action domain. - It validates the related invoices via line_ids instead of directly searching moves. - Removes redundant code. Changes implemented: - Replaced action_open_overdue_entries with action_open_partner_followup_journal_items. - Replaced search on account.move with search on account.move.line. - Assertion updated to check the invoices line ids are equal to move_lines.ids. - Removed view_followup_invoice_list custom view and action_open_overdue_entries which no longer used - Renamed test_overdue_invoices_action_domain_includes_children_partners testcase - to test_journal_items_action_domain_includes_children_partners and updated its docstring. related commit-[75533f4](https://github.com/odoo/enterprise/commit/75533f4808f2aa52f70a12dba8829caef44bf1b7) related pr-https://github.com/odoo/upgrade/pull/8470
The currency rate update logic can now use a configurable system setting for the proxy URL when working with Banxico and Bank of Thailand services. This makes development and testing easier without changing normal business workflows.
Original PR description
Follow what was done for xe.com and update the logic for banxico and bot to allow setting the iap proxy url using a system parameter, to ease testing during development.
French companies can now choose the correct ROF type, such as TVA1, TVA2, or TVA3, when preparing VAT declarations. This helps prevent VAT return rejections caused by using an incorrect default ROF type.
Original PR description
By default, most French companies use ROF type TVA1 for VAT declarations, but some require TVA2, TVA3 etc. Using the wrong ROF leads to automatic rejection of the VAT return. In this commit: --- - Add a new field `l10n_fr_rof_type` to select the ROF type (TVA1, TVA2, TVA3...), with TVA1 as the default. - The selected ROF type is now dynamically used when generating VAT declaration EDI files. --- task-4963376
The VoIP softphone demo mode label is now more descriptive and clickable, helping users understand where to configure providers. Clicking it takes users directly to the provider list, with an added tooltip for extra guidance.
Original PR description
This commit enhance the UX of the "Demo Mode" title in softphone by making it clickable and descriptive. When clicked, it leads to the providers' list. A tooltip was added to the button as well. Task-5108061
When users upload XML bills from bank reconciliation, the system now automatically activates the bill currency if it was inactive. This removes a manual interruption and helps users complete bill uploads faster.
Original PR description
Before: - When the user uploads an XML file from the bank reconciliation widget using 'Upload Bills' button and a currency of that bill is not active, then we ask the user to activate that currency manually. - Since users know the currency of Bill at the moment, we should directly activate the currency. After: - Now we activate the currency of Bill directly if it is not active, without asking to the user. Impact: - Improves user experience by not manually activating the currency of the bill. - Save users' time when uploading Bills in the bank reconciliation line. Task-5108103 Forward-Port-Of: odoo/enterprise#95513
Manufacturing planners now get a smoother MPS workflow for indirect components, which are set up for manual replenishment instead of requiring extra configuration. The replenishment row tooltip is clearer, helping users understand planning color indicators without prior system knowledge.
Original PR description
With this commit:
-----------------
- MPS Replenishment Trigger:
- Set ‘Manual’ as the replenishment trigger in MPS when the component is
marked as indirect, since such components—added via BoM—defaulted to ‘Never’
and should instead allow manual planning as they represent indirect demand.
- This improvement removes that extra step, speeding up the workflow and
improving overall UX.
- MPS Replenishment Tooltip:
- Improved tooltip text to clearly explain the color codes in the
replenishment row. This improves usability and removes the need for prior
knowledge of Odoo’s MPS color semantics.
task-4868885
Forward-Port-Of: odoo/enterprise#88724The payroll dashboard now uses the term “Pay Runs” instead of “Batches” where relevant. This makes the interface clearer and better aligned with common payroll terminology, helping users understand payroll processing steps more easily.
Original PR description
To improve clarity and align with payroll terminology, all the instances of the word “Batches” has been replaced with “Pay Runs” on the dashboard Task ID: 5075517