Daily updates from Odoo
Tuesday, June 24, 2025
9 changes · saas-18.4
Resolved issues and error corrections
Fixed an issue where text translated with AI on multilingual websites was inserted without the expected visual highlight. This helps editors clearly see the newly translated content after inserting it, reducing confusion during website editing.
Original PR description
The bundle didn't include a CSS file responsible for highlighting the text you selected, translated and inserted. **Steps to see the issue:** - Start editing website in a multilingual website environment - Drop any snippet that has text in it - Select text, expand the toolbar above, and select "Translate with AI" - Select language, wait for the translation and click Insert => Text is inserted, and the highlighting `div` is inserted above, but the style isn't applied. This commit follows [the html_builder refactoring]. [the html_builder refactoring]: odoo/odoo@9fe45e2b7ddb Related to task-4367641
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.
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
Fixes an issue where hovering the reset button after choosing countdown colors could make the countdown disappear and trigger an error. This keeps website editing stable when users customize countdown text, background, or progress bar colors.
Original PR description
Steps to reproduce the error: 1. Start editing 2. Drop countdown snippet 3. Click on any of the color options (Text Color or Progress Bar Color) 4. Hover the reset button As a result, we get an error and the countdown is missing. This PR follows [the html_builder refactoring]. [the html_builder refactoring]: odoo/odoo@9fe45e2b7ddb Related to task-4367641
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
This fixes an internal payroll screen issue where a pay run identifier was incorrectly treated as mandatory. Payroll actions can now work in cases where that detail is not available, reducing avoidable errors for users.
Original PR description
Before this commit, the payrunId prop definition said it is a required prop and an integer. However, that property is not really required. This commit changes the property definition to make that property optional. runbot-error-226806
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.