Tuesday, June 24, 2025
8 changes · saas-18.4
Enhancements to existing features
The website builder interface has been polished to make controls clearer and easier to use. Dropdowns, selection fields, checkboxes, lists, and overlay action buttons now have more consistent styling and better focus behavior, improving day-to-day editing comfort.
Original PR description
### [IMP] html_builder, website: enhance builder UI Enhancements: - Gap added between image format tags and the select arrow - Fix focus-visible on BuilderCheckbox - Use global builder styles for…
### [IMP] html_builder, website: enhance builder UI Enhancements: - Gap added between image format tags and the select arrow - Fix focus-visible on BuilderCheckbox - Use global builder styles for BuilderList's UI | Before | After | | --- | --- | |  |  | |  |  | |  |  | task-4879833 ### [IMP] html_builder: style BuilderSelect dropdown | Before | After | | --- | --- | |  |  | task-4879833 ### [IMP] html_builder, web: style Many2X builder component | Before | After | | --- | --- | |  |  | task-4879833
Resolved issues and error corrections
This fixes an issue in the website editor on Firefox where the text editing toolbar disappeared when users tried to change text color or background. Users can now format text colors reliably without losing the toolbar during editing.
Original PR description
problem: In the website editor, while editing text, it is impossible to change the text color or text background, only on Firefox. On Firefox, the DomListener was not focusing the right element, instead it was focusing the html document.
Features or functions removed from Odoo
The tree editor no longer lets users create date or time conditions based on individual parts such as year, month, hour, or day. This simplifies the current condition-building experience while the team prepares a better way to support useful date-based filtering in the future.
Original PR description
We remove the possibility to create conditions based on year_number, hour_number,... in the tree editor. Future work will add other ways to construct interesting conditions based on date/datetime fields.
Duplicated Profit and Loss reports no longer fail due to internal label changes during copying. This prevents errors when users create and open copied accounting reports, supporting reliable financial reporting workflows.
Original PR description
**Issue** Duplicated Profit and Loss reports fail to open and raise an "invalid operation" error when accessed. **Steps to Reproduce** 1. Install the Accounting module and French localization. 2. Go…
**Issue** Duplicated Profit and Loss reports fail to open and raise an "invalid operation" error when accessed. **Steps to Reproduce** 1. Install the Accounting module and French localization. 2. Go to Accounting > Configuration > Accounting > Accounting Reports. 3. Duplicate the "Profit and Loss (2024)" report. 4. Navigate to Accounting > Reporting > Profit and Loss. 5. Attempt to open the duplicated report. 6. An error occurs. **Root Cause** During duplication, the label field of expressions is altered to include a " (copy)" suffix. Some formula expressions rely on exact label matches (e.g., i_1_2024.balance), so when "balance" becomes "balance (copy)", the lookup fails. This mismatch causes a KeyError when resolving subformulas like line_code.balance, breaking the report evaluation. **Fix** Prevent the duplication process from altering the label of expressions. There is no functional need to add " (copy)" to these internal labels, as they are not user-facing and must remain stable for formula resolution to work. Opw-4826749 X-original-commit: de68b1d3a1c321173ffa90018abc2bd971eedf0a 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 fixes cases where applying, changing, or removing text highlights left unnecessary hidden markup behind. Website and editor content now stays cleaner and more consistent, reducing formatting glitches and making future edits more reliable.
Original PR description
This PR has a few commits to clean up the DOM when the user performs operations on highlights. Some cases were not handled, which meant that similar highlights were not merged leading to a messy DOM.…
This PR has a few commits to clean up the DOM when the user performs operations on highlights. Some cases were not handled, which meant that similar highlights were not merged leading to a messy DOM. **[FIX] website: fix similar highlight merging** Steps to reproduce: Go to the website builder in edit mode Write "test1Test2" Select "test1" and put an underline highlight Select "Test2" and put another highlight Select "Test2" and change the highlight to underline Expected Behaviour test1 and Test2 are merged into the same highlight Current Behaviour test1 and Test2 are not merged into the same highlight. **[FIX] html_editor: ensure similar adjacent node are merged** Steps to reproduce: Go to a project task Type "test1 test2" in the editor Color "test1" in red Color " test2" in orange Color " test2" in red Current behaviour: "test1" and " test2" are not merged into the same <font> node. Expected behaviour: "test1" and "test2" are merged in the same <font> node. Technical explanation: When applying the color to "<font ...> test2", the common ancestor mutation node is the font node itself. The normalize and then mergeAdjacentInlines methods are therefore called with this node as the root. The problem is that mergeAdjacentInlines does not check if the root should be merged with adjacent nodes. While it is not a visual bug for colors, it matters for highlights who's impacted by the same bug. e.g. Two unmerged "circle" highlight is not visually the same than one merged "circle" highlight. **[FIX] website: avoid empty node when removing highlight format** Steps to reproduce: Go to the website builder in edit mode Select a text Put a highlight with the highlight button in the toolbar Select the end of the highlight Click on "Remove Format" in the toolbar (eraser button) Current behaviour: The highlight is removed but an empty highlight node is created. It's not visible but it pollutes the DOM. Expected behaviour: The highlight is removed without pollution in the DOM.
Live chat channels now use the same fixed 120-second buffer time instead of allowing each channel to set its own value. This makes operator assignment timing more consistent and removes a configuration option that could lead to uneven behavior across channels.
Original PR description
This PR removes the `buffer time` field from live chat channels and hardcodes the buffer time to 120 seconds for all channels. Task-4892243 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes several problems in website translation mode, including incorrect tab availability after changing languages and missing text highlighting. It also reduces unnecessary save requests when multiple translated elements belong together, making translation editing more reliable and efficient.
Original PR description
[FIX] website: correctly evaluates translation mode Steps to reproduce: - On a website with "French" installed, go in translate mode. - Discard. - Change the language of the website to "English". -…
[FIX] website: correctly evaluates translation mode Steps to reproduce: - On a website with "French" installed, go in translate mode. - Discard. - Change the language of the website to "English". - Enter in translate mode. - The "Blocks" and "Theme" tabs are not selectable as the system thinks it is in translate mode. The problem is that `this.translation` in the `WebsiteBuilder` is not updated when the language of the website is changed. To solve the problem, it has been transformed into a getter so that it is evaluated at run time. Related to task-4367641 ---------------------------------------------------------------------------------------------------------------------------------------------------------- [FIX] website: activate HighlightPlugin in translate mode Since the [website refactoring], it was not possible to highlight text in translate mode. This commit fixes the issue by activating the `HighlightPlugin` plugin in translate mode. [website refactoring]: https://github.com/odoo/odoo/commit/9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 Related to task-4367641 ---------------------------------------------------------------------------------------------------------------------------------------------------------- [FIX] html_builder, website: group elements to save if possible Steps to reproduce: - On a website with "French" installed, drop a "Text-Image" snippet. - In translate mode, translate the title and the last paragraph. - Save -> Two calls to the `/web_editor/field/translation/update` routes are done while only once should have been done. Since the [website refactoring], elements were not grouped together before being saved. The consequence is that extra rpc are made at the save step. This commit restores the old behavior and groups elements that are from the same field of the same record (if they are not part of view or the system is in translate mode). [website refactoring]: https://github.com/odoo/odoo/commit/9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 Related to task-4367641 ---------------------------------------------------------------------------------------------------------------------------------------------------------- [IMP] html_builder, *: make html_builder agnostic of the translate mode *: website The goal of this commit is to make `html_builder` agnostic of the translate mode (website specific feature). Related to task-4367641
The AI assistant features now work in the updated website editor without causing errors. This prevents interruptions for users creating or editing website content with AI support.
Original PR description
In this commit we fix the ai functionality that was breaking inside the new website editor. Recently, the website editor was changed to be based on the html editor that already existed in the backend. That meant that all the back-end plugins which existed for the html editor now worked for the website editor as well. The chatgpt_plugin had not been updated to support this change. This commit made the necessary changes for the website editor to use the chatgpt_plugin without getting a traceback.