Daily updates from Odoo
Friday, June 27, 2025
14 changes · saas-18.4
Resolved issues and error corrections
This fix prevents the website builder from failing when a site has no social media links configured. Users can now edit social media snippets normally on new or minimal databases, avoiding an error that interrupted page editing.
Original PR description
Steps to reproduce: - On a database without demo data (and no social links set) - Open website builder in debug - Click on a social media snippet (by default there is one in footer) - Traceback: Validation of props failed because of a `false` value for input text The implementation for the options of snippet `s_social_media` (made in the website builder refactor) did not correctly handle the case where there is no record and the server returns the `false` value instead of a string. Website refactor: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641
The website editor now safely handles rapid repeated clicks on the remove slide button. This prevents a page crash and keeps carousel editing stable for users.
Original PR description
__Current behavior before commit:__ When pressing on Remove slide button twice rapidly the page crashes because it tries to access the closest `.carousel` element on a slide that has already been removed from the DOM. __Description of the fix:__ - Prevent calling `removeSlide` if the slide has already been removed from the DOM. - Add a test to check the remove slide behaviour.
This fix updates the live chat test mock server so it includes the same member type information used by live chat features. This helps prevent test gaps and reduces the risk of live chat behavior breaking when features depend on member roles or types.
Original PR description
Mock server was missing `livechat_member_type`, which can lead to issues when JS features are `livechat_member_type` aware.
This fix stops page navigation details from being sent with every server request, making views load more consistently after refreshes and improving cache reliability. The website editor was updated to use the correct navigation information directly, preserving expected behavior while avoiding unnecessary cache misses.
Original PR description
Before this commit, the action service added a `params` key into the context, typically when doing a `loadState`, i.e. loading the state from the url. The value of that key was the state of url (an…
Before this commit, the action service added a `params` key into the context, typically when doing a `loadState`, i.e. loading the state from the url. The value of that key was the state of url (an object with, amongs other things, a `actionStack` key, representing the current breadcrumbs, a typical JS thing). Adding this key was a mistake from day 1, as it was then sent to the python at each rpc. It means that the context sent to load a form view was different before and after a page reload, which doesn't make sense. Worse, it caused an issue with the newly introduced cache system [1], as we did a cache miss on reload, due to that altered context. To circumvent that, we manually removed that key in RelationalModel, before loading data. However, this caused an issue in website, as the code was actually using that `params` key mecanism: they relied on the fact that it was automatically added by the framework in some cases (F5), and built it themselves in other case (calls to doAction). This commit properly fixes the issue we tried to fix in [1]: we no longer add the `params` key when loading the state from the url. So we don't need to remove it later anymore. We obviously had to adapt a bit the code in website. We added some props to parameterize the WebsideBuilder action, and that component now also reads directly into the state of the router. We also introduced an `extractProps` mecanism (like we have for fields), to convert an action (especially its `params`) into props to provide to the client action itself. [1] https://www.odoo.com/odoo/project/133/tasks/4479845 task-4901018
When website editors add a Newsletter form but cancel the mailing list setup, the snippet is now fully removed as expected. This prevents leftover unpublished changes and keeps the website builder behavior clean and predictable.
Original PR description
*: website_mass_mailing This commit properly cancels the drop of a Newsletter snippet when no mailing list exists and the dialog is cancelled. Indeed, it was removing the element manually, instead of using the provided mechanism, i.e. returning `true` in the `onSnippetDropped` handler. This caused some uncommitted mutations to stay after cancelling the dialog. A notable change is that the entire snippet is now removed, instead of only the "Newsletter Form". It is more correct, as adding the form later would not result in the intended options behavior anyway. The CSS rules were also modified to make them more specific to the "Newsletter Form". The code was also cleaned a bit. task-4367641
The spreadsheet dashboard now handles cases where a linked record is missing or cannot be accessed, instead of crashing when users click it. This prevents disruptions in dashboards such as Logistics or Manufacturing and keeps users in their workflow.
Original PR description
Steps to reproduce: - Open the Logistics / Manufacturing dashboard - Click on OdooBot in the Top Responsible Section - Boom Task: 4894828 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 fix stabilizes an automated test for the image cropping feature in the HTML editor that was failing unpredictably. It helps keep quality checks reliable so future changes can be validated with fewer false failures.
Original PR description
After merging the commit [1] the test case is non-deterministically gets failed on runbot. This commit aims to fix the test case. [1]: https://github.com/odoo/odoo/commit/7ab5d4df393e9adf6736c60945197c174149be6a --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Several screens and documents now correctly translate user-visible wording that was previously left in the source language. This improves localization consistency across payment, sales, timesheet, recruitment, loyalty, and settings experiences for users working in other languages.
Original PR description
Content passed to a t-value directive is not translated. This commit redefines as text nodes human-readable content that was incorrectly placed in a t-value, so that it is now translated. *: pos_online_payment, sale_timesheet, web, website_hr_recruitment, website_payment, website_sale_loyalty Enterprise: https://github.com/odoo/enterprise/pull/88666
This update brings the spreadsheet component to the latest version, fixing several issues that could disrupt editing and navigation. Users should see smoother pivot table interactions, better keyboard selection behavior, fewer crashes in formatting panels, and clearer link tooltips in spreadsheet cells.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/5cecc0ed4 [REL] 18.4.1 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/5cecc0ed4 [REL] 18.4.1 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/80608aa25 [FIX] animations: fix pivot collapse animation [Task: 4894210](https://www.odoo.com/odoo/2328/tasks/4894210) https://github.com/odoo/o-spreadsheet/commit/3c8fb24ef [FIX] composer: zone selection with arrow keys [Task: 4890605](https://www.odoo.com/odoo/2328/tasks/4890605) https://github.com/odoo/o-spreadsheet/commit/a750a4062 [FIX] Selection: Fix navigation through merges [Task: 4873718](https://www.odoo.com/odoo/2328/tasks/4873718) https://github.com/odoo/o-spreadsheet/commit/f09ac3bed [FIX] CFSidePanel: do not crash when deleting the edited CF [Task: 4880418](https://www.odoo.com/odoo/2328/tasks/4880418) https://github.com/odoo/o-spreadsheet/commit/a5b7cad60 [REL] 18.4.0 [](https://www.odoo.com/odoo/2328/tasks/) https://github.com/odoo/o-spreadsheet/commit/7389b696e [IMP] clickable cell: add tooltips on links [Task: 4551511](https://www.odoo.com/odoo/2328/tasks/4551511) https://github.com/odoo/o-spreadsheet/commit/3e938c19a [FIX] SidePanel: Export interface to resolve types [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
The website builder's Add to Cart button now works correctly when linked to products that have variants. This prevents an error during page editing, helping teams create ecommerce pages without interruption.
Original PR description
Steps to reproduce: - Drop the "Add to Cart" button - Select a "Product" that has variants (for example "Customizable Desk") - Traceback This bug was introduced by b4b215325db61fbbe9793545293c8b6fbc99f310 which moved the implementation of some function but did not declared the correct dependencies. That commit also renamed the id "addToCartAction" to "addToCart" to use that name for the class and be coherent with the other actions whose class are their id suffixed by "Action". But that rename is a poor choice in this case, because "Action" in the id refers to the action taken when a visitor clicks "Add to Cart", which is unrelated to the concept of `BuilderAction`. task-4367641
This fix stops editing tools such as links, formatting, media, and other HTML insertions from appearing or applying when users are editing plain text areas like blog titles or descriptions. It helps keep content clean and prevents accidental formatting issues when editing website, blog, forum, and similar pages.
Original PR description
> [LEBL] on /blog, edit mode, no overlay while we are able to change description and title + don't display link popover in that case (same in other modules like forum, etc.) (Just edit text content so remove toolbar)
Spreadsheet dashboard filters now show selected text and boolean values in a more readable way. This makes dashboards easier to understand by displaying choices like “text1 or text2” and “Is set or Is not set” instead of raw comma-separated values.
Original PR description
… boolean filters Steps to reproduce: 1. Configure a spreadsheet dashboard with a text filter and a boolean filter. 2. Set these filters to at least two values. => Boolean filter is displayed as `true,false` instead of `Is set or Is not set` => Text filter is displayed as `text1,text2` instead of `text1 or text2` To ease the testing, the function `getFacetFor` has been moved to a helper (it's already the case in master). This commit also adds a test for the others filters (relation and date). Task: 4900910 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 editor tools, links, toolbar actions, or content insertion options appeared in places where they should not be available. Users get a cleaner editing experience and are less likely to insert unsupported content in AI, appointments, knowledge articles, or report editing screens.
This fixes untranslated wording in the project budget area by placing user-facing text where the translation system can detect it. Business users working in other languages should now see the affected labels or messages translated correctly, improving consistency for multilingual teams.
Original PR description
Content passed to a t-value directive is not translated. This commit redefines as text nodes human-readable content that was incorrectly placed in a t-value, so that it is now translated. Community: https://github.com/odoo/odoo/pull/216136