Monday, July 14, 2025
13 changes · saas-18.2
Resolved issues and error corrections
The Mail app now warns when an activity type is linked to an invalid model instead of automatically clearing that setting. This avoids unnecessary data changes in stable versions while still flagging the issue for administrators or support teams.
Original PR description
Just warn models are invalid, but do not reset for stable. Data is not enforced hence no real issue with wrong models. Followup of odoo/odoo#156731 Forward-Port-Of: odoo/odoo#218549
This fixes a display issue where the remove icon for media dialog attachments could be hidden. Users can now more reliably see and use the icon when managing attached media.
Original PR description
Description of the issue this PR addresses: - The remove icon in the media dialog attachment was not visible due to the use of an invalid `z-index-1` class. This commit c5a98c76ea1cce4acb55faf4768388b94255508f removed custom `z-index` utilities. Replaces `z-index-1` with Bootstrap's default `z-1` class. Before this commit: - The icon used `z-index-1`, which is not a valid Bootstrap class. After this commit: - Replaced with `z-1`, the correct Bootstrap 5 utility class for `z-index: 1`. task-4903381 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216261
This change fixes an automated Point of Sale loyalty test that could get stuck because of endless scrolling in a customer selection popup. It helps keep quality checks reliable so future updates can be validated without false failures.
Original PR description
fw-port fails because of infinite scroll in pop modal .modal .partner-list 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 fixes an issue where attendance reports could not be inserted into spreadsheets because the report grouping was applied twice. Removing the automatic grouping restores spreadsheet compatibility while keeping attendance reporting available.
Original PR description
The attendance reporting action had search_default_groupby_name in its context, causing duplicated group_by entries in pivot views used in spreadsheets. This breaks spreadsheet insertion. We removed the default groupby to restore compatibility. Related Task: 4897934. 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#216013
Fixed an issue that caused an error when creating a new website menu item after all existing menus had been removed. This helps users manage website navigation reliably without encountering a crash in the Website Editor.
Original PR description
A traceback occurs when a user attempts to create a
menu item from the Website Editor.
**To reproduce this issue:**
1) Install the website_event module and enable debug mode.
2) Delete all existing menus for a website from the Website Configuration.
3) Now, add a menu item from the website/Site/Menu editor.
4) Save the record
**Error:-**
```
KeyError: False
```
**Cause:**
When there are no existing menus on a website and a new menu is created,
the value of parent_id in the data dictionary is False.
Although the `parent_id` key is present, using `.get("parent_id")` returns False,
which leads to a `KeyError` in the following code line:
https://github.com/odoo/odoo/blob/d6db9f910288e69ecd8e26addd20ea34bda81f15/addons/website_event/models/website_menu.py#L83-L88
**Solution:**
We can check the `parent_id` in the data using `in` to solve the issue
if the value of the `parent_id` is False.
opw-4869138Replacing a background video in the website editor no longer creates an invalid URL with the protocol repeated. This prevents broken video selections and keeps background video editing reliable for users.
Original PR description
Problem: After https://github.com/odoo/odoo/pull/175663/commits/75c2343ed3a41f32964fc91a007c6b11b5a75d9f, if a background video is added and then replaced, the resulting video URL contains a duplicated protocol in video selector. Cause: For background videos, the URL is retrieved from `iframe.src`, which already includes the protocol. The current logic unconditionally prefixes the URL with a protocol, leading to duplication. Solution: Check whether the URL already contains a protocol before prefixing it. Steps to reproduce: - Add a block - Add a background video - Open the video selector to replace the background video -> The resulting URL has the protocol duplicated opw-4931945 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix hides message actions such as starring or marking as read when a live chat conversation has not yet been saved. This prevents users from triggering errors while interacting with chatbot messages in temporary chat sessions.
Original PR description
**Before this PR:** the toggle-star and mark-as-read actions were visible on chatbot messages in a non-persisted livechat thread. Clicking these actions caused errors. This PR hides these actions when the thread is in a non-persisted state, preventing such errors. task-[4743758](https://www.odoo.com/odoo/project/1519/tasks/4743758) Forward-Port-Of: odoo/odoo#218367 Forward-Port-Of: odoo/odoo#214382
This update stabilizes an automated test for mail connection warnings by blocking unrelated online and offline browser events during the test. This reduces false failures in Odoo's validation pipeline and helps teams merge changes with more confidence.
Original PR description
Before this commit, the `show warning when bus connection encounters issues` test was sometime failing. [1] attempted to fix this issue and seems to have greatly reduced its frequence. However, the bus monitoring service still listens to the "offline" event. As a result, the test can still fails according to the runbot network condition. This commit fixes the issue by preventing the "online"/"offline" events during this test. fixes runbot-226443 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#218415
A small wording issue in the portal sharing flow was corrected, with minor code cleanup to make the logic clearer. This helps keep the user-facing experience polished without changing how the feature works.
Original PR description
fix a small typo and and refactor for clarity opw-4938011 Forward-Port-Of: odoo/odoo#218570
The shop page no longer shows the same category list twice when categories are placed in the left sidebar and filters are opened. This keeps the shopping layout cleaner and avoids confusing customers on larger screens.
Original PR description
Steps to reproduce: 1. Go to the shop page. 2. Open the editor and configure Categories to display on the left, and Attributes at the top. 3. Save the changes and click the offcanvas toggle button next to the layout buttons. Issue: - The category list appears twice: once on the left side and again in the offcanvas dropdown. This is redundant and affects the user experience. Cause: - The category list in the offcanvas menu isn’t restricted to mobile view, so it also displays on larger screens where it’s already visible in the sidebar. Fix: - Add the 'd-lg-none' class to hide the category list in the offcanvas menu on large devices. opw-4830180 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218330
Installing the Spanish localization module no longer fails if the standard Service product category was previously deleted. This prevents setup interruptions and lets businesses continue module installation without manually restoring that category.
Original PR description
Currently, an error occurs when the user installs the modules after deleting the 'Service' product category. **Steps to reproduce:** - Install the Inventory app. - Inventory > Configuration >…
Currently, an error occurs when the user installs the modules after deleting the 'Service' product category.
**Steps to reproduce:**
- Install the Inventory app.
- Inventory > Configuration > Categories > Delete 'Service'.
- Install the `l10n_es` module.
**Traceback:**
```
ValueError: External ID not found in the system: product.product_category_services
ParseError
while parsing /home/odoo/src/odoo/saas-18.3/addons/l10n_es/data/product_data.xml:3, somewhere inside <record id="product_dua_valuation_21" model="product. Product">
<field name="name">DUA VAT Valuation 21%</field>
<field name="default_code">DUA21</field>
<field name="categ_id" ref="product.product_category_services"/>
<field name="type">service</field>
<field name="sale_ok" eval="False"/>
<field name="purchase_ok" eval="True"/>
</record>
```
The error occurs because the user deleted the category and then installed the modules that reference the missing product category.
This commit resolves the error by providing a False value for the field if the product category is missing.
Sentry - 6710886848
Forward-Port-Of: odoo/odoo#216296Fixes an issue in Point of Sale where reducing an unsynced order line quantity to zero could call an outdated internal action. The checkout workflow now uses the correct removal behavior, helping avoid errors during sales operations.
Original PR description
Before this commit, we were calling _unlinkOrderline on the order when decreasing the quantity of an unsynced line to 0 from the decreaseQuantityPopup. This method does not exists anymore so we replace this call with a call to removeOrderline. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Italian POS receipts and fiscal invoices no longer add an extra header because supported fiscal printers already print one automatically. This prevents customers from receiving receipts with duplicated headers and keeps printed documents aligned with Italian fiscal printer behavior.
Original PR description
The printer is already adding a header by default so we don't need to add one manually. Steps to reproduce: ------------------- * Setup an Italian fiscal printer in the POS * Open the POS and create a new order * Add a product and validate the order > Observation: The printed receipt has 2 headers. Why the fix: ------------ According to the Italian fiscal printer documentation, the header is automatically added by the printer, so we don't need to add it manually. Ticket before and after the fix:  opw-4794322 Forward-Port-Of: odoo/enterprise#89856 Forward-Port-Of: odoo/enterprise#89419