Daily updates from Odoo
Monday, February 3, 2025
28 changes · 18.0
Resolved issues and error corrections
The editor no longer errors when users remove formatting from styled links. This makes content editing smoother and prevents interruptions when cleaning up text formatting.
Original PR description
**Current behavior before PR:** - Clicking the Remove Format button to remove the style from an anchor tag caused a traceback error. **Desired behavior after PR is merged:** - Clicking the Remove Format button now successfully removes any applied styles from the selected text. task: 4427649
The rating display was showing an unwanted border around rating images because of an incorrect styling class. This fix removes that class so rating images appear as intended, improving the visual polish of customer-facing rating views.
Original PR description
Related Ticket: https://www.odoo.com/odoo/my-tasks/4482430 Signing up the CLA [FIX] rating: Extra border line on the rating image The 'btn' class was incorrectly applied to the rating label in `rating_templates.xml`, which affected the styling, making extra border line displaying on the rating image. Removing this class restores the expected appearance. 
The point of sale now handles currencies that do not use decimal places without failing during product sales. This prevents checkout errors for businesses operating in zero-decimal currencies and keeps sales processing reliable.
Original PR description
Before this commit, if a currency had zero decimal places, it would cause an error when selling products. opw-4543742 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where copying a link from tools like Visual Studio Code and pasting it into Odoo's editor did not create a proper link. The editor now recognizes single valid links even when they are pasted as HTML content, making link insertion more reliable for users.
Original PR description
**Problem**: When a link is copied with HTML content, `handlePasteText` is called after `handlePasteHtml`, and the content type is `text/html`. **Solution**: Extract the pasted content as text inside `handlePasteHtml` and check if it is a single valid link. If so, skip further processing. **Steps to Reproduce**: 1. Copy a link from Visual Studio Code. 2. Paste the link into the editor. 3. Observe that the link is not created. opw-4460599 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a display issue where customer-facing Chatter comments could disappear while scrolling when a portal page used the sidebar header layout. Users previewing documents such as sales orders should now have a steadier, more reliable page experience.
Original PR description
Since [1] ensures that the Chatter is positioned under the page header, the introduction of the new "sidebar" header template caused misplacement when scrolling. This commit adds a check to avoid applying padding when the header is a sidebar (o_header_sidebar), preventing unintended scrolling behavior in the sidebar layout. Steps to reproduce: - Install the Sales module. - On a sales order, add some comments in the Chatter. - Click on Preview. - Edit the header template and select the last option, "Sidebar". - Save the changes. - Scroll down and observe that the Chatter disappears. opw-4515419 [1]: https://github.com/odoo/odoo/commit/368eb78a9cedfce0802b64fd2782e1c018541e40
Point of Sale now loads only categories that contain products, instead of showing every configured category. This keeps product screens and self-order menus cleaner and easier for staff and customers to navigate.
Original PR description
Before this commit: ==== - All POS categories were being loaded, even if they had no associated products. After this commit: ==== - Only categories linked to products are loaded. Task-4517979
This fixes an issue in the HTML editor where converting certain paragraph-like content into a paragraph could remove the intended structure, especially inside list items. The change keeps the paragraph tag in place, helping edited content retain the correct layout and appearance.
Original PR description
Description of the issue this PR addresses: Current behavior before PR: When converting paragraph related elements (other than the `<p>` tag itself) to a `<p>` tag, the tag would be unwrapped. Desired behavior after PR is merged: The tag is now converted directly to a `<p>` tag without unwrapping it. task-4488784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents archived products from being shown again on the Point of Sale product screen when loading a previously paid order that used them. It helps keep sales screens clean and aligned with current product availability.
Original PR description
Before this commit, when a product used in a paid order was archived, loading the paid order would cause the product to appear on the product screen. opw-4493666 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The EAS field label has been widened so longer electronic invoicing codes are easier to read. This improves the form layout and reduces confusion when users review or enter these values.
Original PR description
Let's increase the label size since the EAS are quite long. task-no Before:  After: 
This fixes a visual issue in the HTML editor where collaborator avatars could briefly disappear and reappear during live editing. Users working together in the same document now get a smoother, less distracting editing experience.
Original PR description
### Steps to reproduce: - Open the same document in two tabs. - Press Enter multiple times in one tab. - Observe the avatar flickers on the other tab with each Enter press. ### Description of the issue/feature this PR addresses: - `refreshSelection` replaced `this.avatarOverlay` children and re-appended the avatar element in `drawPeerAvatar`, causing flicker. ### Desired behavior after PR is merged: - The avatar no longer flickers when pressing Enter. task-4367144
This fixes an error that could appear when exporting products and selecting related stock information from the export dialog. Users can now export these nested product details without the list filter being incorrectly applied to unrelated data.
Original PR description
**Steps to reproduce**
1. Have Stock and Sales installed.
2. Go to the Sales list view of products, have more than 1 page of products.
3. Select all the products on the current page by checking the checkbox
on the first line. After that, click on "Select all" to select all
products.
4. Actions > Export
5. Select "Products" (`product_variant_ids`) and then "Products/Stock Quant"
(`stock_quant_ids`).
`ValueError: Invalid field stock.quant.sale_ok in leaf ('sale_ok', '=', True)`
**Change**
Only use the domain of the list view to filter fields when the export dialog
is opened. The domain should only be used for that and not when `getExportFields`
is called when clicking on one of the children fields of the root model.
opw-4408457Fixes an issue where Italian invoices could fail to print or send after the tax agency submission option was initially skipped. This helps users complete invoice downloads and later submissions without encountering an error.
Original PR description
This error occurs when an invoice is not initially sent to the tax agency, but we later attempt to print it and send it to the agency. Steps to reproduce: --- - Install ``l10n_it_edi`` module - Switch to ``IT Company`` - Create Customers Invoice > ``Confirm`` > ``Print & Send`` - Disable ``Send to Tax Agency`` > ``Print & Send`` - Now again ``Print & Send`` and ``Print & Send`` Traceback: --- ``KeyError: 'l10n_it_edi_values'`` This commit resolves the error by checking that ``l10n_it_edi_values`` is present in ``move_data``. sentry-6191573767 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an issue where refreshing a form after moving between records could reload the originally opened record instead of the current one. This keeps users on the correct record and avoids confusion or accidental work on the wrong item.
Original PR description
From a list or kanban view with several records, open a record in form view. Then use the pager to navigate to another record. From this point, execute the `soft_reload` client action (e.g. call a python method from a view button, which returns that client action). This client action is supposed to reload the current controller (the form view in this case), without reloading the whole webclient. Before this commit, the form was indeed reloaded, but the reloaded record was the one we opened first, not the one we reached after navigating with the pager. With this commit, the correct record is reloaded. Issue spotted for task-3935688 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 fix updates report links in periodic digest emails so they use the current Odoo URL format. Users clicking “Open Report” links from digest emails will no longer hit missing-action errors across affected apps such as CRM, Sales, Accounting, Projects, Recruitment, Point of Sale, and eCommerce.
Original PR description
Some URLs in the digest emails are currently broken due to an outdated URL format. ### Steps to reproduce * Install `digest` and `crm` modules * Go to Settings > Technical > Digest Emails * Select the "Your Odoo Periodic Digest" digest and send it * Check the sent email and click on any of the "Open Email" links You should encounter an error indicating that the action does not exist. Although the reproduction steps use the `crm` module as an example, this issue occurs with all the modules listed in the title. ### Cause The "Open Report" URLs were not updated to account for the new URL format. opw-4405288 opw-4502625
This fixes an issue where a delivery removed from a wave after its quantity was set to zero was left without a new wave assignment. Affected warehouse operations now remain properly grouped, helping teams avoid lost or unmanaged delivery work during wave validation.
Original PR description
Steps to reproduce the bug:
- Enable the multi-step route.
- Go to the Delivery Operation Type:
- Enable "Automatic Batches". - Enable "Wave Grouping". - Product Category: All
- Create two storable products: "P1" and "P2".
- Create a first delivery:
- One unit of P1.
- Mark it as "To Do" → a wave transfer is created.
- Create a second delivery:
- One unit of P2.
- Mark it as "To Do" → it is added to the first wave.
- Go to the wave:
- Update the quantity of P2 to 0.
- Validate the wave
Problem:
The picking of P2 is detached but not linked to a new wave.
opw-4444263This fixes a Point of Sale loyalty issue where loyalty cards could still receive an expiration date even though that behavior was meant to be disabled. Businesses using POS loyalty programs will see card validity handled consistently with the intended loyalty program settings.
Original PR description
In commit https://github.com/odoo/odoo/commit/837e67e82d4cf662b2dcd5d5750253dbc080bd96 we prevent setting expiration date on `loyalty` type programs for UI and wanted to ensure expiration date is not set on loyalty cards. This PR remove a line which is setting expiration date on `loyalty` type program in POS which missed during forward port PR https://github.com/odoo/odoo/pull/183044
Cancelling POS order lines now sends the required information to produce a proper kitchen ticket instead of an empty or incomplete receipt. This helps staff clearly see cancelled items and avoids confusion during order preparation.
Original PR description
steps to reproduce: === - open POS - make an order - click on order - open this order - delete order lines - click on order (negatives qty) Issue: === - insufficient data to display in receipt fixed: === - configured data required to print task: 4507218
This fix prevents errors when exporting selected products that use inherited property fields. It helps users complete product exports reliably without encountering a traceback.
Original PR description
Try to export one selected product.product generate a traceback due to the `_get_property_fields` that doesn't manage inherited properties. opw-4438752
Swiss invoice PDFs generated without payment details no longer include an unexpected blank page at the end. The invoice report is now correctly identified so the Swiss QR code handling works as intended.
Original PR description
### Steps to reproduce: - Install "l10n_ch" and switch to a Swiss company - Create a new invoice with a Swiss customer - Confirm - In the actions, select "PDF without payments" - The generated PDF has a blank page at the end ### Cause: The report "account.report_invoice" does not have a field `is_invoice_report` set to `True`. When generating an invoice with Swiss localization. It reads the field `is_invoice_report` to add or not the QR code. The bug appears after this [commit](https://github.com/odoo/odoo/commit/bb60952c944db27d71d7fe32ead2dff05c3fe922#diff-b6e108b605fbefba066e3b20f8e030ea78881bbed816f8ac5cb38e745c542739R50) which modified the `_is_invoice_report` method to use the field, but only added the field in "account_invoices". ### Solution: Set the field to True for the report. opw-4467250
Fixes a Point of Sale issue that could show an error when a user tried to change cashier and no cashier options were available. The cashier selection dialog now opens correctly, improving reliability during store operations.
Original PR description
Description of the issue/feature this PR addresses: - Fixed an issue where changing the cashier with no available cashiers caused a traceback due to an undefined `this.dialog` Replaced it with the correct `dialog` reference. ## step to reproduce - install `point of sale` - setup a new point_of_sale , as shown  - start session in that pos. - try to change the cashier 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
The web interface now keeps the database name clearly visible when debug mode and dark mode are both enabled. This improves readability for users and administrators working in dark mode.
Original PR description
Previously after activating debug mode and then dark mode, the letters of database name are not visible clearly. It is happening because in new bootstrap version we are having a color attribute in mark tag which was previously not there. After this commit the database name will be clearly visible in dark mode. Task-4389154 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Discuss now displays exact message times using the browser's locale settings, so users see either 12-hour or 24-hour time based on their personal environment. This makes chat timestamps feel more familiar and avoids layout issues caused by AM/PM labels in compact message views.
Original PR description
Exact time are shown in discuss since version 18.0. Format was always 24-hour, which is ok for some users but not for others. This commit uses time format of luxon browser based on user locale, so…
Exact time are shown in discuss since version 18.0. Format was always 24-hour, which is ok for some users but not for others. This commit uses time format of luxon browser based on user locale, so that this is the expected format as the user is used to see in all browser apps. Note that we don't choose DB date format, because discuss app are used by many other users and the custom format on whole DB might make some users happy but others not. In particular, the default en_US language time format in Odoo uses 24-hour when lots of english americans are used and prefer 12-hour format. Using the locale format of browser, which tend to rely on OS settings, makes (almost) everyone happy. Also the extra AM/PM could lead to size issue on small squashed messages, this commit also fixes it. opw-4482727 Before / After  
The translation button is now visible again when editing report source files in Studio. This lets users translate report field labels as expected, avoiding confusion and restoring an important workflow for multilingual businesses.
Original PR description
Version - 18.0 Problem - The translation button in the studio reports is hidden/ not accessible to the customer Steps to reproduce- 1. Open Sales app > Go to the Studio view > Select Reports from the menu > Open any report among the listed ones 2. On the left hand side - in the studio editor select "Edit Source" 3. On the Edit source file - In the initial version there used to be an EN (Translation button) for them to translate the display field names opw-4417402
The contract details screen now shows the labels in the part-time section when Belgian payroll group S is installed. This fixes a display issue that could make contract information harder for HR and payroll users to read.
Original PR description
Steps to reproduce: - Install the l10n_be_hr_payroll_group_s module. - Open any contract in employee or payroll. - Check the part-time section under the Details tab. Issue: - Labels do not display. Reason: - The view is inherited in both hr_payroll and l10n_be_hr_payroll_group_s modules. - In hr_payroll, the fields are not grouped, while in l10n_be_hr_payroll_group_s, they are. Solution: - Change the position of the "group_s_code" in l10n_be_hr_payroll_group_s module from inside to after task-4440190
This fix ensures Italian Point of Sale orders correctly handle products whose prices exclude tax. It improves the accuracy of receipts, order totals, and related accounting documents when tax is added at checkout.
This fixes an incorrect connection mapping in the Shopee sales integration that was introduced shortly before the module was merged. The correction helps ensure Shopee data is interpreted properly, reducing the risk of failed or inaccurate sales synchronization.
Original PR description
Bug introduced in the last changes before merging the module that wasn't caught
Digest emails now use the updated link format so users can open reports directly from their emails without hitting missing-action errors. This restores expected access to report links across affected business apps such as accounting, helpdesk, and website sales dashboards.
Original PR description
Some URLs in the digest emails are currently broken due to an outdated URL format. ### Steps to reproduce * Install `digest` and `crm` modules * Go to Settings > Technical > Digest Emails * Select the "Your Odoo Periodic Digest" digest and send it * Check the sent email and click on any of the "Open Email" links You should encounter an error indicating that the action does not exist. Although the reproduction steps use the `crm` module as an example, this issue occurs with all the modules listed in the title. ### Cause The "Open Report" URLs were not updated to account for the new URL format. opw-4405288 opw-4502625
The update removes date-dependent information from a Mexican electronic invoicing test file so automated checks no longer fail when the calendar changes. This keeps validation reliable without changing customer-facing behavior.
Original PR description
Now we move to february, the test is failing on runbot... See (similar): https://github.com/odoo/enterprise/commit/e29b2265fe60e90443d753558e6c9a071ee23d33 task-no