Tuesday, December 23, 2025
24 changes · saas-19.1
Enhancements to existing features
This update enhances the way live chat is displayed on the website. The change updates a test to reflect the new live chat name format, improving the user experience and ensuring consistent branding. This is a minor improvement to the Enterprise website.
Original PR description
The community counterpart improves the live chat display name. This commit adapts a test relying on the old name format. task-5408945 community: https://github.com/odoo/odoo/pull/240913
This update clarifies the order list by removing the "to invoice" status badge when an invoice hasn't been created. This prevents users from incorrectly assuming an invoice is required, streamlining the order process and reducing potential confusion. It's a small improvement focused on user experience.
Original PR description
In this commit: - Hide the invoice status badge when the status is "to invoice" in order list. - Prevent confusion by ensuring users don’t assume an invoice needs to be generated. Task-5347495 Forward-Port-Of: odoo/odoo#236882
This update enhances the visual presentation of account state selections within the accounting module. The changes improve the user experience by refining the badge design and ensuring consistency across the application. This is an internal improvement to the accounting workflow.
Original PR description
Forward-port of: https://github.com/odoo/enterprise/pull/98675 Enterprise PR: https://github.com/odoo/enterprise/pull/102659 task-5266305
Resolved issues and error corrections
This update adjusts how live chat names are displayed to better reflect the context of the conversation. Specifically, internal users now see visitor names, ensuring clarity and a more relevant experience. This change improves the usability of the live chat feature for internal teams.
Original PR description
Live chat display name changes according to who sees the chat: - For visitor, it's the names of the agents. - For agents, it's the names of the visitors. - For everyone else, it's all the member names. However, when an internal user sees the live chat, the agent name doesn't matter. Only the visitor is relevant. This commit changes the way display name is computed to display the agent names to visitors and the visitor names otherwise. task-5408945 enterprise: https://github.com/odoo/enterprise/pull/102681
Features or functions removed from Odoo
The `pos_restaurant_adyen` module, which handled a specific payment feature, has been removed. This functionality has been integrated into the main `point_of_sale` module, streamlining the system. This change improves efficiency and reduces redundancy.
Original PR description
Task: [#4841174](https://www.odoo.com/odoo/1737/tasks/4841174) --- The `pos_restaurant_adyen` module is no longer needed since all its code is related to `set_tip_after_payment` feature, which are now handeled by the `point_of_sale` module. This means that the code from `pos_restaurant_adyen` has to be merged into `pos_adyen`.
A technical issue preventing users from accessing the Invoicing/Accounting notebook for certain contacts has been resolved. This fix ensures that all required properties are defined for the component, preventing a validation error and allowing the feature to function correctly. This improves the user experience for managing bank accounts within the Accounting module.
Original PR description
Steps to reproduce: - Install the Accounting and Contacts modules - Open a contact that has a value in the Bank Accounts field (e.g., Deco Addict) - Click on the Invoicing / Accounting notebook - A traceback occurs Reason: In this commit https://github.com/odoo/odoo/commit/58e9fbf651473dc39214d7faabdfb06606ce92d0, A new tooltip prop was added but it was not included in the props definition here: https://github.com/odoo/odoo/blob/saas-19.1/addons/account/static/src/components/many2many_tags_banks/many2many_tags_banks.js#L14 Since the `FieldMany2ManyTagsBanks` component calls `super.getTagProps(record)`, all expected props must be defined. The missing tooltip prop causes the validation error and results in the traceback. Fix: Added a tooltip to the static props list of the component. With this change, the issue is resolved. task-5438012
This update resolves a visual issue where the Sales 3 menu on the website would overflow when certain items were added. The fix prevents the parent menu element from overflowing, ensuring the menu displays correctly and consistently. This improves the user experience for customers navigating the website.
Original PR description
Scenario: - edit the website navbar and set template "Sales - 3" (penultimate) - edit menu to add several menu items that will be larger than possible Result: the menu overflows Cause: a parent element of the menu doesn't overflow, so when computing autoHideMenu where we compute what overflow the list of menu, nothing overflows it since the overflow already happened in the limitless parent element. Fix: using CSS to prevent the parent from overflowing. opw-5178552 __pr note:__ this is happening in 17.0 but I'm targeting 18.0 since the ticket is in 18.0 and code is the same in 18.0 up to master. Forward-Port-Of: odoo/odoo#240433
This update resolves an issue where users could encounter an error while viewing details of paid orders within the Point of Sale (PoS) frontend. The fix simply disables a feature that was causing the error, ensuring a smoother user experience. Employee details are intended to be managed from the backend.
Original PR description
Steps to reproduce ------------------ 1. Enable "Log in with Employees" 2. Login with any employee and make an order 3. Switch to the admin, "Mitchell Admin" usually 4. Go to the paid orders (we are still in PoS UI not in the backend), and select the order paid in step 2. 5. Click on "Details", the order form will appear, click on the "Cashier" name A traceback will appear, saying 'Cannot find key "hr_employee_form" in the "views" registry'. The fix ------- We simply disable the employee_id field; it will not try to open the employee form anymore. That is much simpler than adding all the required hr assets to the PoS frontend. Employee details are meant to be seen and navigated from the backend. opw-5252486 Forward-Port-Of: odoo/odoo#240802 Forward-Port-Of: odoo/odoo#240012
This update fixes a bug where product attributes weren't displayed on order lines. The change ensures that all product attribute details are now correctly shown, providing a more complete view of orders for users. This was caused by a change in how attribute data was constructed within the system.
Original PR description
Before this commit: --- - When an order was placed with product attributes, the attribute details were not shown on the order line. After this commit: --- - The product attribute names are now correctly displayed on the order line. Cause: --- - Until saas-18.2, the attribute string was built using the product’s display name and `attribute_line_ids`, which only included never type PTAV entries. - Starting from saas-18.2, the attribute string is constructed solely from `attribute_line_ids`, which now includes all PTAVs. task-5244869 Forward-Port-Of: odoo/enterprise#99007
This update resolves an issue where user activity wasn't accurately tracked, causing the system to incorrectly display users as 'away'. By enabling event capturing, the system now reliably detects user clicks and updates their presence status in real-time. This ensures accurate user activity monitoring.
Original PR description
Before this PR, Elements that stopped event propagation (e.g., using event.stopPropagation()) prevented the global click listener from firing. As a result, user activity wasn't detected, and the presence status stayed "away" instead of switching back to "online". This PR fixes the issue by enabling event capturing on the global click listener (useCapture: true). With capture mode, the listener receives the event during the capture phase before any element can stop propagation. Bug:  task-[4892229](https://www.odoo.com/odoo/project/1519/tasks/4892229) Forward-Port-Of: odoo/odoo#238650
This update resolves a test failure that occurred during the build process. The issue stemmed from an incorrect count of analytic lines created for employees, triggered by a specific setup process. This fix ensures accurate accounting calculations for employee work orders.
Original PR description
fixing runbot error https://runbot.odoo.com/odoo/runbot.build.error/234639 on test test_mrp_analytic_account_employee_from_widget introduced by this PR https://github.com/odoo/enterprise/pull/85517
**cause of the error:**
Because there is a resource.calendar.leave without calendar_id,
without resource_id and at a date after today :
during the setupclass, when the employee is created,
_create_future_public_holidays_timesheets() creates an account.analytic.line.
So at the end of the test ,
self.env["account.analytic.line"].search([('employee_id', '=', self.employee1.id)])
returns 2 records instead of 1.
runbot-234639
Forward-Port-Of: odoo/enterprise#102338
Forward-Port-Of: odoo/enterprise#102282This update fixes a misleading error message displayed when deleting sale orders with linked appointments. Previously, users received an incorrect instruction to reduce quantities. Now, the system correctly informs users they must cancel the order before deletion, aligning with expected behavior and improving the user experience.
Original PR description
Problem: When the module is installed and there are bookings with answers linked to sale orders, the order lines are deleted before the order, causing the wrong error message to be displayed.…
Problem: When the module is installed and there are bookings with answers linked to sale orders, the order lines are deleted before the order, causing the wrong error message to be displayed. Solution: The order lines should not be manually unlinked from the sale order. It should be the bookings linked to the order lines that should be unlinked before the sale order deletion. Expected Behavior: When deleting a sale order whose lines have bookings, the following error message shoud be displayed: "You can not delete a sent quotation or a confirmed sales order. You must first cancel it." Current Behavior: When deleting a sale order whose lines have bookings, the following error message is displayed: "Once a sales order is confirmed, you can't remove one of its lines (we need to track if something gets invoiced or delivered). Set the quantity to 0 instead." Steps to reproduce on Runbot: 1. Install Appointments and ecommerce 2. For the dental care appointment, edit and enable "Up-front payment" 3. On the website, book an appointment for dental care and proceed to payment 4. Delete the sale order with the booking 5. Observe the incorrect error message being displayed opw-5092349 Forward-Port-Of: odoo/enterprise#100371
This update corrects a minor visual issue with the 'Add to Favorites' thread action in the Odoo interface. The action was incorrectly grouped with settings actions, preventing proper separation. This change ensures the action appears in the correct location for a better user experience.
Original PR description
This was placed with the settings action when this is not a "settings" action. While the overall position is ok for this action, this shouldn't be in the same group as "settings" because this is not a "settings" action. By being in the wrong group, the separator doesn't group the settings actions together as it should. This commit fixes the issue by moving this action to the previous group as the last item, so that this before the separator. Task-5429921 <img width="181" height="281" alt="Screenshot 2025-12-18 at 20 25 38" src="https://github.com/user-attachments/assets/c994a7ec-7902-489f-8e34-5b5aea66738f" /> <img width="185" height="282" alt="Screenshot 2025-12-18 at 20 25 15" src="https://github.com/user-attachments/assets/2b19309c-6cb9-4736-860c-a52401708f3f" />
This update prevents the Clickbot from incorrectly redirecting users to the Discuss app's settings menu. This change improves user experience by ensuring users are directed to the intended application and avoids potential disruptions.
Original PR description
This commit adds the Discuss app's settings menu to the Clickbot's blacklist because it redirects to another application.
This update resolves a technical issue that prevented the PoS system from closing correctly when an order line had a 100% discount. The fix ensures the system handles this scenario without errors, improving stability and reliability for users applying German tax regulations. This change impacts the l10n_de_pos_cert module.
Original PR description
Before this commit, when an order line had a 100% discount, a division by zero error occurred when closing the PoS session. opw-5240429 Forward-Port-Of: odoo/enterprise#98869
This update resolves an issue where subfolders within the Documents section were not appearing in the search panel when accessed from other applications. Previously, users would see the full folder structure, but the search functionality wouldn't reflect it. This change ensures a consistent and accurate search experience for all document types.
Original PR description
...when coming from another app. Reproduce: 1. Go to a fleet vehicle record and open its 'Documents' stat button. 2. You end up in the Fleet folder, where you see subfolders as kanban cards, but they are not in the search panel. Task-5272030 Forward-Port-Of: odoo/enterprise#99688
This update fixes an issue where downpayment lines in the My E-commerce localization module weren't correctly assigned a standard classification code. Now, all downpayment lines will consistently use code '022', ensuring accurate reporting and compliance. This change improves the reliability of financial data related to downpayments.
Original PR description
Ensure downpayment lines are assigned a fixed classification code ("022"), while other lines retain their product-based classification.
Task-5356913
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#240906
Forward-Port-Of: odoo/odoo#239831A recent test tour failed due to an unexpected disappearance of a newly created line during the GS1 barcode process. This fix ensures a consistent state is maintained during the tour, preventing unpredictable behavior and improving test reliability. The update also includes refinements to the tour trigger and model methods for greater precision.
Original PR description
Runbot build error: [232683](https://runbot.odoo.com/odoo/runbot.build.error/232683) Forward-Port-Of: odoo/enterprise#101495
This update corrects an issue where the Odoo system was holding cursors open for too long, impacting performance. By fixing the indentation, the system now closes cursors immediately after fetching notifications, optimizing resource usage. This results in a more efficient and responsive Odoo experience.
Original PR description
In [1], the block following the fetch of notifications was wrongly indented. Cursor should be held for as little time as possible. This commit fixes the issue. [1]: https://github.com/odoo/odoo/pull/235746 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 streamlines the HTML editor's testing process by separating individual tests to avoid timing issues. Additionally, unnecessary helper functions for tag creation have been removed, simplifying the code and reducing complexity. This improves the reliability and maintainability of the HTML editor tests.
Original PR description
Description of the issue/feature this PR addresses: I. Grouping multiple testEditor in a single test is bad practice because the timeout of it is then shared between the different testEditor calls rather than each having their own separate timers. This PR splits the calls of each testEditor to its own test. II. This PR removes helper functions used to create different types of tags. Instead of simplifying the code, these helpers introduced unnecessary complexity and confusion. task-5375867 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241001 Forward-Port-Of: odoo/odoo#240345
This update aligns the positions of the WhatsApp 'view-contact' button and the Live Chat 'livechat-info' panel within the discuss app. Previously, they were in opposite locations, creating a disjointed user experience for agents. This change ensures a more intuitive and consistent flow for both WhatsApp and Live Chat conversations.
Original PR description
The thread action 'view-contact' is somewhat like 'livechat-info', in that this action redirects to relevant info to the whatsapp user and livechat-info is a panel with all info on the visitor and…
The thread action 'view-contact' is somewhat like 'livechat-info', in that this action redirects to relevant info to the whatsapp user and livechat-info is a panel with all info on the visitor and more. The position of both buttons were the total opposite in discuss app: - 'livechat-info' was put as the 1st panel one before panels - 'view-contact' was dead last. There are differences, with 'livechat-info' being a panel and 'view-contact' a redirect button. However, each are important buttons for the type of conversation that justify them being in their own group right now. Since the buttons are mutually exclusive by the channel type, there's reason to have them share the same position. This commit moves the position of 'view-contact' in discuss header thread actions to be the same as 'livechat-info', that is as the 1st action in the list. This makes its position consistent with livechat info, thus agents of live chat and whatsapp would appreciate the 2 button placement being consistent. Task-5431313 <img width="1760" height="231" alt="Screenshot 2025-12-18 at 21 02 24" src="https://github.com/user-attachments/assets/ee2baf91-0d9a-49ca-91ac-a7781b33e57b" /> Forward-Port-Of: odoo/enterprise#102479
This update resolves an issue where product routes weren't appearing on the form in the 19.0 release. The fix ensures the Manufacturing route is always enabled, guaranteeing the correct display of routes and simplifying product creation. Unnecessary form steps for product creation have also been removed.
Original PR description
Since 19.0, routes are no longer displayed in the product form if no route outside from Buy/Manufacture are enabled, as those two now depend on whether there's a vendor/bom to be enabled for that…
Since 19.0, routes are no longer displayed in the product form if no route outside from Buy/Manufacture are enabled, as those two now depend on whether there's a vendor/bom to be enabled for that product. In the `setUpClass` however, without having the MTO route enabled by other means, there wouldn't be any route to display in the product form, resulting in a traceback at launch as the `route_ids` field would be invisible within the form. Now we make sure the MTO route is always enabled (as it doesn't make sense to assign an archived route), which also forces the display of `route_ids` in the product form. Also removes the assignation of the 'Manufacture' route on products, as its no longer necessary on product that have a bom. In `purchase_mrp`, we just remove the usage of the Form for product creation, as: - The `routes` argument was never even used - There was no point in creating these products through a form in the first place This avoids having to enable an extra route for "nothing", just to have `route_ids` appear in the form. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#238394
This update resolves an issue where archived subtasks remained visible in the Kanban view even with the 'Show Sub-Tasks' option disabled. The fix removes a previous setting that forced subtasks to be visible after archiving, now controlled solely by the toggle. This ensures a cleaner and more intuitive project management experience.
Original PR description
Steps to reproduce: - Install the Project app. - Create a task and a subtask under it. - Archive the subtask, then unarchive it. - Untoggle the Show Sub-Tasks Issue: Subtask remains visible in Kanban even when Show Sub-Tasks is untoggled. Cause: When a subtask is archived, the PR https://github.com/odoo/odoo/pull/148342 forces `display_in_project' to True Fix: Remove the logic that sets display_in_project to True on archived subtasks, since their visibility is now managed by the Show/Hide Subtasks toggle. task-5075134 Forward-Port-Of: odoo/odoo#230263
This update fixes an issue where mobile users were seeing both purchase and sales tax options when creating invoices. The fix ensures that invoices on mobile devices correctly display the appropriate tax types based on the current invoice settings, improving the user experience and data accuracy. This was a bug fix related to how tax types were being filtered on the mobile view.
Original PR description
Steps to reproduce ================== - Use a mobile viewport - Create an new invoice - Add an invoice line - Click on the Taxes field => Both purchase and sales taxes are available Solution ======== Copy the domain from the desktop list view https://github.com/odoo/odoo/blob/fcc677e900c2fccb9fa0bd88ef01c559cadfa08a/addons/account/views/account_move_views.xml#L1051-L1055 We also add the corresponding context and options opw-5124536 Forward-Port-Of: odoo/odoo#240116 Forward-Port-Of: odoo/odoo#237724