Friday, June 27, 2025
9 changes · saas-18.4
Enhancements to existing features
Live chat statuses are now easier to recognize and manage across the interface, with clearer icons, better styling, and quick actions available from more places. This helps support teams understand conversation status faster and update it with fewer clicks.
Original PR description
Before this commit, new livechat status feature has some usability issues: - icons of status were poor: `.fa-circle` is not unique enough and looks like IM status - icons were inconsistent: info…
Before this commit, new livechat status feature has some usability issues: - icons of status were poor: `.fa-circle` is not unique enough and looks like IM status - icons were inconsistent: info panel uses different icons - info panel buttons do not look good: text not aligned, border too harsh with strange spacing, etc. - feature is cumbersome to use: can only be changed in panel, so lots of clicks when not in discuss app and conversation not selected. - feature was not displayed in some contexts like chat bubbles - livechat status not easy to see in discuss sidebar when next to unread counter This commit makes the following improvements to livechat status feature: - new icons for livechat status - better button style in panel - livechat status is visible in all context with proper style - can quickly change livechat status from thread actions, including discuss sidebar more actions - livechat icon is floating in top-left of avatar for better visibility of status (exception: chat window is before avatar for space constraints) Before <img width="901" alt="before" src="https://github.com/user-attachments/assets/4b5919c8-32bc-4db6-aa92-82d6b0dcf54f" /> After <img width="896" alt="Screenshot 2025-06-25 at 16 30 52" src="https://github.com/user-attachments/assets/2bf20825-f3a7-4ea4-a1f8-2e63b882dfde" /> <img width="67" alt="Screenshot 2025-06-24 at 17 45 55" src="https://github.com/user-attachments/assets/0d1fd50f-30d7-4b5a-a473-255bccf1e4c0" /> ---- With the addition of quick action to change livechat status, this commit adds these new features: 1. thread action icons can be defined in dedicate templates, for more creativity in making icon than `.fa` and `.oi` classnames. 2. useHover() now works with nested overlay: this works by warping dropdown content in a `<UseHoverOverlay hover="hover">` component. --- Technical details of useHover nested overlay improvement: To make it work, the content of 1st dropdown should be wrapped in a `<UseHoverOverlay>` component and provide the `hover` object of `useHover()`. The overlay content is put in slot of this component. This `<UseHoverOverlay>` component works by helping `hover` object to make use of `contains()` function of overlay, which tells precisely if a target is inside the overlay including nested dropdowns. Note that sub-dropdowns menu can optionally have `<UseHoverOverlay>`: - without it, they are persistently displayed until click away or mouseleave from parented dropdown (if has `useHoverOverlay`) - with it: mouse-leave on it outside of whole overlay closes all the related overlays. This commit also do some related code-cleaning with useHover: - "*" suffix syntax is removed. This was used as a way to get the direct parent element of ref. Floating menu were disappearing immediately `onAway`, but there's a global 100ms now so we don't need 2 hover triggers to be exactly next to each other
Users can now create an empty chat from the command palette without starting a meeting or call. This makes it easier to prepare a conversation first and invite people later by link or direct invitation.
Original PR description
The purpose of this commit is to allow the creation of chats without any user (when on the command palette ctrl+k "create chat"). This gives the possibility to quickly create a conversation and later on invite people either with the link or directly to add users. It was already to achieve the same result with "start a meeting" but it had the side-effect of starting a call. This commit is only creating the channel without starting the call. task-4860930 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
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 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)
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.