Daily updates from Odoo
Tuesday, July 22, 2025
14 changes
2 changes
Enhancements to existing features
The mail chatter now receives recipient field information as part of its standard mail data, avoiding extra background requests. This should make opening and updating chatter recipient information faster and reduce server calls without changing the visible workflow for users.
Original PR description
This PR removes `/mail/thread/recipients/fields` by embedding the value inside `/mail/data`. This removes up to 2 RPCs done inside chatter `onWillStart` and `updateRecipients`. PR enterprise: https://github.com/odoo/enterprise/pull/84661 Task-4685400 Forward-Port-Of: odoo/odoo#219345 Forward-Port-Of: odoo/odoo#208393
Web Studio was updated to stay compatible with recent changes in the messaging framework. This helps ensure form editor tests and related Studio behavior continue to work reliably after the underlying mail recipient fields endpoint was removed.
Original PR description
PR community: https://github.com/odoo/odoo/pull/208393 Task-4685400 Forward-Port-Of: odoo/enterprise#90375 Forward-Port-Of: odoo/enterprise#84661
1 change
Enhancements to existing features
The IoT integration no longer requires a database call to sign longpolling messages. This helps Point of Sale keep working when connectivity is limited or offline, reducing interruptions in store operations.
Original PR description
As it prevents the pos from working offline, we removed the call to the db to get a payload signature. Community PR: odoo/odoo#219865
6 changes
Enhancements to existing features
This update prevents Odoo from showing misleading warnings when internal processes update fields that users cannot edit directly. It reduces noise in automated workflows and test scenarios across several business apps without changing everyday user behavior.
Closed subscriptions can no longer be reopened through the portal when more than one billing period has been missed. Customers now see the amount due when reopening is allowed, or a message to contact their sales manager when payment is blocked.
Original PR description
Before, The portal allowed to reopen closed subscriptions without checking how many billing periods were overdue. - The amount to pay was not clearly displayed. - The number of missing periods was incorrectly computed (X instead of X + 1). After this commit, - Blocking the payment option when more than one billing period is overdue (i.e., next_invoice_date + 1 period < today). - Displays a message to contact the sales manager if multiple billing periods are missed. - The payable amount is displayed when reopening is allowed. task-4724154
The HR Documents app replaces the old action for sending an HR access link with a more flexible email-sending option. This lets users send different types of HR-related emails from documents, improving communication workflows for employee records.
Original PR description
With this commit; the old server action "send hr access link" is replaced by "send email" to allow the user to send differents kind of email. task-3927412
Brazilian product tax setup now supports Avalara exception codes for NCM classifications. This helps businesses handle special tax rules, reduced rates, and benefits more accurately when calculating taxes through Avalara.
Original PR description
Added support for Avalara's EX Citations to handle tax exceptions for products with special tax rules (e.g., ICMS, IPI, PIS, COFINS), such as reduced rates or special benefits. It simplifies tax setups and improves calculation flexibility. In this commit: --- - Added an `EX` field to the NCM model to capture Avalara's exception codes. - Integrated EX field with Avalara tax calculations. - Updated NCM form view to include the EX field. task-4929018
Account return handling now uses a single, clearer view that brings together the return status, related checks, and discussion history. VAT returns also include a new Lock step before submission, making it clearer when the period is finalized and required files are generated.
Original PR description
This commit improves the user flow for account returns. When selecting a return, the chatter no longer opens in a side panel. Instead, a new view is shown displaying: - The return card (with stages…
This commit improves the user flow for account returns. When selecting a return, the chatter no longer opens in a side panel. Instead, a new view is shown displaying: - The return card (with stages and buttons), - The related checks (as a kanban view), - And the chatter on the side. This unified view offers better clarity and usability. Since the checks are shown in a kanban view, users can benefit from filters and search functionality on them. Additionally, a new stage "Lock" has been added between "Review" and "Submit" in the VAT return flow. This clarifies to the user that the return period will be locked before submission. This new stage generates the closing move and files (xml, pdf, ...) which can then be used in the submission stage. For Belgian localization (l10n_be_reports), this change implies that prorata and potential restitution parameters are now requested at the "Lock" stage, as they're essential for generating the XML file. The return checks also see significant changes. They no longer use a dedicated form view or an associated chatter. The approval process of a check is now more robust. Both Bookkeepers and Accountants can validate a check. If a Bookkeeper approves a check, an Accountant can subsequently "supervise" it. Once supervised by an Accountant, that specific check can no longer be invalidated by a Bookkeeper. Finally, Bookkeepers can no longer reset a tax return. task-4891073
IoT boxes can now use a direct browser connection through WebRTC when the user is on the same local network. This can improve responsiveness for IoT interactions while keeping existing connection methods as a fallback when WebRTC is unavailable.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/218871 This PR adds a third connection type to the IoT box, using the WebRTC protocol. This commit handles the browser side of the connection. The…
Community PR: https://github.com/odoo/odoo/pull/218871 This PR adds a third connection type to the IoT box, using the WebRTC protocol. This commit handles the browser side of the connection. The WebRTC connection is added as a third connection type to the existing `iot_http` service, with the highest priority. The first time it is used, the connection will not be open yet so it will fail, but will begin establishing the connection in the background. The next time an IoT message is sent, it can use the WebRTC connection. We use the Browser APIs `RTCPeerConnection` and `RTCDataChannel` to setup the WebRTC connection to the IoT box. The flow is as follows: 1. Browser creates an `RTCPeerConnection` instance, generates an 'offer' and sends it to the IoT box via the existing WebSocket connection. 2. The IoT box receives this offer, and sends us back an 'answer', again via the WebSocket connection. 3. At this point the browser will automatically establish the connection to the IoT box. Any future calls to `iot_http` will use this connection (unless it fails, in which case it will fallback to the other connection types as before). This implementation is intentionally very simple. This means we do not use a STUN server, and so the connection will only work on the local network. This isn't a huge problem because in the case you are not on the same network as the IoT box, the WebSocket connection will still work and there would be little gain from using WebRTC. task-4894918
5 changes
Enhancements to existing features
Employees can now manually check in and check out from attendance kiosk mode when working across multiple companies. The kiosk also limits manual employee selection to the companies the user is allowed to access, making attendance tracking more usable and accurate in multi-company setups.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Manual check-in / check-out on attendance kiosk mode is not allowed Desired behavior after PR is merged: - Give possibility to user to make check-in / check-out on attendance kiosk mode - Display employees for allowed company on manual selection mode in the kiosk
Users can now resend modified vendor bills for Bizkaia Batuz reporting without cancelling and recreating the bill first. This simplifies corrections for customers and auditors while keeping the previous valid submission if the resend is rejected.
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
This update allows employees to manually check in and check out from attendance kiosk mode in multi-company setups. It also limits the employee list in manual selection mode to companies the user is allowed to access, making kiosk use clearer and safer for organizations with multiple companies.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Manual check-in / check-out on attendance kiosk mode is not allowed Desired behavior after PR is merged: - Give possibility to user to make check-in / check-out on attendance kiosk mode - Display employees for allowed company on manual selection mode in the kiosk --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change makes the contact form easier to adapt for different business needs, such as new contact categories or multi-level company structures. Existing behavior is intended to stay the same, while partners and implementers gain more flexibility to tailor how contacts, addresses, and parent-child relationships appear.
Original PR description
Description of the issue/feature this PR addresses: The current contact UI is partly inconsistent regarding the child/parent behavior and also it is not flexible extensible regarding new contact…
Description of the issue/feature this PR addresses: The current contact UI is partly inconsistent regarding the child/parent behavior and also it is not flexible extensible regarding new contact types like "Home office Contact", which is a "Contact" but has a different Address, and also an "Delivery Address" is in my opinion not an individual, but neigther a company. Therefore I suggest to de-couple the different topics and add new variables. These variables can be customized by overwriting the "_compute_contact_type" method according to the users needs. e.g. you could add a new individual type "home office contact" which is an individual, but also has an editable address. By changing can_be_child to True on Company contacts, you could create multi-level company structures. In this patch, the current behavior is not changed, but gives better possibilities for customizations. Current behavior before PR: The forms are hardly customizable regarding new contact types. Desired behavior after PR is merged: The UI can be more customizable and using is_address_readonly, is_individual, can_be_parent and can_be_child instead of linking the type directly. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The expiration message shown in the Enterprise home menu now better reflects the updated timing, where expiration is tied to a date 15 days after the next invoice date. This helps customers understand when action is needed and encourages earlier payment instead of waiting until the last minute.
Original PR description
Previously, the database expiration date was set to the same date as the expiration field, which is now defined as 15 days after the next invoice date. Issue: Users tend to wait until the last minute to pay. This improvement aims to better handle expiration timing and encourage timely payments. TaskID: 4384877