Tuesday, February 3, 2026
37 changes · saas-19.1
Resolved issues and error corrections
The portal payment screen now displays a warning message when no payment providers are available, preventing the screen from scrolling to the bottom when the 'Pay' button is clicked. This ensures a better user experience and clearly communicates to customers that payment options are unavailable.
Original PR description
The portal payment screen incorrectly scrolls to the bottom when the Pay button is clicked, but no payment methods or warning message are shown. This happens when no payment provider is published. This PR fixes the issue by ensuring the "no provider" warning message appears in all cases. task-5388313 Forward-Port-Of: odoo/enterprise#101632
This update resolves an issue preventing the burndown chart from loading correctly in sample mode. The change ensures the necessary context is set for the chart's data retrieval, addressing a 'TypeError' error. This improvement ensures the burndown chart functions as expected across all Odoo environments.
Original PR description
The burndown chart embedded actions use action_id which bypasses the
Python method that sets required context (stage_name_and_sequence_per_id).
Without this context, the JS model makes RPC calls that fail in sample
mode when no project record is selected.
This change replaces action_id with python_method, following the same
pattern used by hr_timesheet for similar embedded actions.
Steps to reproduce:
1. Open Project app
2. Access burndown chart via embedded action without records
3. Sample mode triggers the crash
Current behavior: TypeError reading undefined field type
Expected behavior: Burndown chart loads with proper context
task-5347524
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-prThis update fixes a visual inconsistency in the live chat info panel. Previously, the 'Open Tickets' and 'Open Leads' section titles had a different font size than other sections. This change ensures a uniform and professional appearance for the live chat interface, improving the overall user experience.
Original PR description
**Description of the issue this PR addresses:** ------------------------------------------------ In the live chat info side panel, the "Open Tickets" and "Open Leads" section titles were displayed with a different font size compared to the other section titles. This created an inconsistent visual appearance in the info side panel. **Current behavior before PR:** --------------------------------- - "Open Tickets" and "Open Leads" titles use a different font size **Desired behavior after PR is merged:** ----------------------------------------- - "Open Tickets" and "Open Leads" titles use the same font size as other sections - Info side panel displays a consistent and uniform style **Task:** [5385392](https://www.odoo.com/odoo/project/1519/tasks/5385392) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#244699
This update resolves a warning that occurred when updating the Chart of Accounts in the l10n_ie module. The issue stemmed from updating the Chart of Accounts too late – after the main Odoo modules had loaded. Moving the update to an ‘end-script’ ensures it happens when all modules are ready, preventing the warning and maintaining system stability.
Original PR description
We faced a warning because this update doing a try_loading is called in `post-` scripts (after the module is loaded) and not in `end-` scripts (when all modules are loaded). All l10n_* modules were changed in this PR: https://github.com/odoo/odoo/pull/183359 Regarding the changes in this PR related to Registry: https://github.com/odoo/odoo/pull/186467 see: https://github.com/odoo/odoo/pull/222186 upg-3828301 **Reference Image** <img width="1769" height="39" alt="2026-01-28_18-44" src="https://github.com/user-attachments/assets/8aa5f213-b150-403b-b2a1-0bc9ed4a4ccc" /> 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#246541
This update resolves an issue where customer invoices sent via Peppol were generating duplicate attachments, leading to a cluttered user experience. The fix ensures that attachments are updated instead of created anew, preventing this duplication and streamlining the invoicing process. This improves the clarity and efficiency of invoice delivery.
Original PR description
When sending a customer invoice via Peppol, the system creates duplicate attachments (4 instead of 2 expected), cluttering the chatter and the attachment sidebar. This commit: - Implements a search-and-update logic for attachments to ensure idempotency (updates existing instead of creating duplicates). task-5438951 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#246345 Forward-Port-Of: odoo/odoo#241130
This update resolves an issue that prevented invoices with specific attachments from being correctly imported into Odoo. The problem stemmed from a double decoding of base64-encoded data, causing an error. This fix ensures invoices with attachments are now imported successfully, improving the reliability of invoice processing.
Original PR description
When importing invoices, some text files encoded in `<Attachments>` cause a traceback and prevent the XML from importing. This error appears to be the direct result of decoding the text files twice, introduced in PR #212726. Steps to reproduce: 1. Install `l10n_it_edi`. 2. Create a customer invoice for Biscotti Oslengi, then send the xml to the SDI. Download the XML file. 3. In a text editor, replace the base64-encoded PDF information inside `<Attachments>` with `VGhpcyBpcyBhIHRlc3Qgc3RyaW5nLg0K`. This is the base64 encoded string `"This is a test string.\r\n"`. 4. Change the `<FormatoAttachment>` from `PDF` to `TXT`. 5. Upload the edited invoice file to Accounting > Customers > Invoices. 6. The exception `Invalid base64-encoded string` is raised. [opw-5388360](https://www.odoo.com/odoo/unassigned-tasks/5388360) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246220
This update resolves a problem with a test related to image saving on the website. Previously, the test was unreliable because the image modification process wasn't consistently triggered. The fix ensures the test runs predictably by waiting for the necessary image update to complete, improving the stability of our website tests.
Original PR description
The purpose of this commit is to fix the non-deterministic test “Save image with correct parameter.” There is no guarantee that ‘modify_image’ will be executed during the next animationFrame. Solution: Use “expect.waitForSteps” to wait for “modify_image” to be executed. error-238377 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#246788
A recent test for adding cover images to the website was occasionally failing. This was caused by delays in loading images through a system process, which exceeded a pre-set time limit. This update ensures the test consistently passes by waiting for the image loading process to complete, improving website image functionality.
Original PR description
The test "Add image as cover" was failing intermittently due to image loading depending on an RPC with an unpredictable duration. This could exceed the 200ms timeout used in waitFor. Use `waitSidebarUpdated`` to wait for the ongoing action to finish and ensure the sidebar is fully updated. error-Add image as cover 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#246553 Forward-Port-Of: odoo/odoo#246470
This update resolves a technical problem in Odoo's API documentation that prevented accurate representation of list type annotations in Python 3.10. The change ensures that list type definitions are correctly formatted for documentation, improving the clarity and reliability of the API reference.
Original PR description
In python 3.10, `parse_signature` causes some issues with some of the newer type annotations (eg: `list[int]`). This broke several test cases in api_doc where signatures were stringified except when converted from `Self`, `models.BaseModel` and `models.Model`. This commit forces those type aliases to be replaced by the string `'list[int]'`. runbot-237792 Forward-Port-Of: odoo/odoo#246563
This update resolves a visual bug in Firefox where the separator line below list headers would disappear at certain zoom levels when sticky headers were enabled. The fix ensures the list header border remains visible, improving the user experience and consistency across browsers.
Original PR description
In Firefox, the separator below the list header could disappear at certain zoom levels when using sticky headers. After this commit, the list header border will not disappear. Task-5249221 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245405
This update resolves a testing issue by streamlining the dependencies for the hr_payroll_account_iso20022 module. It now relies solely on hr_payroll and account_iso20022, eliminating errors caused by an outdated dependency requirement. This ensures smoother testing and consistent functionality.
Original PR description
hr_payroll_account_iso20022 did not depend on hr_payroll_account but only on hr_payroll and account_iso20022. This was causing some errors in tests that were expecting hr_payroll_account to be installed. Runbot Error: 237797
This update resolves issues with the generation of XML invoices for HR EDI, specifically correcting an incorrect XML structure and improving error handling during payment reporting. These changes ensure accurate invoice processing and a more reliable user experience for users of the HR EDI module.
Original PR description
- Adjusting the hrextac xmlns to the updated one - Adjusting MER payment report button to not show incorrectly - Improving error handling for MER payment reporting task-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246654 Forward-Port-Of: odoo/odoo#246083
This update fixes a technical issue that was causing intermittent errors during the website tour setup. The fix ensures the system correctly waits for the main loading screen to disappear, preventing a confusing warning message and improving the overall tour experience for users. This resolves a stability problem.
Original PR description
`insertSnippet` has a step to wait for `o_loading_screen` to disappear, but it is querying the iframe inside the dialog instead of the main iframe. This issue causes the following undeterministic warning error: ``` should not have any "characterData", "remove" or "add" mutations in current step when you update the selection ``` Ensure we are waiting for the loading screen of the correct iframe. runbot-229803 Backport-Of: https://github.com/odoo/odoo/pull/246750 Forward-Port-Of: odoo/odoo#246819
This update resolves an issue that caused a display error when creating and previewing subscription quotations/orders. Specifically, the system was encountering a problem when accessing price information for subsections. This fix ensures a smoother and more reliable preview experience for users.
Original PR description
Steps to reproduce: ------------------- 1. Install sale_management with demo data 2. Create a new quotation/order and add a section and a subsection 3. Drag the subsection line above the section line…
Steps to reproduce:
-------------------
1. Install sale_management with demo data
2. Create a new quotation/order and add a section and a subsection
3. Drag the subsection line above the section line
4. Confirm it and click on Preview
Issue:
------
```python
Traceback (most recent call last):
The error occurred while rendering the template sale_subscription.subscription_portal_content and evaluating the following expression: <t t-set="collapse_prices" t-value="current_section.collapse_prices or line.collapse_prices"/>
Error while rendering the template:
AttributeError: 'NoneType' object has no attribute 'collapse_prices'
Template: sale_subscription.subscription_portal_content
Reference: 1713
Path: /t/div[4]/section[1]/div[1]/table/tbody/t[4]/t[11]/t[3]
Element: <t t-set="collapse_prices" t-value="current_section.collapse_prices or line.collapse_prices"/>
From: (1712, '/t/t', '<t t-call="portal.portal_layout"/>')
(1712, '/t/t/body/div[1]/div/div[2]/div[11]/div/t', '<t t-call="#{sale_order._get_name_portal_content_view()}"/>')
(1713, '/t/div[4]/section[1]/div[1]/table/tbody/t[4]/t[11]/t[3]', '<t t-set="collapse_prices" t-value="current_section.collapse_prices or line.collapse_prices"/>')
```
Cause:
------
Since current_section is None in this case, it leads to the
above traceback when trying to fetch the collapse_prices value.
Solution:
---------
Convert subsection lines without a parent_id into section lines
to prevent the traceback.
Related enterprise PR: https://github.com/odoo/enterprise/pull/103686
opw-5367739
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#241634This update resolves a technical issue that prevented the subscription preview from displaying correctly for certain subscription types. The problem stemmed from how recurring products were being handled within the subscription setup, specifically related to section and subsection pricing. This fix ensures the preview renders accurately, improving the user experience.
Original PR description
Steps to reproduce: ------------------- 1. Install sale_subscription with demo data. 2. Create a new subscription and add a Section and a Subsection. 3. Add a recurring product (Invoice_policy =…
Steps to reproduce:
-------------------
1. Install sale_subscription with demo data.
2. Create a new subscription and add a Section and a Subsection.
3. Add a recurring product (Invoice_policy = 'order') and configure a recurring plan.
4. Confirm the subscription and click Preview.
Issue:
------
```python
Traceback (most recent call last):
The error occurred while rendering the template sale_subscription.subscription_portal_content and evaluating the following expression: <t t-set="collapse_prices" t-value="current_section.collapse_prices or line.collapse_prices"/>
Error while rendering the template:
AttributeError: 'NoneType' object has no attribute 'collapse_prices'
Template: sale_subscription.subscription_portal_content
Reference: 1713
Path: /t/div[4]/section[1]/div[1]/table/tbody/t[4]/t[11]/t[3]
Element: <t t-set="collapse_prices" t-value="current_section.collapse_prices or line.collapse_prices"/>
From: (1712, '/t/t', '<t t-call="portal.portal_layout"/>')
(1712, '/t/t/body/div[1]/div/div[2]/div[11]/div/t', '<t t-call="#{sale_order._get_name_portal_content_view()}"/>')
(1713, '/t/div[4]/section[1]/div[1]/table/tbody/t[4]/t[11]/t[3]', '<t t-set="collapse_prices" t-value="current_section.collapse_prices or line.collapse_prices"/>')
```
Cause:
------
`_get_invoiceable_lines` does not treat subsection lines as children of their parent section.
As a result, `lines_to_report` contains a subsection without its corresponding section,
leaving current_section set to None and causing the traceback when accessing current_section.collapse_prices.
Solution:
---------
Ensure subsection lines are appended together with their parent section
when an invoiceable line is encountered
Related community PR: https://github.com/odoo/odoo/pull/241634
opw-5367739
Forward-Port-Of: odoo/enterprise#103686This update fixes an issue where certain Odoo records wouldn't open correctly in their default form view. The change ensures that records can be opened with other views enabled, providing a smoother and more flexible user experience. This resolves a technical glitch that was impacting how records are accessed.
Original PR description
Records of some models may not want to be shown in their form view by default. See related ENT PR for documents. We re-export to avoid patching order issues. In particular, this makes sure that if we are in the webclient, the chat window is opened before executing the "real" open. Task-5386466 Forward-Port-Of: odoo/odoo#246525 Forward-Port-Of: odoo/odoo#244289
This update resolves an issue where the background color of nested columns within tabs was being incorrectly overridden. The fix ensures that tab styling applies correctly, regardless of the column structure used within the tab panes. This improves the visual consistency of the Odoo interface.
Original PR description
Steps to reproduce: =================== 1- Drop the block tab snippet 2- Inside one of the tab panes, drop a Columns snippet. 3- Select background_color for one of the columns 4- Change tab style to…
Steps to reproduce: =================== 1- Drop the block tab snippet 2- Inside one of the tab panes, drop a Columns snippet. 3- Select background_color for one of the columns 4- Change tab style to tab -> The background color of the inner column is overridden. Cause: ====== When the "Tabs" snippet style is set, a `.card` class is added to its container (See [1]) A generic CSS rule, intended to style these tabs, was targeting any `.card` element with a `.card-body` child. (See [2]) However, the Columns snippet also uses a `.card > .card-body` structure (distinguished by a `data-vxml` attribute). This caused the overly broad tab-styling rule to incorrectly cascade and override the background color of the nested column. Solution ======== The SCSS selector has been made more specific so that works if `card-body` class doesn't have any parent class with class `card` and has attribute `data-vxml` [1]: https://github.com/odoo/odoo/blob/4cb3ffc09507fdfdb1aeabb70b2c93105f992700/addons/website/static/src/snippets/s_tabs/options.js#L149 [2]: https://github.com/odoo/odoo/blob/4cb3ffc09507fdfdb1aeabb70b2c93105f992700/addons/web/static/src/scss/bootstrap_review_frontend.scss#L55 opw-5394480 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241118
This update addresses a visual issue in the Point of Sale action dialog where disabled buttons had insufficient contrast. We've enhanced button visibility by using a consistent lighter background color for disabled states and added a border, ensuring better clarity for users, especially in bright environments. This improves the overall user experience and accessibility.
Original PR description
Before this PR there was a contrast issue between disabled and active secondary buttons in the action dialog. This was due to a customization where the `btn-secondary`'s default background color was…
Before this PR there was a contrast issue between disabled and active secondary buttons in the action dialog. This was due to a customization where the `btn-secondary`'s default background color was lightened. To fix this, we used the same lighter background color for disabled `.btn-secondary`, reduced the opacity of its text and desaturated tho whole button for whenever there is color such as the "reward" button. This way we can distinguish between the two states. A border was added to `.btn-secondary` in order to make the button more visible in light-challenging situations (in broad daylight for example). task-5186928 | Before | After | | ------------- | ------------- | | <img width="1002" height="647" alt="Screenshot 2025-11-06 at 13 17 27" src="https://github.com/user-attachments/assets/cc63d6e1-8587-427e-b5cd-de99e96df8c0" />|<img width="1004" height="645" alt="Screenshot 2025-11-06 at 12 58 07" src="https://github.com/user-attachments/assets/f199fd94-1223-4c6b-869b-e8d66d99bc82" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232969
This update enhances the Point of Sale mobile experience by ensuring that product categories are displayed efficiently on smaller screens. The UI now automatically scrolls to show all categories when more than three are present, and a small visual improvement (padding) has been added to the product list for a cleaner look. This improves usability for mobile sales staff.
Original PR description
Only three rows needs be displayed on small devices and if there are more, it must be scrollable. Adding of padding for the product in the product list to render a bit prettier. task : 5490918 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where product descriptions couldn't be edited on completed or cancelled stock picks. Now, users can correct descriptions for finished orders, improving data accuracy and reducing manual rework. This change ensures that product information is always up-to-date.
Original PR description
Once a picking is no longer in draft, it's not possible to edit a product description anymore and there's no easy way to correct a mistake. Solution: only make it readonly in done or cancel state. task 5083104 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246611 Forward-Port-Of: odoo/odoo#243109
This update allows users to star persistent messages like sign requests, even if they aren't part of a conversation thread. Previously, these messages couldn't be starred. This change simplifies the starring process and improves user functionality.
Original PR description
**Description of the issue this PR addresses:** Starring a message should depend on whether the message is persistent and whether the current user is allowed to star it, not on whether the message is attached to a thread. **Current behavior before PR:** Some persistent messages (such as user notifications) can be displayed in Inbox without an associated thread. In such cases, the star action was unavailable even though the message itself was valid and persistent. **Desired behavior after PR is merged:** This change removes the dependency on thread presence when determining whether a message can be starred. As a result, users can now star persistent messages without a thread, including Inbox notifications such as sign requests. task-[5473438](https://www.odoo.com/odoo/project/1519/tasks/5473438) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246787 Forward-Port-Of: odoo/odoo#244204
This update resolves a UI error that prevented link previews from working correctly when creating buttons within Odoo's email templates. The fix ensures that link previews function consistently across both the standard website view and template editor, improving the user experience for creating marketing content.
Original PR description
**Steps to reproduce:** - Install `mass_mailing` and `website_sale`. - Go to Email Marketing > Create new record. - In the template editor, insert a /button. - Set the URL to `/shop` and select it…
**Steps to reproduce:** - Install `mass_mailing` and `website_sale`. - Go to Email Marketing > Create new record. - In the template editor, insert a /button. - Set the URL to `/shop` and select it from the app URLs. - Click on Apply, then click on the newly created button. **Issue:** - Clicking on the button raises a UI error: `This URL is invalid. Preview couldn't be updated.` **Root cause:** - In [1], `this.props.document.url` is used. - This works in the website editor, but in template view `this.props.document` points to the iframe document, not the document. **Solution:** - Replace `this.props.document.url` with `document.URL`. - This ensures the preview works correctly in both website and template views. [1]https://github.com/odoo/odoo/blob/12d63b536dddc40428fb5edb6f6b3302605dc72d/addons/html_editor/static/src/main/link/link_popover.js#L506-L507 **Before:** <img width="381" height="123" alt="image" src="https://github.com/user-attachments/assets/1370b04d-8bc6-40b9-b7b0-77413a36bd51" /> **After:** <img width="419" height="119" alt="image" src="https://github.com/user-attachments/assets/d5d47a47-1805-4b1f-b852-88ea725beaba" /> opw-5428680 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240836
This update resolves a test failure related to a date selection field in the EC accounting module. The test was failing because the date range was restricted, and 2021 was no longer a valid option. A simple change to the wizard's selection process ensures the test uses the correct 'frozen selection' data, addressing a potential future issue with long-running servers.
Original PR description
The selection field of the dividend_fiscal_year has a restricted range based on dates, which has implication for the frozen dates in the test. That is why the test will fail today: 2021 is not anymore in the selection. But, suppose however that you have a server running for 3 years, it could be problematic as well. (quite theoretical however) So we can simply make the selection field selection in the wizard a lambda method and that way also in the test, it will take the 'frozen selection'. build error 237681 https://runbot.odoo.com/odoo/runbot.build.error/237681 Forward-Port-Of: odoo/enterprise#106132
This update resolves a technical error that prevented printing from IoT printers within the Point of Sale system. The fix addresses an 'undefined' error, ensuring reliable printing functionality for users. This improvement enhances the overall reliability of the Odoo Enterprise system.
Original PR description
This PR fixed "error: undefined" when printing via websocket with iot printers in point of sale task-5496890
This update removes outdated comments and notes from the sale_renting module, stemming from a previous exploration of a feature change. This improves the clarity and organization of the codebase, ensuring it remains focused on its core functionality. The change is a routine maintenance task.
Original PR description
During the development of #102625, the idea of splitting the conversion date from the order date was explored. However, it was quickly dismissed, and some outdated comments slipped through.
This update fixes a bug that occurred when users copied and then undid copying planning slots. The issue was triggered when a previously deleted slot was involved in the undo process, resulting in an error message. The fix ensures the system verifies a record exists before attempting to delete it, preventing the error.
Original PR description
### Steps to reproduce: - Install Planning - Navigate to the gantt view for planning slots - Copy previous week's slots - Delete one of the newly copied records - Undo the copying action - Notice an Error is raised that a record doesn't exist ### Cause: When undoing the copy process we unlink all the newly created records but if the user has already deleted one of them it will trigger an error that this record doesn't exist and it has already been deleted ### Fix: We check the existence of the records before deleting them. opw-5490327 Forward-Port-Of: odoo/enterprise#105530
This update fixes an issue where the 'Next Booking Start' field for rooms was displaying incorrectly when a room had future bookings. The change removes a filtering rule that prevented the system from calculating the next available start time for occupied rooms, ensuring accurate booking information is displayed.
Original PR description
Steps to reproduce:
1. Install `room`
2. Create a room.
3. Create a booking for the current time (so the room becomes occupied).
4. Create another booking for tomorrow.
5. Open the list view of rooms.
Current Behavior:
- The `Next Booking Start` field is empty for the created room, despite Having future bookings.
Cause:
- The method `_compute_next_booking_start` filters the rooms using `self.filtered('is_available')`. Since the room is currently occupied (due to the active booking), the room is excluded from the query entirely.
Solution:
- Remove the `is_available` filter from the search domain. The next booking start time is now calculated for all rooms, regardless of whether they are currently available or occupied.
opw-5360101
Forward-Port-Of: odoo/enterprise#102129This update resolves a problem preventing the l10n_be_hr_payroll_fleet module from installing correctly when automatic dependencies aren't enabled. The fix ensures the necessary 'hr_fleet' module is installed, preventing a data error during demo data creation. This ensures the module functions as intended.
Original PR description
Steps to reproduce: 1. Install l10n_be_hr_payroll_fleet with --skip-auto-install and demo data. 2. Traceback when creating demo data because driver_employee_id is missing on the model fleet.vehicle Cause: The module depends on fleet instead of hr_fleet so hr_fleet is only auto installed. Thus, when skipping auto install, the field driver_employee_id doesn't exist. Fix: Change the dependency from fleet to hr_fleet to force the module to be installed. Runbot error: https://runbot.odoo.com/odoo/runbot.build.error/237909 Task: 5875410 Forward-Port-Of: odoo/enterprise#106199
This update resolves an issue where sending a voice message without text would cause the WhatsApp integration to fail. The fix ensures that the system correctly handles empty voice messages, preventing errors and allowing users to send voice messages without additional steps. This improves the reliability of the WhatsApp channel within the Odoo platform.
Original PR description
Sending a voice message without any text can trigger a WhatsApp API error because the empty HTML body is incorrectly treated as a valid text message. ### Reproduction Steps 1. Open the Discuss app.…
Sending a voice message without any text can trigger a WhatsApp API error because the empty HTML body is incorrectly treated as a valid text message. ### Reproduction Steps 1. Open the Discuss app. 2. Select a WhatsApp channel. 3. Record and send a voice message without typing any text in the composer. 4. Observe the message status. Result: The status changes from "Sent" to "Failed" with the error `(#100) The parameter text['body'] is required`. ### Cause The WhatsApp API does not support captions for audio files. Messages containing both audio and text are split into two separate WhatsApp messages: one for the audio file and one for the text body. Whether the text message is created depends on whether the message body is considered non-empty. Since commit odoo/odoo@f4dcc83adf552466ba7b05f09a4c651fe69f18ff , the composer’s default content is an empty HTML element. Although visually empty, this HTML is still a non-empty string at the data level. As a result, the system incorrectly determines that a text message is required and creates a secondary `whatsapp.message` record. When processed, the empty HTML is converted to a plain text string (`""`). Sending this as a text message fails validation because WhatsApp requires a non-empty body for text messages. ### Fix 1. Update `DiscussChannel.message_post()` to use `tools.is_html_empty(body)` to detect semantically empty HTML. This prevents creating a separate text message for audio attachments when the composer content is effectively empty. 2. Update `WhatsappMessage._send_message()` to check the truthiness of the converted plaintext `body` rather than the raw HTML field before adding a caption. This prevents sending an empty `caption` parameter for attachments when the body is empty. opw-5266805 Forward-Port-Of: odoo/enterprise#103213
This update simplifies the subscription plan view by removing irrelevant order line details like sections and discounts. The change focuses only on subscription products, making it easier for users to configure and understand their subscription plans. This improves usability and reduces visual clutter.
Original PR description
The subscription plan view was displaying all order line types, including sections, notes, and discount lines, which added unnecessary clutter. This update filters the order lines to display only actual subscription products, improving clarity and usability in the plan configuration. task-5404614 Forward-Port-Of: odoo/enterprise#106076 Forward-Port-Of: odoo/enterprise#101796
This update fixes a translation issue where warnings on Swiss payroll slips didn't correctly display translated field names. The fix ensures that all missing information fields are translated into French (CH) for improved clarity and compliance. This improves the user experience for French-speaking Swiss users.
Original PR description
The warnings that appear on a payslip when the employee's form misses information are not fully translated Steps to reproduce: 1. Install module l10n_ch_hr_payroll 2. Switch to "My Swiss Company" and change language to French (CH) 3. Open app "Paie" and create a new employee (only add a name) 4. Click on "Contrats" in the stat button and create a new contract for the employee (only add a name), save it and set it as "En cours" in the status bar 5. Go to "Fiches de paie" > "Toutes les fiches de paie" and create a new payslip 6. Add the newly created employee to the payslip 7. The warnings in the form displaying the missing fields from the employee form do not translate the name of the missing fields Solution: Use `get_description` to get the translated name of the missing fields opw-5403634 Forward-Port-Of: odoo/enterprise#106188 Forward-Port-Of: odoo/enterprise#104499
A recent issue preventing the sign tour from working correctly has been resolved. The fix ensures the tour opens the document in the correct signing view, restoring successful test results and improving the document signing experience. This resolves a bug that was impacting UI tests.
Original PR description
The sign_tour was failing because the `.o_sign_sign_directly` button was not found in the document view, causing the tour step to timeout and breaking both sign UI tests. This was due to the tour not properly opening the document in the signing view. The tour now relies on a stable selector, restoring successful execution of `test_sign_tour` and `test_sign_tour_without_sign`. Runbot issue: https://runbot.odoo.com/odoo/runbot.build.error/234923 Forward-Port-Of: odoo/enterprise#105844
This update corrects a temporary issue with the automatic download of Swiss tax rates. Recent changes by the Federal Tax Administration required adjustments to the URLs used for importing these rates, ensuring the payroll system continues to function correctly. This ensures accurate payroll calculations for our Swiss clients.
Original PR description
Due to recent updates on the Federal Tax Administration website, the single-canton import feature was made temporarly unavailable, this PR adjusts the new URLs for downloading the tax rates Forward-Port-Of: odoo/enterprise#106288
This update corrects a technical issue with the XML code used for invoices and withhold documents in the Odoo Enterprise accounting module. The fix removes an extra closing tag, ensuring the system generates properly formatted invoices and avoids potential errors. This ensures accurate financial reporting.
Original PR description
Currently, the `account_move_form_invoice_and_withhold_view` contains an invalid closing group tag (`</group>>`) introduced by PR [1], at [2]. The extra `>` results in malformed XML. This commit removes the stray character and restores a properly closed `</group>` tag. [1]: https://github.com/odoo/enterprise/pull/77592 [2]: https://github.com/odoo/enterprise/blob/7c574d758ff5b1404b808cc647d4a2ae40f5f0c0/l10n_ec_edi/views/account_move_views.xml#L79 **No task Id** Forward-Port-Of: odoo/enterprise#106104
This update fixes a potential issue where old, unused account synchronization links could cause problems, preventing new connections. By focusing on fresh, uninitialized links, the system now reliably establishes and maintains account synchronization. This ensures smoother data flow and avoids disruptions for users.
Original PR description
Prevent reusing stale account.online.link records that have a provider_type set, which can leave an unusable row and block new connections. By adjusting the search domain in action_new_synchronization, we only reuse clean, uninitialized links. opw-5868438 opw-5867799 Forward-Port-Of: odoo/enterprise#106259 Forward-Port-Of: odoo/enterprise#105187
This update resolves a test failure within the Enterprise module's web_studio functionality. The change prevents unintended modifications to a key configuration setting, ensuring consistent test results and preventing disruptions during the full system deployment process. This improves the reliability of our automated testing.
Original PR description
Updating the fieldsets of `DEFAULT_FIELDS_TO_EXECUTE` in place changes the behaviour of `test_23_export_hardcoded_models_and_fields` if that test runs after `_compute_excluded_fields` has been executed for one reason or an other, which apparently does not occur during post_install but *does* occur during at_install, and so fails in the "full" enterprise test running everything in a single job. https://runbot.odoo.com/odoo/error/238451 https://runbot.odoo.com/odoo/error/238449 https://runbot.odoo.com/odoo/error/238497 Forward-Port-Of: odoo/enterprise#106110
This update ensures the accounting dashboard data is compatible with the latest Odoo version (19.1). It upgrades the underlying data format to address a compatibility issue, preventing errors and maintaining the dashboard's functionality. While partially functional for simple filters, further improvements are needed for more complex filter options.
Original PR description
This commit upgrades the data for the accounting dashboard from the 18.4.x file format to 18.5.x The goal is to avoid having `ODOO.FILTER.VALUE` being upgraded to `ODOO.FILTER.VALUE.V18` because the dashboard was already adapted to work[*] with the new formula see 682d6ec1ddb825674999e0db1fc0cc48c3be67c5 *: it only half-works. It only works for simple values of filters (years, quarter, months), but it doesn't work properly with others (Last 7 days, etc.) Forward-Port-Of: odoo/enterprise#106269