Daily updates from Odoo
Friday, May 2, 2025
11 changes · master
Enhancements to existing features
Odoo adds a new communication service for IoT Boxes that first tries the usual longpolling connection and falls back to websockets if needed. This improves reliability for actions such as printing and point-of-sale hardware communication, while allowing the rollout to happen gradually.
Original PR description
This commit introduces a new `iot_http` service that allows performing an IoT action using longpolling then falling back sending a websocket message if the longpolling request fails. This commit does not adapt all action call to use the service, nor removes the `iot_longpolling` service, in order to adapt progressively. Community PR: odoo/odoo#207994 Task: 4283647
IoT Box cards now show more helpful details, including connected device counts, pairing dates, and related Point of Sale configurations. The pairing flow has also been reorganized and reworded to make setup easier and help users identify the right IoT Box faster.
Original PR description
We added back the amount of devices connected to an IoT Box on the IoT Box card. We also added the pairing date on the card, for a user to spot faster an IoT Box. If an IoT Box is linked to a PoS, the PoS configs where devices are linked are now listed on the IoT Box cards. Some elements have been moved, and some sentences have been rephrased on the wizards to pair an IoT Box. Task: 4585446
The self-order kiosk IoT integration now uses device driver actions instead of direct remote calls. This should make kiosk setup and device interactions more consistent and easier to maintain, with limited visible change for day-to-day users.
Original PR description
Community PR: [https://github.com/odoo/odoo/pull/192652](https://github.com/odoo/odoo/pull/192652)
Spreadsheet auto-complete has been updated to work better with the latest spreadsheet changes, especially for relational fields. This improves consistency when users search or select spreadsheet-related data and keeps related sales spreadsheet tests aligned.
Original PR description
See https://github.com/odoo/odoo/pull/208294
The Gantt view now makes closed tasks less prominent and shows dependency lines from closed tasks as dashed or dotted. This helps users quickly distinguish completed work from active tasks while still understanding how tasks are connected.
Original PR description
`* = project_enterprise` In this commit closed tasks in gantt view have lower opacity. When the source task in dependency is closed then resulting path is dashed/dotted. task-4645818
Spreadsheet users now get autocomplete suggestions when navigating related fields in list-based formulas, making it easier to build accurate spreadsheet references. The update improves usability across spreadsheet features and aligns related tests with the new asynchronous autocomplete behavior.
Frontdesk now automatically emails visitors when their selected host is unavailable due to time off or an archived host record. This helps visitors know who to contact instead, reducing confusion at check-in.
Original PR description
This PR includes a feature to automatically send a mail to the visitor, when a record is created if the hosts are on time off, the visitor will be notified by email that your host is unavailable you can contact to manager or responsible of frontdesk. Additionally, it will notify visitors when the host record is achieved. task-3790300
This update allows employees to have more than one active contract at the same time when those contracts do not depend on flexible schedules, planning, or attendance tracking. It helps support valid multi-contract situations while keeping stricter controls where scheduling or attendance conflicts could occur.
Original PR description
This PR refines the contract constraints by allowing multiple contracts to be in a running state simultaneously. An employee can have multiple active contracts only if the contracts are not flexible, planning-based, or attendance-based. task-4374321
Resolved issues and error corrections
Salary offer configurations now correctly use the default choices for benefits when no starting value was entered. This ensures candidates and recruiters see accurate salary calculations as soon as an offer is opened or adjusted.
Original PR description
**Steps to Reproduce:** 1. Create a new contract template with some benefits using various display types (slider, dropdown, dropdown-group). 2. Go to the Recruitment app, create an application linked…
**Steps to Reproduce:** 1. Create a new contract template with some benefits using various display types (slider, dropdown, dropdown-group). 2. Go to the Recruitment app, create an application linked to the contract template, and generate an offer. **Cause:** 1. We were filling the state based only on the initial_values. If a field's initial value was not set or was 0, we set the state to 0. If the field type was a dropdown and no initial value was set, we also set it to 0. However, in a dropdown, the default selected value is always the first option. 2. Since the value was not set the salary configuration value was not updating on initial render. **Fix:** 1. To fix the issue, put condition where if the initial_values is not set -- In dropdown and dropdown-group: If initial_values is not set then we should select the first default selected value and do our computation. -- In slider(range): If the initial_values is not set then we should take the min slider value as a default value and do our computation. task-3856395
This update ensures stipend payroll calculations include the gross stipend amount when determining net salary. As a result, stipend payments should appear correctly in payroll reports and accounting outputs, improving accuracy for Indian payroll processing.
Original PR description
This PR includes the following updates: - Added the gross amount calculation to the net salary rule for the stipend salary structure. - Ensured that stipend amounts are included in reports and COA by updating the net salary rule logic. Task - 4668024
IoT Boxes are now identified by a stable device identifier instead of their network connection address. This prevents the same physical box from appearing twice when it switches between Ethernet and Wi-Fi, reducing confusion and cleanup for users.
Original PR description
IoT Boxes have both Ethernet and Wi-Fi interfaces, each with a unique MAC address. When connected via Ethernet, the database registers the Ethernet MAC. If the Ethernet cable is later unplugged and the device switches to Wi-Fi, the database treats it as a new device due to the different MAC address, resulting in duplicate records for the same physical device. This commit changes the identifier from the MAC address, to: - the motherboard uuid on windows, - the serial number on rpi. Community PR: [https://github.com/odoo/odoo/pull/207230](https://github.com/odoo/odoo/pull/207230) Task: 4592611