Tuesday, June 10, 2025
7 changes · saas-18.3
Resolved issues and error corrections
This fixes an issue where the collapsed “+X” chat bubble indicator could still appear inside the Discuss app even though chat bubbles should be hidden there. Users now get a cleaner Discuss screen with only the intended active AI chat windows shown.
Original PR description
Before this commit, hidden chat bubble were shown in discuss app. Steps to reproduce: 1. have at least 8 chat bubbles, so it shows "+X" chat bubble at the bottom 2. open discuss app => Discuss app has the "+X" chat bubble in the bottom-right. This happens because chat hub is intended to be hidden when discuss app is open with only one exception: AI chat windows that are actively being used in discuss app. ChatHub component was changed to take this new feature into account, but the "+X" chat bubble was not properly managed in its visibility. Before / After  
The Discuss sidebar action labels are now easier to read thanks to larger text and stronger visibility when not hovered. This improves day-to-day usability by making navigation and action controls clearer for users.
Original PR description
Before this commit, discuss sidebar actions were hard to read. This comes from small text size and low opacity when not hovered. This commit fixes by increasing text and having opacity increased when not hovered. Discuss sidebar category actions still use an older style but they have been tweaked in a similar way. Before / After  
The Leave and Unpin conversation options no longer appear in the main Discuss header where they could confuse users. They remain available in the sidebar and are now consistently available in chat windows, improving access while keeping the header cleaner.
Original PR description
Before this commit, the "Unpin/Leave" thread action was shown in the discuss header. This was added by mistake from a recent improvement to show discuss sidebar actions on conversation. In the…
Before this commit, the "Unpin/Leave" thread action was shown in the discuss header. This was added by mistake from a recent improvement to show discuss sidebar actions on conversation. In the sidebar, the "Leave/Unpin" action should be displayed, but the header we don't. Thread actions are elligible for chat window and discuss header in "partitioned" actions. Actions are elligible for discuss sidebar in "sidebar" actions. The "Leave/Unpin" should not be displayed in discuss header, but in chat window on small screen it must be shown because there's no access to discuss sidebar. This commit fixes the issue by adding more customisation for showing in "partition" actions. The "Leave/Unpin" is shown in partitioned action only in chat window. Note that while this action was limited to small screen, but there's no reason to not have it in all screen size for all chat windows. This commit makes this improvement too. Before / After  
This fixes an issue that could interrupt appointment module updates when calendar attendees lacked a creation date. The unnecessary attendee reordering was removed, keeping the existing default order and making updates more reliable.
Original PR description
Now that mail templates are validated when updated, this function is called when the `appointment` module is updated. This sort fail[^1] when are attendees without a create_date. Moreover, this sort is useless as this is the default order. [^1]: TypeError: '<' not supported between instances of 'bool' and 'datetime.datetime'
This fix prevents a crash that could happen when a new chat or message arrives while the user is not focused on the tab. It makes message notification handling more reliable by safely handling browser cases where the service worker connection is unavailable.
Original PR description
In order not to send push notifications when message is already seen, the service worker asks to every tab whether he already read the message. Tab answer using `navigator.serviceWorker.controller` which can be `null`. This case was not handled leading to crashes. This PR fixes the issue. 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 prevents Accounting users from seeing an error after fetching bank transactions and clicking the total amount. The system now keeps the correct bank journal context, so users can open the related balance view without interruption.
Original PR description
The system will crash with an error when we `fetch transactions` and then click on the total amount in the top right corner, because the method `action_open_bank_balance_in_gl` expects `exactly one…
The system will crash with an error when we `fetch transactions` and then click on the total amount in the top right corner, because the method `action_open_bank_balance_in_gl` expects `exactly one journal record` (self.ensure_one()), but receives an empty recordset. **Steps to Produce:-** 1. Install the `Accounting` module. 2. Navigate to `Invoicing > Bank`, then click on "Search Banks" and connect with the `Odoo Bank Sync Demo`. 3. Click on `Fetch Transactions` and wait for the process to complete. 4. In the new view, click on the `total amount` located in the `top right corner`. **Error:-** `ValueError: Expected singleton: account.journal()` **Solution:-** - At [1], in `default_context` we can see that `active_id` is not given. [1] https://github.com/odoo/enterprise/blob/4b8edc19dbece15f7843ec3647c464307e165906/account_online_synchronization/models/account_online.py#L878-L882 - So, in this commit now active_id is added in default_context to prevent the error **Sentry - 6644825437**
The AI app demo data no longer includes temporary Odoo website links that became unreachable during an Odoo.com upgrade. This prevents automated test environments from failing because of unavailable demo URLs, helping teams keep validation pipelines stable.
Original PR description
Using Odoo URLs in the AI app demo data while Odoo.com is upgrading is causing an issue in the runbot as all these URLs are unreachable causing the runbot to be completely red. I am removing these urls for now as a hot fix.