Monday, November 24, 2025
19 changes · 19.0
Enhancements to existing features
This change reduces noise in system logs by stopping the full contents of WebRTC messages from being recorded at the info level. Instead, only the message type and device are logged, which helps keep logs readable and avoids filling them with large receipt data. It also adds timing information for actions, making it easier to monitor performance.
Original PR description
Before this commit, the WebRTC client was logging every message it received in full at the 'info' level. This was causing logs to be flooded with base64 receipt data. We now only log the message type and device. We also now log the action execution time similarly to the websocket client. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update makes the test runner behave more gracefully when no tests are found, logging a message instead of raising an error. It also improves visibility in headless runs by showing the results of all top-level test suites at the end of execution, making debugging easier.
Original PR description
[FIX] web: Hoot - remove error if no tests This commit replaces the error thrown if there is no test found by a log. --- [IMP] web: Hoot - log root suites at end of run This commit makes the unit test runner log all root suites results after each test run, only in headless mode. Forward-Port-Of: odoo/odoo#236647
The TDS entry form now asks for the TDS Section before the Base Amount. This makes the input flow clearer and prevents the amount from changing after users have already entered it.
Original PR description
Before this commit: - In the TDS Entry wizard the Base Amount field appeared before the TDS Section field, causing users to enter a manual amount that later changed once the TDS Section is selected, since base amount is computed based on it. After this commit: - The TDS Section field is now placed before the Base Amount field to ensure a predictable input flow. task-5312252 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This change makes spreadsheet features use the translation context meant for spreadsheets, instead of falling back to generic terms. As a result, labels and messages in spreadsheets should appear more accurately and consistently for users in translated languages.
Original PR description
When we give the translation function to the o-spreadsheet library, we give `_t` which doesn't have the translation context which means all translations fallback on the general translated terms instead of using the spreadsheet specific terms. 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
Miscellaneous changes
This pull request updates the 19.0 branch with maintenance changes. No specific business-facing feature or issue details were provided, so the impact appears limited and not expected to affect daily operations significantly.
This update corrects the company used in a payroll accounting test so it matches the expected accounting setup. It helps ensure company-linked accounting data is validated consistently, reducing the risk of hidden configuration issues.
Original PR description
We are now testing for consistency between the company properties set on partners related to accounting values. opw-5127901
This change prevents editor placeholders from being inserted inside buttons and links. As a result, editable buttons like the product “Add to Cart” button keep their correct alignment and appearance when edited.
Original PR description
The "add to cart" button in the showcase view of products in website_sale is a block with `contenteditable=true` and a selection placeholder was inserted in it, messing up its layout (alignment). It shouldn't be there in the first place, as buttons and links are not meant to contain paragraphs. This commit prevents the insertion of selection placeholders in buttons and links. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The website now hides mega menu links when the linked content is not available to the current visitor, both on desktop and mobile. This avoids empty dropdowns and keeps the navigation cleaner and less confusing for users.
Original PR description
Before this commit, when setting the mega menu content visibility, the navbar link would still appear even if the user does not have access to the mega menu content. This commit hides the navbar link for the mega menu in the mobile and desktop view when the user does not have access to the mega menu content, in order to prevent unnecessary elements in the navbar. Steps to reproduce the bug: - Add a mega menu element in the navbar - Open the mega menu - Set the mega menu content visibility to conditional (logged in) - Open the website while logged out (The mega menu link is here but the content is not displayed. However, the dropdown is still opened but it is empty.) task-3992066 Forward-Port-Of: odoo/odoo#235714 Forward-Port-Of: odoo/odoo#179454
This update prevents long product attribute text from spilling outside the product card in the catalog view. It keeps the product image and details neatly contained, improving the layout and making the interface more reliable for users.
Original PR description
Steps to reproduce: 1. Go to Products > Create a new product. 2. Add or create a new attribute with a long text value. 3. Go to Sales > Open any quotation. 4. In the sale order line, click on…
Steps to reproduce: 1. Go to Products > Create a new product. 2. Add or create a new attribute with a long text value. 3. Go to Sales > Open any quotation. 4. In the sale order line, click on "Catalog" and search for the created product. Issue: - The product image and attribute value text overflow outside the product card in the kanban view, causing layout misalignment and breaking the UI design. <img width="647" height="225" alt="image" src="https://github.com/user-attachments/assets/afc592bb-e25a-4d81-882b-0e7cc7ad1064" /> Cause: - The inner div containing the attribute text lacked overflow control, allowing long text to exceed the container width and pushing other elements. Solution: - Added the Bootstrap class `overflow-hidden` to the div element to ensure the image and text remain properly contained within the card layout. <img width="587" height="171" alt="image" src="https://github.com/user-attachments/assets/580ce1e5-42bd-4c2d-b6bf-14315759626d" /> opw-5222002 Forward-Port-Of: odoo/odoo#235680 Forward-Port-Of: odoo/odoo#235214
The link popup no longer shows an unwanted horizontal scrollbar. This makes the editor look cleaner and keeps the action buttons neatly within the popup area.
Original PR description
### Description of the issue/feature this PR addresses: - The link popover started showing a horizontal scrollbar after the addition of the wand (magic) icon. The combined horizontal margins (`mx-1`) on all action buttons caused the total width to slightly exceed the popover’s fixed size. ### Desired behavior after PR is merged: - To fix this, removed the `mx-1` margins and used `gap-2` with `justify-content-end`, ensuring all buttons fit within the defined width without triggering overflow. task-5261323 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures table numbers appear correctly on receipts generated from self-orders in restaurant POS. It matters because staff and customers can now quickly identify the correct table on printed receipts, reducing confusion and mistakes.
Original PR description
**Steps to reproduce:** * Set up a `POS` with the restaurant module. * Go to `Configuration → Settings → Self Ordering` and set `QR Menu + Ordering`. * Set `Service At` to `Table` and `Pay After` to `Meal`. * Download QR codes from the `Get QR Codes` button in the POS restaurant interface. * Create a self-order by scanning the QR code. * Print the receipt. **Observed behavior:** When a self-order is created, the table number does not appear on the receipt, while orders created from the POS interface correctly display the table number. **Cause:** The receipt template only checks `table_id` to display the table number, but self-orders only have `self_ordering_table_id` set. **Fix:** Update the receipt header template and logic to also use `self_ordering_table_id` as a fallback when `table_id` is not set, ensuring the table number is correctly displayed on self-order receipts. opw-5250724
The product page now correctly hides the alternative products section when there are no alternatives to show. This fixes an issue where editing the section in Studio could leave an empty block visible to shoppers.
Original PR description
### Issue: In this issue, alternative products will continue to be shown even if the product has no alternative products, due to editing alternative products using studio. #### To reproduce: 1- Create a product with an at least one alternative product. 2- On product shop page, using studio, edit the description of alternative products. 3- Remove alternative products of the product. 4- As seen, the alternative products section is still shown, even though it is empty. ### Cause: This is due to `oe_structure` which doesn't copy the `t-if`. This makes `t-if=product.alternative_product_ids` to be missed in the new inherited view created by studio. opw-5253884
This change adds an extra step to a barcode manufacturing test so it matches the expected user flow more reliably. It helps prevent a flaky test failure, improving confidence in the stock barcode manufacturing process without changing business behavior.
Original PR description
Test `test_no_split_uncompleted_done_move` is failing non-deterministically after odoo/enterprise#98184 Runbot: 234351
This update prevents an error in Stripe webhook processing for expense payments when virtual card shipping details are missing. It helps keep expense-related payment updates running smoothly and avoids interruptions caused by unusual card data.
Original PR description
Add a fix to a pattern of error found in webhook events where virtual cards whose shipping value is "None" would be accessed as dict
This change prevents a test failure in runbot when demo data is enabled. It avoids creating duplicate users with the same login, which helps automated checks run reliably.
Original PR description
Avoid: "ValidationError: You can not have two users with the same login!" runbot-234230
This change adds automated tests to make sure report variants stay available when their conditions are met. It helps prevent a previously fixed issue from coming back in future updates, protecting users from missing report options.
Original PR description
…n tests previous commit: https://github.com/odoo/enterprise/commit/a01cac65346eee4ff78925e53036c01b83feaa8b The previous commit added urgently a fix to restore variants availability when their conditions are met. This test suite ensure the issue no longer occurs in the future. task-5262958
This update corrects a technical error that occurred when refreshing OSS mapping data with multiple companies enabled. The fix prevents a function from incorrectly processing all active companies, ensuring accurate data updates for OSS reporting. This resolves a potential data inconsistency issue.
Original PR description
To reproduce: - Activate multiple companies in the selector - Enable OSS on the active company - Click the refresh mapping button ===> Traceback, because a function expects to be called on a single company and is instead called on all the active companies. Forward-Port-Of: odoo/odoo#236397 Forward-Port-Of: odoo/odoo#236103
This update fixes an issue where composite reports weren't consistently applying filters. Now, enabling a filter on a composite report automatically ensures that the same filter is applied to its individual sections, ensuring accurate reporting results. This aligns with standard Odoo reporting practices.
Original PR description
When using a composite report whose sections aren't used independently, enabling that filter on the composite report needs to enable it on their sections as well, else it won't show in the UI. This is the standard behavior for all report filters. Forward-Port-Of: odoo/enterprise#100135
This update ensures superusers can access the HR employee version check, which was previously restricted to specific groups. This change aligns with existing superuser permissions and provides broader access for administrators to manage HR data. It resolves a limitation in the system's ability to accurately reflect user roles and permissions.
Original PR description
Since we check on a group we also should allow the superuser 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