Wednesday, March 12, 2025
6 changes · saas-18.1
Resolved issues and error corrections
This fix prevents a timing issue that could incorrectly clear a live chat operator after one had already been found. It helps ensure customers remain connected to the right available operator during automated chat flows.
Original PR description
Race condition in flows could lead to resetting operatorFound after finding one, which should never be allowed in practice.
This update brings the spreadsheet engine up to its latest version with fixes for chart imports, sheet editing, read-only views, hidden headers, pivot sorting, and data validation. Users should see fewer spreadsheet errors and better performance when working with larger or more complex sheets.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/7de236389 [REL] 18.1.11 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/7de236389 [REL] 18.1.11 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/7131e4276 [FIX] xlsx: correctly import labels from scatter charts [Task: 4626572](https://www.odoo.com/odoo/2328/tasks/4626572) https://github.com/odoo/o-spreadsheet/commit/8a7a31160 [FIX] BottomBar: Keep editing when selecting sheet in bottombar list [Task: 4626098](https://www.odoo.com/odoo/2328/tasks/4626098) https://github.com/odoo/o-spreadsheet/commit/a9ea16015 [FIX] irregularity_map: can open in read-only mode [Task: 4640226](https://www.odoo.com/odoo/2328/tasks/4640226) https://github.com/odoo/o-spreadsheet/commit/c13aeeffe [FIX] HeaderOverlay: Fix unhide button position [Task: 4548264](https://www.odoo.com/odoo/2328/tasks/4548264) https://github.com/odoo/o-spreadsheet/commit/4eabd76f7 [FIX] pivot: sorting issue for (Undefined) columns in table [Task: 4614177](https://www.odoo.com/odoo/2328/tasks/4614177) https://github.com/odoo/o-spreadsheet/commit/b27cd4ce7 [PERF] worksheet: Move PositionMap constant declarations outside of for loop in addRows [Task: 4563258](https://www.odoo.com/odoo/2328/tasks/4563258) https://github.com/odoo/o-spreadsheet/commit/0e8501eb2 [PERF] content_helper: pushElement use cache instead of deepEquals [Task: 4563258](https://www.odoo.com/odoo/2328/tasks/4563258) https://github.com/odoo/o-spreadsheet/commit/e0fbcc29e [PERF] deepCopy: optimize initialization and iteration [Task: 4563258](https://www.odoo.com/odoo/2328/tasks/4563258) https://github.com/odoo/o-spreadsheet/commit/d98e1ded9 [PERF] data_normalization: getItemId use cache instead of deepEquals [Task: 4563258](https://www.odoo.com/odoo/2328/tasks/4563258) https://github.com/odoo/o-spreadsheet/commit/aa4c2b875 [FIX] data_validation: don't prefilter on initial exact match [Task: 4518009](https://www.odoo.com/odoo/2328/tasks/4518009) https://github.com/odoo/o-spreadsheet/commit/4b51302ed [FIX] Xlsx: do not nest literal strings [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>
This fixes live chat visitor country information so the country flag appears correctly and invitation links no longer crash. It also improves demo data so teams can spot similar issues more easily during development.
Original PR description
\* = im_livechat, crm_livechat The issue manifested in several ways: first of all, the country flag was not displaying on the channel header for the visitor, but more importantly the invitation link of the channel crashed due to the store result not being JSON serializable. "visitor" key in channel store is a dictionnary rather than a record, so it can only contain primitive values and not Store constructs. This commit changes the format to properly take the record and flatten its data instead. This fixes the issue and ensure each visitor data is only present once in the payload. The opportunity is taken to add missing demo data to more easily detect the issue in day to day development. task-4637944 https://github.com/odoo/enterprise/pull/81177
This fix prevents a live chat from being closed when someone who is not actually a chat member unfollows or unpins it. It helps ensure conversations remain active as long as an operator is still present, avoiding accidental chat interruptions for customers.
Original PR description
When the last operator of a live chat closes the discussion, the live chat is closed. Technically, this is done with an override of the `_action_unfollow` method. However, this method can be called even when users are not members (e.g. channel pinned locally). The override does not take this into account which can lead to the chat being closed while an operator is still present. 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
Portal users can now search for people to mention without hitting an error caused by logic tied to the Discuss app. The change keeps Discuss-specific behavior separate, making mentions more reliable in shared project areas.
Original PR description
When a portal user searches for a partner to mention, an error occurs because the suggestion sorting logic relies on Discuss app-specific code. This PR moves the Discuss-dependent code to its specific folder, ensuring proper functionality for portal users. Task-4566702 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Creating a sales lead from live chat now works correctly when the visitor, user, and selected sales team belong to different companies. The system prioritizes assigning the correct company to the lead and only links a sales team when its company is compatible, preventing errors while keeping leads available for later assignment.
Original PR description
If the current user and the selected sales team have different company, an error is raised when attempting to create the lead. - If both partner and sales team have company, they must match or the team can't be assigned (it is more important to create the lead, which must be with the company of the partner, implying with no team which is fine as auto-assignation will take care of it). - If one or the other has company, the lead must have this company. - When both have no company, the lead can have no company.