Tuesday, July 8, 2025
29 changes · saas-18.4
Enhancements to existing features
The accounting journal field previously labeled "Private Part Account" is now labeled "Private Share Account". This improves clarity for English-speaking users and avoids a misleading phrase in accounting configuration screens.
Original PR description
Change label of `non_deductible_account_id` field on `account.journal` from `Private Part Account` to `Private Share Account` as private part means something else in english. task-4868244 Forward-Port-Of: odoo/odoo#217289
The website builder sidebar has been reorganized so the most commonly used options appear higher up. This makes page editing faster and easier for users by reducing the time spent searching for frequent settings.
Original PR description
This PR reorders some sidebar options from the website builder. The goal of this reordering is to put the most used options at the top of the sidebar. task-4791026
Printer labels no longer repeat the USB connection type when that information is already shown elsewhere in the interface. This makes device information clearer and avoids redundant wording for users managing connected hardware.
Original PR description
Now that the frontend is showing the device connection type, we can remove this prefix since it is showing duplicate information. task-4922608 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217770
The Spanish SII electronic invoicing test certificate has been renewed to keep integrations with the Spanish tax authority working as expected. This helps maintain reliable demo and testing flows for Spanish localization without changing day-to-day user workflows.
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 Forward-Port-Of: odoo/odoo#217341
This update cleans up the Live Chat code by reducing duplication and removing unused parts. It should make future maintenance easier without changing day-to-day user behavior.
Original PR description
Comments applied from the previous PR. 1. Reduce duplicate code in im_livechat; 2. Remove unused code in im_livechat; follow up of https://github.com/odoo/odoo/pull/217584 https://github.com/odoo/enterprise/pull/89648 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
IoT devices are now shown with a clearer layout in formatted selection lists, such as POS configuration dropdowns. Instead of combining the IoT box and device name in one label, the device name, connection, and IoT box are displayed separately so users can identify the right device more easily.
Original PR description
Before this commit, IoT device names would dislplay in the format '[iotbox] Device Name'. After this commit, in environments with formatting enabled (such as the device dropdown when configuring in POS), we show the name with the following format: Device Name Connection IoT box Where Connection and IoT box are using muted text. task-4922608  Forward-Port-Of: odoo/enterprise#89664
The IoT app now shows each device's connection status directly in the device list. This makes it easier for users to quickly spot disconnected or unavailable devices without opening each device record.
Original PR description
This PR adds the connection status to the device list view in the iot app Forward-Port-Of: odoo/enterprise#89632
The IoT device search view no longer groups devices by IoT Box by default, making searches simpler. Device lists on IoT Box forms are now ordered to show connected devices first and include connection status, helping users identify device availability faster.
Original PR description
We previously added an unnecessary `group by` IoT Box in the IoT device search view. It is now removed.
We also sorted devices by connection desc and name in the iot device list view in the iot box form view,
and displayed the connected/disconnected status.
Tasks: 4922609, 4922638, 4922623
Forward-Port-Of: odoo/enterprise#89601Resolved issues and error corrections
Copying a manufacturing bill of materials now correctly links by-products to the copied operation instead of the original one. This prevents confusion or incorrect production setup when teams duplicate manufacturing recipes that include operations and by-products.
Original PR description
### Issue: Copying a bom with an operation will not reassign the copied operation to the by product lines. ### Steps to reproduce: - In the settings enable operations and by-products - Create a bom with an operation op1 and a by product produced in op1 - Copy the bom #### > The copied by product line refer to the operation of the original bom this can be checked by archiving the copied operation which should erase its link with the copied by product line but will not ### Cause of the issue: When a bom is copied, the new operation is reassigned to the new bom lines by these lines: https://github.com/odoo/odoo/blob/9cb4230a6b2252243a8e0546a1a8f5bc52e74009/addons/mrp/models/mrp_bom.py#L230-L247 However, nothing is made for the by product lines. opw-4788252 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217319 Forward-Port-Of: odoo/odoo#216609
Code cleanup and technical improvements
This updates several website-related areas to use the newer shared scrolling component instead of an older deprecated one. The change supports ongoing platform maintenance and should not noticeably alter how users interact with surveys, website pages, blogs, events, or forums.
Original PR description
*: survey, website, website_blog, website_event, website_forum. Updates imports to use the new html_builder scrollTo method instead of the deprecated web_editor one. Part of the [html_builder refactoring] [html_builder refactoring]: https://github.com/odoo/odoo/commit/9fe45e2b7ddb Related to task-4367641
This update applies follow-up corrections requested after an earlier merge, focused on demo data used in accounting and Belgian localization. It helps keep sample setups accurate and consistent for testing, demonstrations, and onboarding scenarios.
Original PR description
After [this PR](https://github.com/odoo/odoo/pull/209628) was merged, a few last comments were made, this commit includes the changes suggested in those comments. --- task-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216815
This fix prevents a website image hover effect from being destroyed more than once. It helps avoid unnecessary errors during page interactions, improving reliability for visitors and editors.
Original PR description
In case the interaction is destroyed, we should not try to destroy it again. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The settings help text for intercompany rules was corrected to say that vendor bills are created, not invoices. This avoids misleading users when configuring intercompany transactions.
Original PR description
This commit: https://github.com/odoo/odoo/commit/e2a0c6edb8c9c1fd0aba2f92f9187678e68971a9 change a help in the intercompany rules. The help sentence is wrong since we don't create invoice but bills. task-4907810 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217275
This fixes an upgrade issue where empty text filter defaults in spreadsheets were treated as actual filter values. After the change, empty defaults are correctly recognized as no default value, preventing unintended filters after upgrading.
Original PR description
The upgrade script from saas-18.3 to saas-18.4 converting the default value of text filter is wrong. It didn't account for the empty string which should be considered as "no default value" `defaultValue: "hello"` --> `defaultValue: ["hello"]` correct `defaultValue: ""` --> `defaultValue: [""]` not correct Task: 4926326 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an automated test for website color customization so it waits correctly for background updates to finish. It helps keep website editing quality checks stable and reduces false failures during release validation.
Original PR description
Waiting an animationFrame after each click (fix done in [1]) was not sufficient, we actually need to wait for 2 or 3 separate ticks depending on the case, because `customizeWebsiteColors` calls between 2 and 3 debounced functions (`debouncedSCSSColorsCusto`, possibly `debouncedSCSSVariablesCusto`, and finally `reloadBundles`) with a 0-ms delay. [1]: https://github.com/odoo/odoo/commit/cbcd1b142e2a1c6a245fa8a993ecc8ebd72eece4 runbot-229604 runbot-229686
A typo in the IoT driver update process caused a configuration update to fail, which could block git checkout during updates. This fix corrects the issue so the update process can complete normally.
Original PR description
Introduced in odoo/odoo#213177. A simple typo meant the `update_conf` method was being called with a set instead of a dict, leading to an error being thrown and preventing the git checkout. This commit fixes the typo. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215397 Forward-Port-Of: odoo/odoo#215230
This fixes an automated website donation test so it handles the payment confirmation redirect as a single step. The change helps prevent false test failures and keeps the donation payment flow validation stable.
Original PR description
In this commit, we fix the donation_snippet_use tour. At the end of the tour, when you click on submit donation, you are redirected to a page "Your payment has been processed." From this page, you are then redirected to a page with "Thank you". This intermediate redirection page can be a problem if there are several steps that concern it because we do not know when the redirection will be triggered (in the first or the second step?) Therefore, it is essential to have only one step for intermediate redirections. 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 Forward-Port-Of: odoo/odoo#217448 Forward-Port-Of: odoo/odoo#216558
This update fixes an error that occurred when using the website editor to toggle Suggested Accessories. It updates the affected website sales views to match the newer template structure, so editors can manage these options without interruptions.
Original PR description
Description of the issue/feature this PR addresses: This issue has happened because of the standard change in the module. Current behavior before PR: Traceback click on Suggested Accessories, the…
Description of the issue/feature this PR addresses: This issue has happened because of the standard change in the module. Current behavior before PR: Traceback click on Suggested Accessories, the toggle button through the website editor. in v18.2 the module [website_event_sale](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_event_sale/views/website_sale_templates.xml#L24) and [website_sale_loyalty](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_sale_loyalty/views/website_sale_templates.xml#L128) is inherit the cart_line and target the [node](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_sale/views/templates.xml#L2087) is available in the view. But in version 18.3 this node is move to other [template](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale/views/templates.xml#L2341) that's why the node is not find. Desired behavior after PR is merged: After the change i target the new [template](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale/views/templates.xml#L2435) so the node is now find. Issued PR-190720 [OPW- 4864959](https://www.odoo.com/odoo/project/70/tasks/4864959?debug=1) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215180
This fixes an issue in the website editor where the overlay used to adjust a background image could appear at the wrong size in some page sections. The change makes the editing controls display correctly, helping users position background images without broken overlays or misplaced tooltips.
Original PR description
Before this commit in some snippets background overlay wouldn't have proper height because of the parent elements' height. This commit overrides it with `!important`. To reproduce the issue: - open website and start editing - drop columns snippet, add background image to one of the columns, click on it - Click on the background position option to change it(the one with a crosshair icon) - the overlay isn't shown properly, which also breaks the tooltip position Commit follows [the html_builder refactoring]. Copy of https://github.com/odoo/odoo/pull/215377 [the html_builder refactoring]: odoo/odoo@9fe45e2b7ddb Related to task-4367641
Users creating a time off allocation can now remove the validity period without immediately triggering a system error. The form will instead show the normal required-field warning when saved, making the process clearer and preventing an unnecessary crash.
Original PR description
An error occurs if the Validity Period is removed while creating a new allocation. Steps to reproduce: --- - Install the `hr_holidays` module - Time Off > My Time > My Allocation - Open New and remove the `Validity Period` Traceback: --- `AttributeError: 'bool' object has no attribute 'strftime'` This commit ensures that changing the date won't cause an error, but instead will display a warning upon saving the form, as it is a required field. sentry-6709097746 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216015
Sale orders created from CRM no longer carry the CRM lead's default salesperson into related records during confirmation. This prevents quality checks from being assigned to the wrong user, improving accuracy for teams using sales, CRM, and quality workflows.
Original PR description
When creating a sale order through crm, default_user_id was being passed through the context. This was causing issues when confirming the sale orders when quality checks were enabled as the user on the quality checks would be set as the user from the CRM lead. Removing this from the context before confirming and thus creating any linked records avoids this issue. opw-4658850 Forward-Port-Of: odoo/odoo#215499
This fix makes automated checks for live chat chatbot step ordering more reliable under heavy system load. It ensures the step text is fully saved before continuing, reducing false test failures without changing business functionality.
Original PR description
This commit fixes the `test_chatbot_steps_sequence_ui` and the `test_chatbot_steps_sequence_with_move_ui` tours. Those tours create chat bot steps to check their order. To do so, they edit the textarea and click on the save button. However, under high load, the button can be clicked before the textarea is updated. When this occurs, the validation fails and the step is not created. This commit fixes the issue by waiting for the textarea content to update before clicking on the save button. fixes runbot-228498 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 adjusts an internal performance test so it matches the current expected behavior in the Discuss test suite. It helps keep automated checks accurate and reduces false alarms for developers, with no direct impact on end users.
Original PR description
Changing the `channel _to_store_defaults` query count to the correct value. This increase is related to #216031.
When creating a refund, users will no longer see unrelated receipt or move types in the selector. This keeps the refund process clearer and helps prevent accidental selection of an incorrect document type.
Original PR description
Currently, when creating a refund, the move type selector shows all possible move_type out there. We obviously don't want that... Solution: show only the current move type for refunds. task-4926014 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update prevents translation-related errors that could occur when sharing referral links or working with loan records. It changes how translated text is prepared so the system can reliably access the information it needs, improving stability for affected workflows.
Original PR description
Issue: Prior to this commit, a translation issue occurred due to the use of a list comprehension. The _get_translation_source function attempts to scan the local variables, but in the context of a list comprehension, only variables defined within the comprehension are accessible. As a result, variables like uuid and cursor were not available to the _get_lang function, ultimately leading to an error. Fix: Replaced the list comprehension with a standard for loop to ensure proper access to local variables. runbot-98198 Forward-Port-Of: odoo/enterprise#88632
The intercompany rules settings label for creating invoices was renamed to make its purpose easier to understand. This reduces confusion for users configuring automated transactions between companies.
Original PR description
This commit: https://github.com/odoo/enterprise/commit/4b57698670a7762bb206ccb24417d63c8edc1a46 change the ux of the intercompany rules, but the naming is confusing for users. task-4907810 Forward-Port-Of: odoo/enterprise#89368
Studio now closes the New Model dialog immediately after a user confirms it, instead of leaving it visible while waiting for the server. This removes a brief flicker and makes creating models feel smoother and more responsive.
Original PR description
This commit fixes a minor UX issue where the "New Model" dialog in Studio would remain visible briefly after confirmation, causing a flicker while waiting for the server response. The dialog now closes immediately upon confirmation, providing a smoother user experience. task-4809049 Forward-Port-Of: odoo/enterprise#88964
Installing Field Service with Sales no longer fails if the default Services product category was previously deleted. The setup now skips the missing category instead of stopping with an error, helping users complete installation without manual repair.
Original PR description
Currently a ParseError is arising when the user installs the `industry_fsm_sale` module after deleting the `Services` in Product Categories/Configuration. Steps to reproduce: --- - Install…
Currently a ParseError is arising when the user installs the `industry_fsm_sale` module after deleting the `Services` in Product Categories/Configuration.
Steps to reproduce:
---
- Install `Invoicing` application (without demo data).
- Invoicing > Configuration > Product Categories > Delete `Services`
- Now install `industry_fsm_sale` module
Traceback:
---
```py
ValueError: External ID not found in the system: product.product_category_services
ParseError
while parsing /home/odoo/src/enterprise/saas-18.3/industry_fsm_sale/data/industry_fsm_data.xml:5, somewhere inside <record id="field_service_product" model="product.product">
<field name="name">Field Service</field>
<field name="project_id" search="[('id', '=?', ref('industry_fsm.fsm_project', raise_if_not_found=False)), ('is_fsm', '=', True)]"/>
<field name="service_tracking">task_global_project</field>
<field name="type">service</field>
<field name="categ_id" ref="product.product_category_services"/>
```
The error occurs because the user deleted `Services` in Product Categories, and then tried to install the other module.
This commit resolves the error by providing a False value for the field if the product category is missing.
sentry-6377659355
Forward-Port-Of: odoo/enterprise#89510The live chat helpdesk integration was cleaned up by removing unused parts and reducing duplicated code. This improves maintainability and lowers the risk of future issues, without introducing expected changes for end users.
Original PR description
Comments applied from the previous PR. 1. Reduce duplicate code in im_livechat; 2. Remove unused code in im_livechat; follow up of https://github.com/odoo/enterprise/pull/89573