Thursday, January 15, 2026
35 changes · 19.0
New functionality added to Odoo
This update adds return dates to the EC Sales List and Tax reports for Finnish customers. These return dates provide customers with clear guidance on when to file the reports and allow them to verify data accuracy before submission, improving reporting compliance.
Original PR description
The aim of this commit is adding returns for EC Sales List report and the Tax report. These returns allow customers to know when they have to report both reports and help them to check that every value are correctly set before sending the report. task-4893984
This update incorporates Uzbek translations for various Odoo modules, expanding the software's reach and usability for users in Uzbekistan. The changes improve localization and support for a wider range of business operations within the Odoo Enterprise platform. This enhancement ensures accurate and culturally relevant data display for Uzbek-speaking users.
Original PR description
Related: https://github.com/odoo/odoo/pull/243574
Enhancements to existing features
Odoo now includes Minute and Kilowatt hour as standard units of measure aligned with UNECE recommendations used for Peppol. This helps electronic invoices use the correct unit codes instead of falling back to a generic unit, improving consistency for businesses that bill time or energy usage.
Original PR description
**Issue:** 2 UoM that is in the UNECE Recommendation No.20 for Peppol don't exist in Odoo: - MIN: Minute - KWH: Kilowatt hour Even if they are created manually, they are not used in the UBL/CII electronic invoices. Instead, the default code (i.e. "C62" for "Units" is used). Some localization modules create the "Kilowatt hour" UoM as they need it. (l10n_cl and l10n_tr_nilvera) So it's better to have a "generic" one available for every module. opw-5269119 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243535 Forward-Port-Of: odoo/odoo#238342
Resolved issues and error corrections
This update fixes a migration issue for companies upgrading from Odoo 16.0 with the Italian localization enabled. It prevents the upgrade from failing when an expected tax exemption field is not present, making the migration process more reliable.
Original PR description
Migration from 16.0 fails because l10n_it_exempt_reason column does not exist Forward-Port-Of: odoo/odoo#240862
Miscellaneous changes
The Taxes view on fiscal positions now shows tax replacement rules more clearly. This helps users review tax mappings directly from the list without opening each rule, saving time during setup or checks.
Original PR description
-Update the list view opened from the “Taxes” stat button to make tax replacement rules easier to inspect. Impact: -Users can review tax mappings directly without extra clicks. Back-port of: https://github.com/odoo/odoo/pull/238267 task-5374524
The Point of Sale payment screen has a small visual update to the Open Cashbox button. This improves the cashier interface by making the cashbox action feel more polished and consistent.
Original PR description
Little UI changes on the Open Cashbox button in the PoS. task: 5441682 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Point of Sale payment screen now uses color to make the remaining payment status easier to read. Positive remaining amounts are shown in green, while negative amounts are shown in red, helping cashiers quickly identify payment situations.
Original PR description
The aims of this pr is to put the payment status and amount in green when the Remaining amount is positive. And in red for negative amount. task: 5491579 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update enhances the Odoo Enterprise web_studio tool by automatically including more necessary models in default export presets. This ensures that users can consistently export complete and functional applications without needing to manually select each model. It improves the usability and efficiency of the web_studio export process.
Original PR description
In this PR we add several models to the **PRESET_MODELS_DEFAULTS** list such that the exporter includes necessary models by default.
This update fixes Romanian localization tax setup by adding missing fiscal position mappings for tax rates 11 and 21. Businesses using the Romanian accounting configuration will get more accurate tax handling when these fiscal positions apply.
Original PR description
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
Restaurant preparation displays now show the correct timer for each course as soon as it is fired. This helps kitchen staff track preparation times accurately and avoid confusion between courses.
Original PR description
Before this commit: -- - In the preparation display (PDIS), the first course shows a preparation time of 0 untill the second course is fired. - After course 2 fired, course 1 and course 2 have same preparation time value. After this commit: -- - Each course shows its correct preparation time when fired. task-5421616 Forward-Port-Of: odoo/odoo#241251
This fixes an error that could occur when a user saved an accounting report containing an invalid “Prefix of Account Codes” formula. Instead of causing a system traceback, the report now handles the invalid input properly and shows the intended validation message, improving reliability for accounting configuration work.
Original PR description
Saving an accounting report with an invalid ``Prefix of Account Codes`` formula will raise a traceback. Steps to reproduce the error: - Install ``accountant`` module - Go to Accounting >…
Saving an accounting report with an invalid ``Prefix of Account Codes`` formula will raise a traceback. Steps to reproduce the error: - Install ``accountant`` module - Go to Accounting > Configuration > Accounting Reports > Open any report > Add a line > Add name > Add a line > Add a Expression > Computation Engine: Prefix of Account Codes > Formula: test( > Save the report Traceback: ```py TypeError: 'NoneType' object is not subscriptable ``` https://github.com/odoo/odoo/blob/1ac7834a9b9d07760700f6d7c73dfe270a247752/addons/account/models/account_report.py#L661-L662 Here, if the token does not match the regex, ``token_match`` will be ``None``, The code then accesses ``token_match['prefix']`` which leads to the above traceback. https://github.com/odoo/odoo/blob/312964fdf68609dbd0fc1bb3be609b50e171b0c3/odoo/tools/translate.py#L556 Here, no translation language is detected by ``_get_lang``. To resolve this, ``self.env._()`` is added instead of ``_()`` at below line. https://github.com/odoo/odoo/blob/312964fdf68609dbd0fc1bb3be609b50e171b0c3/addons/account/models/account_report.py#L646-L648 sentry-7175078855 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents an error when grouped data is loaded without optional unfold details. It improves reliability for users viewing grouped records by only requesting extra group information when it is actually available.
Original PR description
An error occurs when `web_read_group` is called without an unfold specification. **Error:** `TypeError - 'NoneType' object is not iterable` **Cause:** Here the method `web_read_group` unconditionally calls `all_records.web_read(unfold_read_specification)` - [1] However, `web_read` requires a valid read specification. If `unfold_read_specification` is None [2], it fails when trying to iterate over it during record mapping. **Fix:** This commit only unfold and reads group records when `unfold_read_specification` is given. [1] - https://github.com/odoo/odoo/blob/e8a41b5b50ac71974d98c18fa9d47e37e0f7763f/addons/web/models/models.py#L449-L449 [2] - https://github.com/odoo/odoo/blob/e8a41b5b50ac71974d98c18fa9d47e37e0f7763f/addons/web/models/models.py#L317 sentry-7112641140
This update fixes the codes used in Belgian electronic invoices for early payment discounts and battery recycling contributions. It helps ensure invoices are classified correctly for compliance and partner processing, reducing the risk of misunderstandings or rejected e-invoices.
Original PR description
[FIX] account_edi_ubl_cii: EPD allowance/charge code should be 64, not 66 64 stands for "Special agreement" 66 stands for "New outlet discount" opw-5478324 [FIX] account_edi_ubl_cii: Bebat allowanceChargeReasonCode should be CAV Bebat is a non-profit organization in Belgium that collects, sorts, and recycles used batteries. Currently, whatever the recycling tax applied, we report is as AEO for "Collection and recycling - The service of collection and recycling products." However, since Bebat is about recycling batteries, we have to use CAV instead for "Battery collection and recycling - The service of collecting and recycling batteries." opw-5474752 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243064
This fix prevents spreadsheets from showing an error when a pivot table references a dimension field that is no longer available, such as after uninstalling a module or completing a migration. Users can open affected spreadsheets more reliably instead of being blocked by a traceback.
Original PR description
Task: 5085724 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 pages will now show rating cards only for modules that explicitly ask for them, preventing unexpected rating displays in areas like helpdesk tickets. This keeps customer-facing pages cleaner and ensures each business flow controls whether ratings are visible.
Original PR description
*: test_mail_full Modules using portal rating can set an `data-display_rating` attribute when calling the portal chatter template to indicate whether they want the rating feature displayed. Currently, only two modules have this attribute set to true: ecommerce and elearning. For other modules that don't set this attribute, even if there is a rating, such as when rating a ticket in the helpdesk module, we don't want the rating card feature to be shown in portal chatter. This change ensures that the feature is only available if the module requests it. task-5347848 Forward-Port-Of: odoo/odoo#243495 Forward-Port-Of: odoo/odoo#243255
Fixed an issue where the link editing popover could remain visible after a website snippet was removed, duplicated, or moved. This keeps the website editor interface cleaner and prevents confusing leftover controls from appearing on the page.
Original PR description
#### Description of the issue this PR addresses:
- When removing, duplicating, or moving a snippet, the link popover stayed open because its `pointerdown` handler didn’t trigger, leaving the popover visible even after its selected content element was removed.
#### Desired behavior after PR is merged:
- Use { capture: true } on the link popover’s pointerdown listener so it always receives the event before overlay actions.
- This ensures the popover closes when clicking anywhere on the document, including overlay options.
task-5359000
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#237679This update makes an automated test for the HTML editor toolbar more reliable by waiting properly for the toolbar to appear. It helps reduce random test failures in Odoo's validation process, supporting smoother and more dependable releases.
Original PR description
Waiting one animation frame for the toolbar to update is not enough because the toolbar is a popover and is therefore affected by [1]. Use `waitFor` to avoid non-deterministic test failures on runbot. runbot-237773 [1]: https://github.com/odoo/odoo/commit/54da715df84789f9a1acc0cfc91be41dcdbab140
This fix ensures the Tab key only indents editable paragraph-style content in the HTML editor. It prevents unintended tab characters from appearing in tables, attachments, banners, and other non-editable or non-paragraph content when users select mixed editor content.
Original PR description
#### Description of the issue this PR addresses: - Tab indentation was applied to non-paragraph and non-contenteditable blocks, leading to incorrect indentation behavior when a selection contained mixed block types. #### Desired behavior after PR is merged: - Filter selected blocks to indent only contenteditable paragraph-related elements (h1–h6, p, pre, blockquote, and div.o-paragraph), while excluding blocks marked as contenteditable="false". #### Steps to Reproduce: - Open a new to-do record. - Insert: Table, Table of Content, Banners, attachment, (18.2 - Toggle List) - Select all editor content using Ctrl + A. - Press the Tab key multiple times. => Multiple editor tab characters are inserted at unintended positions. task-5452410 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241806
This fixes an automated self-ordering test issue where selecting a product could accidentally target the cart instead of the product list after navigating back. The change makes the test action more precise, helping prevent false failures and keeping point-of-sale self-order checks stable.
Original PR description
Before this commit, trigger to click on a product in the product list was the same trigger to click on a product in a cart list ... With the following scenario, step CartPage.clickBack() can take few…
Before this commit, trigger to click on a product in the product list was the same trigger to click on a product in a cart list ...
With the following scenario, step CartPage.clickBack() can take few times to show the back screen, but as the trigger is the same for clickProduct on a product list screen than a cart screen, the last step clik on "o_self_product_box" ... but in the cart (and not in the product list)
ProductPage.clickProduct("Coca-Cola"), => OK
ProductPage.clickProduct("Coca-Cola"), => OK
Utils.clickBtn("Checkout"), => OK
CartPage.checkProduct("Coca-Cola", "5.06", "2"), => OK CartPage.clickBack(), => OK
ProductPage.clickProduct("Coca-Cola"), => NOK
To fix it, it is enought to just be more precise on the trigger to avoid confusions.
This fix fixes probably a pair of tours.
error-runbot-id~227669
(and probably others)
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
Forward-Port-Of: odoo/odoo#243749Users who set their status to "do not disturb" will no longer receive inbox message notifications. This aligns inbox behavior with push notifications, reducing interruptions when users mark themselves as unavailable.
Original PR description
Users shouldn't be notified when they set their status as "do not disturb". It's already done for push notifications but inbox messages follow a different path. 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
Follower list avatars now keep their intended proportions instead of appearing stretched or cropped incorrectly. This improves the visual consistency of follower menus, especially when profile images are not square.
Original PR description
Before this commit, follower list menu had avatar that do not preserve ratio of avatars. This is noticeable for avatars that have ratio quite different from 1:1, like 3:2 or 2:3 or even less squarish. This happens because of missing `.o_object_fit_cover`, that [1] erroneously removed from REF of follower template part into its own component. This commit uses an equivalent but more official solution: `.o_avatar`, which is a classname dedicated for avatars, which has `.o_object_fit_cover` property. Task-5412078 Before / After <img width="638" height="526" alt="Screenshot 2026-01-12 at 17 23 54" src="https://github.com/user-attachments/assets/b8d3a921-52a8-48b7-a0d0-5fbfdd33a92c" /> <img width="640" height="528" alt="Screenshot 2026-01-12 at 17 23 33" src="https://github.com/user-attachments/assets/8070420c-f341-4085-bcb2-2fba060765f0" /> [1]: https://github.com/odoo/odoo/pull/200382 Forward-Port-Of: odoo/odoo#243684 Forward-Port-Of: odoo/odoo#243328
Live chat leads and tickets will no longer include system notifications such as users joining or leaving a chat. This keeps customer conversations cleaner and focused on meaningful messages for sales and support teams.
Original PR description
Before this commit, system notifications such as "user join/leave the chat" would be displayed in the created lead/ticket. Those messages are not useful in anyway and should be excluded. task-5491212 enterprise: https://github.com/odoo/enterprise/pull/104336
Point of Sale session sales statistics now count invoiced orders as completed transactions, not just paid orders. This gives businesses a more accurate session summary and reduces the risk of underreported sales figures.
Original PR description
When computing the sales statistics for a POS session, include invoiced orders (state 'done') along with paid orders (state 'paid'). This ensures that all completed transactions are accounted for in the session summary. opw-5475876 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where a specific configuration in the payroll rule parameters could trigger an error. The fix ensures that computed fields are correctly initialized, even when conditions related to future dates are not met. This prevents a traceback and maintains the stability of payroll calculations.
Original PR description
Steps to reproduce: -------------------------------- 1. Install `hr_payroll` module without demo 2. Go to Payroll > Configuration > Rule Parameters 3. Create a new rule parameter with code 4. In…
Steps to reproduce:
--------------------------------
1. Install `hr_payroll` module without demo
2. Go to Payroll > Configuration > Rule Parameters
3. Create a new rule parameter with code
4. In history page select the date in future
Observation:
--------------------------------
Traceback occurs:
```
File '/home/odoo/odoo/community/odoo/orm/fields.py', line 1456, in __get__
raise ValueError(f'Compute method failed to assign {missing_recs}.{self.name}')
ValueError: Compute method failed to assign hr.rule.parameter(2,).current_value_one_line
```
Issue:
--------------------------------
https://github.com/odoo/enterprise/blob/bbf53fbfc19e4c422cfefabd4689fc0f5156d359/hr_payroll/models/hr_rule_parameter.py#L88-L106 The compute method assigns values only inside conditional blocks. When both conditions fail, the method exits without assigning any value to the computed fields, causing a compute error
Solution:
--------------------------------
Initialize the computed fields with `False` before the conditional logic. If the second condition is met, the correct value is then assigned. This prevents the traceback and ensures proper field computation.
opw-5438500
Forward-Port-Of: odoo/enterprise#102924This update resolves a technical issue where location IDs could incorrectly identify related locations, leading to test failures. Replacing `includes` with `indexOf` ensures accurate sublocation detection, improving the reliability of the stock barcode functionality. This fix addresses a build error and prevents potential disruptions in the system.
Original PR description
Previously, in the `_isSublocation`, to check if a location was a children of another location, we did that: ```javascript return childLocation.parent_path.includes(parentLocation.parent_path); ```…
Previously, in the `_isSublocation`, to check if a location was a children of another location, we did that: ```javascript return childLocation.parent_path.includes(parentLocation.parent_path); ``` The issue with that is, if locations' id are aligned, they can match even if they are not related. For example, imagine tested child location has ID 127 and the parent location has ID 7, we then check their `parent_path` (for example, '4/127/' for the child location and '7/' for the parent location), it can happen the child parent path can include the parent's parent path (in our example, '4/127/' includes '7/'.) To fix that, this commit replaces `includes` with `indexOf`, the result of the `indexOf` should always be 0 if the child location is indeed a sublocation of the parent location. Because of this issue, the second run of the tour `test_put_in_pack_new_lines` could sometime fail when the locations IDs are aligned. runbot build error: [233292](https://runbot.odoo.com/odoo/runbot.build.error/233292)
A recent update to the 'account_no_followup' module caused a memory error during installation on older Odoo versions. This fix avoids a large data calculation that was overwhelming the system's memory. The change ensures smoother installations and prevents potential performance issues.
Original PR description
The module `account_no_followup` is a new module added in odoo/enterprise#96627. Since it's marked as `auto-install=True` and since it's a dependency of the new `pos_no_followup` module, it may be installed on existing 18.0 databases with a lot of account.move.lines. In this case, the module installation will raise a MemoryError as there's a new stored computed field on journal items called `no_followup`. Computing this field and storing the value in cache will overfill `self.env._cache` and reach the 2GB threshold. This commit fixes that by adding an overwrite of the `_auto_init` method to initialize the field's value in raw SQL, circumventing the issue. Forward-Port-Of: odoo/enterprise#102330
This update fixes a previous error that occurred when users deleted the 'Balance' line in the General Ledger Report. The fix prevents the report from crashing and ensures it functions correctly, even when balance information is removed. This improves the user experience and report reliability.
Original PR description
Currently an error is generated when the user deletes the `Balance` line of `Column` tab from the General Ledger Report as in the below steps: - Install accountant with demo data - Go to Accounting >…
Currently an error is generated when the user deletes the `Balance` line of `Column` tab from the General Ledger Report as in the below steps: - Install accountant with demo data - Go to Accounting > Configuration > Accounting (section) > Accounting Reports - Open the General Ledger report - Delete the balance line from the Column tab - Go to Reporting > General ledger >> Error occurs (If an error does not occur, try opening the detailed view of the journal in the report.) Error: `KeyError: 'balance'` This issue was generated because at code line [1] tries to access `balance` key from the `colname_to_idx[col_group_key]` but since the user deleted `balance` it will not fount there and we got an error. This commit fixes the issue by preventing the processing of `line_balance` when the balance key is not present in `colname_to_idx[col_group_key]`. [1]: https://github.com/odoo/enterprise/blob/340abdc1b00df4d3d6130b26650519ae8354d199/account_reports/models/account_general_ledger.py#L326 sentry-7105657812 Forward-Port-Of: odoo/enterprise#102113
This update corrects a visual inconsistency within the Odoo Enterprise VoIP module. Previously, the subtitle color in the 'Recent' tab differed from other tabs. This commit ensures all tab subtitles have the same color, improving the overall user experience and maintaining a consistent design.
Original PR description
Since commit [1], the subtitle color has been changed but not for the "Recent" tab, which creates inconsistencies. This commit ensures that the subtitle color is consistent across all tabs. [1]: https://github.com/odoo/enterprise/commit/568d29af1e1d792642f0dc288d57871fc7781f38 task-5485493 | Before | After | |--------|--------| | <img width="800" height="662" alt="Capture d’écran 2026-01-12 à 11 19 34" src="https://github.com/user-attachments/assets/8beb175a-27c8-4d73-899c-6fc3ab22c0e6" /> | <img width="800" height="657" alt="Capture d’écran 2026-01-12 à 11 19 49" src="https://github.com/user-attachments/assets/e2542822-6b05-4b15-b3e8-a4aa7c1b611c" /> | Forward-Port-Of: odoo/enterprise#103996
This update resolves a technical issue preventing users from creating and saving bank statements within the Bank Journal Transactions section. The problem stemmed from an error in how data was accessed, which caused a system crash. This fix ensures stable bank statement functionality.
Original PR description
We get an owl error: `TypeError: Cannot read properties of undefined (reading 'root').` The code tries to read data from this.env.model, but it is undefined. Steps To Reproduce: 1. Install `account_accountant` 2. Go to Accounting Dashboard > Bank > `...` > Transactions 3. Open in the list view 4. Select any number of transactions 5. Type something in the statement field of one of the rows 6. Press Create and Edit to create a new Statement 8. Save the statement Ticket [link](https://www.odoo.com/odoo/project.task/5352277) opw-5352277 Forward-Port-Of: odoo/enterprise#101232
This update resolves a display problem in the General Ledger report when using analytic accounting. Previously, the report incorrectly showed duplicate lines and linked to the wrong journal entries. The fix ensures accurate grouping by analytic accounts, directing users to the correct journal entries.
Original PR description
Issue: Inconsistent use of line ID in the general ledger between account_move_line.id and account_analytic_line.id Step to reproduce: - Activate analytic accounting - Go to Accounting Report ->…
Issue: Inconsistent use of line ID in the general ledger between account_move_line.id and account_analytic_line.id Step to reproduce: - Activate analytic accounting - Go to Accounting Report -> General Ledger -> Options - Activate "Analytic Group By" - Create an invoice - add a line with an analytic account - Confirm the Invoice - Duplicate the invoice - Confirm the second invoice - Go to the General Ledger - Group By the analytic account you used Current Behavior: General Ledger display 2 lines per journal entry being part of the analytic distribution used for the group by. The first line displays the part related to the analytic group by, while the second line display infos for global general ledger. Clicking on the dots of the first line -> "View Journal Entry" send you to an unrelated entry. Expected behavior: - "View Journal Entry" should send to the right entry Proposed Solution: To proceed to the group_by, `_prepare_lines_for_analytic_groupby` create a temporary SQL table. This table uses the account_analytic_line.id as if it was the account_move_line.id. This commit fixes this and goes back to account_move_line.id. However, lines are merged into only one single line. opw-5267981 Forward-Port-Of: odoo/enterprise#104082 Forward-Port-Of: odoo/enterprise#103169
This update ensures that historical survey answers retain their original date and datetime formatting, even if the question type is changed afterward. Previously, modifying a question type could cause formatting errors in exported spreadsheets. This change improves data consistency and reliability for survey results.
Original PR description
Current behavior before PR: - Survey spreadsheet export derived date and datetime formatting from the current question type. - Changing a question type after submission (date to datetime) could lead to incorrect formatting or export errors for existing answers. Desired behavior after PR is merged: - Spreadsheet export now derives value conversion and formatting from the stored answer type instead of the question definition. - Historical answers keep their original date or datetime format, even if the question type is modified later. Task: [5410758](https://www.odoo.com/odoo/project/2328/tasks/5410758)
This update resolves a technical issue that caused a traceback error when using pivot tables in the spreadsheet feature. The fix ensures pivot tables function correctly, even when certain data dimensions are missing, improving the reliability of reporting and analysis. This impacts users who rely on spreadsheet-based reporting.
Original PR description
Task: 5085724
This update resolves an issue where copying headings in the knowledge editor caused URL redirection problems. It also improves the editor's responsiveness by reducing unnecessary layout adjustments triggered by mouse movements. These changes enhance the overall stability and usability of the knowledge editor.
Original PR description
### [FIX] knowledge: prevent heading link id duplication on copy/paste Prior to this commit, copy/pasting a heading would preserve its `data-heading-link-id` resulting in mismatches for URL redirections. After this commit, such ids are always reset to guarantee unicity. ### [FIX] knowledge: throttle mousemove for heading link button Prior to this commit, every `mousemove` event could cause a layout trashing to reposition the heading link button. After this commit, the repositioning is debounced at a more reasonable rate. task-5384684 Forward-Port-Of: odoo/enterprise#101445
This update fixes formatting issues in live chat ticket descriptions created by the chatbot. Previously, system notifications were included, making descriptions difficult to read. Now, only relevant chat messages are used, ensuring clearer and more organized ticket information.
Original PR description
In [1], chat bot's create lead/ticket steps were improved to set the formatted discussion as the lead/ticket description. The same holds for lead/ticket commands. However, the /ticket command was not properly updated. As a result, the discussion is poorly formatted, making it difficult to read. Also, the description should only include relevant messages, not system notifications such as "agent joined the channel". This commit fixes both issues. task-5491212 community: https://github.com/odoo/odoo/pull/243856
Related: https://github.com/odoo/enterprise/pull/104176
Original PR description
Related: https://github.com/odoo/enterprise/pull/104176