Tuesday, December 30, 2025
9 changes · 19.0
Resolved issues and error corrections
This fixes a visual issue in Odoo Mail where the unread message separator could be covered during the jump highlight animation. Users can now navigate to new messages with the separator remaining clear, preserving the expected reading experience without changing message behavior.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In saas-18.2, the unread message separator can visually overlap with the message jump/highlight…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In saas-18.2, the unread message separator can visually overlap with the message jump/highlight animation when navigating to unread messages. This issue was not present in 18.0 and results from reduced vertical spacing between the unread separator and the first unread message. **Current behavior before PR:** ---------------------------------------------- - Clicking the “X new messages” banner triggers a jump highlight animation - The highlighted message overlaps the unread red separator line - The separator becomes partially or fully obscured during the animation **Desired behavior after PR is merged:** ---------------------------------------------- - The unread separator remains clearly visible during message jump/highlight - No overlap occurs between the separator and the highlighted message - Highlight animation behavior remains unchanged - Visual behavior matches the stable experience observed in 18.0 This PR restores sufficient vertical spacing for the unread separator line, preventing overlap without altering message animation or interaction logic. Task-5420965 I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241294
Corrects which editing options appear when configuring dynamic website snippets, such as blog snippets. This prevents irrelevant Model and Template controls from showing to website editors, making page editing clearer and less error-prone.
Original PR description
Steps to reproduce (19.0+): 1. Add a "Blog" mono-record snippet to a website page. 2. Select the snippet → the "Model" and "Template" options are visible. The code from [1], which introduced mono-record dynamic snippets, restricted the visibility of these options as follows: - The "Model" option should only be visible for generic mono-record snippets (in `Debug` mode). - The "Template" option should be available for generic snippets and, exceptionally, for the "Products" snippet (which had no default layouts in the snippets dialog). Starting from [2], these conditions are no longer applied, as the change simply removed the `props.modelNameFilter` used in the XML to enforce them. [1]: https://github.com/odoo/odoo/commit/e3b062e5d3820ddfcee2eb669f21edc0c53c3330 [2]: https://github.com/odoo/odoo/commit/36f741745b927d7cbac9b32042bd53b47711da6f related-task-4280375
This fix prevents long or multi-line out-of-stock messages on ecommerce product pages from being squeezed into a single overflowing line. Customers will see stock availability messages displayed cleanly inside the badge, improving readability and page presentation.
Original PR description
- Before saas-18.4, the [out-of-stock](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale_stock/static/src/xml/website_sale_stock_product_availability.xml#L8) message was rendered as…
- Before saas-18.4, the [out-of-stock](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale_stock/static/src/xml/website_sale_stock_product_availability.xml#L8) message was rendered as plain text without any layout-specific classes, allowing the message to wrap naturally. **Reference of version saas-18.3** <img width="1920" height="768" alt="2025-12-16_18-53" src="https://github.com/user-attachments/assets/d7670fa4-6808-40d7-9bad-768d0637f366" /> - From saas-18.4, the [out-of-stock](https://github.com/odoo/odoo/blob/saas-18.4/addons/website_sale_stock/static/src/xml/website_sale_stock_product_availability.xml#L13-L16) message is rendered using `t-out`, which outputs plain text and collapses line breaks, causing the message to appear on a single line and overflow when used with `d-inline-flex`. See screenshots in the PR description (Before fix). <img width="1920" height="672" alt="2025-12-16_14-28" src="https://github.com/user-attachments/assets/927080cd-f2b0-45cd-ae0a-2917699c05f6" /> - Updated the layout to replace `d-inline-flex` with `d-flex` and apply `text-break` on the message container so long and dynamic texts wrap correctly inside the badge. See screenshots in the PR description (After fix). <img width="1918" height="682" alt="2025-12-16_14-31" src="https://github.com/user-attachments/assets/2cafdc61-e494-468a-9d41-08ab3c83b041" /> opw-5274850 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#240235
Forum posts no longer offer image size options that cannot be saved correctly. This prevents users from choosing 25% or 50% image sizes that would be lost when the post is saved, reducing confusion and mismatched formatting.
Original PR description
Problem: When creating a new forum post with an image set to "50%" or "25%" size, the post is saved with the original image size instead of the selected one. Cause: The `Post.content` field has `strip_style=True`, which removes any inline `style` attributes before saving. Since image size ratios were applied using `style="width: 50%"`, the width information was lost. Solution: Disable image size options that depend on inline `style` attributes, as they cannot be preserved when saving forum posts. Steps to reproduce: 1. Go to Forum. 2. Create a new post. 3. Add an image and set its size to 50% or 25%. 4. Save the post — the image appears with its original size. opw-5173917 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240442 Forward-Port-Of: odoo/odoo#234354
Fixes an issue where replacing a picture block image with a video could make the video appear much smaller than expected. This helps website editors maintain consistent page layouts when switching media types.
Original PR description
Steps to reproduce: - Drop "s_picture" snippet. - Replace the image with a video. - Video is clearly small than the original image. This commit fixes the issue by adding a "w-100" class to the figure element wrapping the image. task-5136212
Search suggestion dropdowns now appear correctly when a search bar is placed inside grid-based website snippets. This prevents visitors from missing autocomplete results behind product category blocks, improving the shopping and navigation experience.
Original PR description
Steps to reproduce: =================== - Add a product categories block with a search bar in the inner content of the block, like "s_product_list". - Drag a "Search" snippet inside of the block in…
Steps to reproduce: =================== - Add a product categories block with a search bar in the inner content of the block, like "s_product_list". - Drag a "Search" snippet inside of the block in top of products categories - Change the layout to "Grid" & Save. - Type in the search bar to trigger autocomplete suggestions. -> The suggestions appear behind the product categories and are not visible. Cause: ====== When a searchbar snippet is placed inside a section using grid mode, the autocomplete dropdown was hidden behind sibling grid items. This occurred because the grid layout applies inline z-index to each column (via `_placeColumns` `in grid_layout_utils.js` (See [1])), creating stacking contexts that trapped the dropdown. So once you change to grid mode layout `_toggleGridMode` function will be triggered which will call `_placeColumns` that will assign z-index; (See [2]) Solution: ========= Override the inline z-index on grid items containing a searchbar [1]: https://github.com/odoo/odoo/blob/d4411c27b469e5dcc526b5b1f8ea4498f2b08567/addons/web_editor/static/src/js/common/grid_layout_utils.js#L225 [2]: https://github.com/odoo/odoo/blob/d4411c27b469e5dcc526b5b1f8ea4498f2b08567/addons/web_editor/static/src/js/common/grid_layout_utils.js#L138 opw-5392011 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241478 Forward-Port-Of: odoo/odoo#239607
Website editor snippets with background images now keep their intended spacing when switched to grid mode. This prevents image sections from appearing unexpectedly small, especially on mobile previews, helping editors maintain consistent page layouts.
Original PR description
Steps to reproduce: =================== - In website edit mode, drop the "Split Intro" snippet. - Toggle it to grid mode. => the image column is smaller than expected. - Switch to mobile view => the image column is really small. Cause & solution: ================= When toggling a snippet to grid mode, when computing the size of the grid items, the padding of a column is taken into account only if it has a background color (`o_cc` class), in order to look as close as possible as before. The background images are therefore not considered, so the size is computed without the padding, resulting in a grid-area smaller than expected, and the default grid item padding (which is why it is that small in mobile view). This commit fixes that by including the background image class (`oe_img_bg`) in the check used to consider the padding. opw-5374492 Forward-Port-Of: odoo/odoo#240573
This update fixes an issue where payslips were not displaying currency symbols correctly. A small, hidden field was added to the payslip form to ensure the correct currency is associated with monetary amounts, improving the accuracy of payroll reporting.
Original PR description
The properties widget relies on the presence of the currency field in the view. Add an invisible currency_id field to the payslip form to properly display monetary symbols. task-5357836
This update fixes an issue where Brazilian POS orders weren't correctly displaying their NFC-e sequence number in the backend. The fix adjusts a key method to ensure order names accurately reflect the defined sequence (e.g., POS-1234 instead of POS-00001), aligning with Brazilian tax regulations.
Original PR description
Brazilian order shoud follow the NFC-e sequence defined in the POS config. Steps to reproduce: ------------------- * Setup a POS in Brazil with NFC-e sequence (set the sequence to 1234) * Create a new order in the POS * Validate the order * Check the order name in backend > Observation: The order name is like: POS-00001 instead of POS-1234 Why the fix: ------------ We adapt the method _compute_order_name to get the correct sequence number if the country is Brazil. opw-5243454