Daily updates from Odoo
Saturday, July 19, 2025
13 changes · master
Enhancements to existing features
Helpdesk live chat now relies on the existing user or guest name when starting a session, rather than passing a separate anonymous name. This simplifies the session setup flow and should make live chat behavior easier to maintain without changing the core customer experience.
Original PR description
This commit removes the anonymous_name param from the get_session route and uses the user or guest name in the relevant flows instead. It also cleans up the process of getting livechat channel values when getting the session. part of task-4675719 Related to : odoo/odoo#212150
The Planning app now handles hidden resource relationship fields more efficiently to reduce memory usage. This supports better performance while preserving the information needed by the visible planning resource fields.
Original PR description
This commit is the counterpart of odoo/odoo#219598 where we force a limit of 1 on invisible x2many fields. Custom code can thus no longer safely read `records` to extract information like the list of ids in the relation. task-4921236
IoT box forms now show the box identifier to all users, not only in debug mode. This makes it easier to tell different IoT boxes apart while still allowing users to rename each record as needed.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/219589 Now that the IoT box hostname is no longer used, we will instead show the identifier to the user (without debug mode) so that they have a way of distinguishing IoT boxes. They can still rename the IoT box record to whatever they wish. task-4948953
Users can now open or close the VoIP softphone using a keyboard shortcut or the command palette. This makes call handling faster and easier, especially for users who rely on VoIP throughout the day.
Original PR description
This commit adds a data hotkey and command palette entry for toggling the VoIP Softphone. Previously, there was no shortcut or command to toggle the VoIP Softphone. Task - 4936059
The IoT app no longer shows a warning that an IoT Box has no linked subscription. Since certificates are now provided and renewed automatically at no cost, this warning was outdated and could confuse users.
Original PR description
As we now provide and renew certificates automatically and for free the "no subscription linked to your IoT Box" warning toaster makes no sense. This commit removes it. Forward-Port-Of: odoo/enterprise#90432
Resolved issues and error corrections
The website rental sales test was adjusted to avoid an unreliable date picker interaction while checking rental duration changes. This helps keep automated quality checks stable so future updates can be validated more reliably without affecting customer-facing features.
Original PR description
remove click on datepicker in the wait step build-error-213702 Forward-Port-Of: odoo/enterprise#90355 Forward-Port-Of: odoo/enterprise#89873
The employee form now shows the Australian W3 reporting option again. This helps payroll teams keep employee reporting details accurate without needing a workaround.
Original PR description
"l10n_au_report_to_w3" was missing from the employee view. Forward-Port-Of: odoo/enterprise#89929
Additional automated tests were added for the Planning calendar to help ensure batch creation and deletion of records works as expected. This reduces the risk of regressions in scheduling workflows after recent calendar updates.
Original PR description
This commit's purpose is to add some testing for the task-4485911. This task implemented the use of the new framework tool that allows to create and delete records in batch in the calendar view. Some js customisation was needed in order to better fit our use case. Due to a short timing the testing is done in this followup commit instead of the initial task. task-4891810 target : saas-18.4 Forward-Port-Of: odoo/enterprise#89761
The AI Composer now hides mention and channel suggestions that did not work in that context. This avoids confusing options for users and prevents errors when slash commands are used in AI Composer messages.
Original PR description
* = test_discuss_full_enterprise Disabled all @ (mentions) and # (channel) suggestions in ai_composer to prevent non-functional options. also prevents error when using / commands in ai_composer type of the channels. task-4918914 Forward-Port-Of: odoo/enterprise#89415
This fixes an issue where some marketing website sale snippets used outdated image shape identifiers, causing an error when users tried to transform those shapes. The change updates the identifiers so shape editing works reliably in affected snippets.
Original PR description
**Problem** Some snippets contain shapes whose ID starts with `web_editor` instead of `html_builder`. These IDs are not listed in `imageShapeDefinitions`, and this generates a traceback when trying to apply shape tranformations. **How to reproduce** 1. Insert the snippet `s_images_constellation` 2. Click on the bottom left image having the "Double Pill" shape 3. Click on any "Transform" button under the "Shape" row in the "Image" section 4. Problem: traceback pops up **Solution** This commit replaces `web_editor` with `html_builder`. See also the linked community PR [1] and the migration script [2]. [1]: https://github.com/odoo/odoo/pull/218837 [2]: https://github.com/odoo/upgrade/pull/8076 task-4367641
Code cleanup and technical improvements
The pull request updates the way Odoo stores and reuses data from background server requests, making the cache more flexible and easier to maintain. This should help keep screens responsive while reducing unnecessary data loading, with no expected change to everyday workflows.
Original PR description
This commit refactors and improves the RPC cache API.
- Changes the API for RPC and ORM from `cached` to `cache`;
- Renames and relocates the class `PersistentCache` to `RPCCache`. This class
contains all the relevant logic for the RPC cache (disk and ram);
- Changes the name of the parameter `onFinish` to `callback`;
- Allows the `RPCCache` to be used only with RAM cache (non-persistent);
- Introduces two parameters :
* `type`: to indicate whether the cache is `disk` or `ram` only;
* `update`: to indicate the frequency of the RPC calls:
- `once`: the RPC will be called once and store the result on the
ram. If the cache is disk, the IndexedDB value will return
the cached value, after which the RPC will be called;
- `always`: The RPC will be called each time.
task-id : 4935956The internal folder layout for website tour-related files has been reorganized to better match the main web module structure. This makes the codebase easier for developers to navigate and maintain, with no expected change for end users.
Original PR description
Currently, all files related to the tour system are located in a folder named tour_service. To make the file structure more consistent in the web_tour addon, we've created a structure similar to what's in /web.
Unused spreadsheet templates were removed, and version history files were reorganized into a dedicated folder. This is an internal cleanup that makes the spreadsheet edition code easier to maintain without changing day-to-day user behavior.
Original PR description
This commit cleans templates that are no longer used and also moves all version history related file into their own folder.