Daily updates from Odoo
Monday, December 15, 2025
14 changes · master
New functionality added to Odoo
This update improves the composer experience by automatically displaying a date picker when a date is specified. This allows users to easily select and confirm dates within the composer, reducing errors and streamlining the process. It's a small but helpful enhancement for data entry.
Original PR description
When opening a composer whose content is a date literal, a date picker is now displayed to help selecting a date. Task: [4873953](https://www.odoo.com/web#id=4873953&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
This update enhances the new user onboarding process by adding information about the 'Create To-Do by Email' feature. It includes a clear explanation and a clickable email alias, making it easier for new users to quickly create tasks via email. This streamlines the initial setup and improves user productivity.
Original PR description
This commit adds a new section to the user's onboarding welcome to-do. This section explains the "Create To-Do by Email" feature and provides the clickable email alias to create todo. task-4781859
This update improves the composer interface by adding a date picker. Now, when a composer uses a date value, users will see a date picker to easily select the correct date, enhancing usability and data accuracy. This change addresses a minor user experience enhancement.
Original PR description
When opening a composer whose content is a date literal, a date picker is now displayed to help selecting a date. Task: 4873953
Enhancements to existing features
This update aligns the dialogs used in Odoo's web Gantt and Studio modules with recent community changes. This ensures consistency and a more modern user experience for these key business tools. The changes are primarily focused on improving the visual presentation and functionality of the dialogs.
Original PR description
This PR adapts dialogs by mirroring community changes. Requires: - https://github.com/odoo/odoo/pull/238855 task-5159944
This update introduces a new tag widget that allows users to assign custom colors to tags using hexadecimal codes. Previously, tags were limited to a fixed color palette. This change provides greater visual flexibility and control over tag appearance within Odoo.
Original PR description
Introduces a new widget `many2many_color_dot`, an extension of the existing `many2many_tags` widget, which displays a small colored dot before the tag label instead of coloring the entire tag background. The color is read from a VARCHAR field containing a hexadecimal color code. This widget keeps most of the options from `many2many_tags`, except: - `on_tag_click` is replaced by `can_open` (boolean) to control whether clicking a tag opens the corresponding form. - `color_field` option is updated to specify the field used for the dot color. The new widget allows visual indication of custom color instead of a fixed list of colors.
Resolved issues and error corrections
This update fixes a potential error that could prevent invoices from being confirmed when specific currency and pricing settings are used. The fix adds a check to ensure invoice amounts are non-zero before currency calculations, preventing a division-by-zero error and ensuring smooth invoice processing. This improves the stability of the CL invoicing process.
Original PR description
Steps to reproduce: -------------------- 1. Install l10n_cl and switch to the CL company 2. Create a new invoice: - Change the currency to a value different from the company currency (e.g., from CLP to USD) - Add an invoice line with a price value of 0 - Remove the default tax value 3. Try to confirm the invoice Issue: ------ A traceback occurs: `ZeroDivisionError: float division by zero` Cause: ------ Since the price value is 0, the `amount_total` of the move becomes 0. When computing the currency rate, it tries to divides by `amount_total`, resulting in a ZeroDivisionError. Solution: --------- Add a conditional check before division to ensure the `amount_total` is non-zero Related community PR: https://github.com/odoo/odoo/pull/235252 opw-5247058 Forward-Port-Of: odoo/enterprise#101695 Forward-Port-Of: odoo/enterprise#99518
This update addresses a situation where the POS system was incorrectly displaying certification status due to its current version (18.0) being uncertified by the LNE. Until a higher certified version is available, the system will now automatically hide these certification messages to avoid misleading users. This ensures a cleaner and more accurate user experience.
Original PR description
The POS in only certified by the LNE in version 18.0. Until such time that we receive the certification in a higher version, we will disable the certification status messages. task-5386904 Forward-Port-Of: odoo/enterprise#102028
This update resolves an issue where by-products weren't correctly registered during multi-step manufacturing processes. The fix ensures that by-product lines are created with the correct pre-production and production locations, streamlining the manufacturing workflow. This issue is now resolved in version 18.0 and later.
Original PR description
### Steps to reproduce: - In the settings enable By-Products an Multi-step routes - Put your warehouse in manufacturing in 3 steps - Create two storable products: - Final Product (FP) with an empty…
### Steps to reproduce:
- In the settings enable By-Products an Multi-step routes
- Put your warehouse in manufacturing in 3 steps
- Create two storable products:
- Final Product (FP) with an empty bom
- By Product (BP)
- Go to the barcode app > Operations > Manufacturing > New
- Scan FP > Register By-Products
- Scan BP
#### > The line is created with pre-prod as location and prod as destination
### Cause of the issue:
Since no existing line refers to the by product, a new line is created and its `location_id` and `location_dest_id` are provided by the `_getNewLineDefaultValues`:
https://github.com/odoo/enterprise/blob/17fd46b04d87585b7ed46c00d9559414daa17384/stock_barcode/static/src/models/barcode_model.js#L562-L566 However, at this point nothing had set the `params.newByProduct` in the `processBarcode`:
https://github.com/odoo/enterprise/blob/17fd46b04d87585b7ed46c00d9559414daa17384/stock_barcode_mrp/static/src/models/barcode_mrp_model.js#L375-L383 In fact, the only thing indicating that we are creating a by prodcut line at this point is the `displayByProduct`.
### Note:
The issue is no longer reproducible in 18.0+ as this change has already been applied in 2d5dbb93e6b33c2be786f9b2361c993f715d1a7f
opw-5350222
Forward-Port-Of: odoo/enterprise#101861
Forward-Port-Of: odoo/enterprise#101087A recent test was failing due to timing issues when switching users and updating shop floor records. This fix introduces a two-step process, first verifying the user switch and then confirming the presence of the expected records, ensuring the test's reliability.
Original PR description
The test `test_shop_floor_my_wo_filter_with_pin_user` sometimes fails on these steps:…
The test `test_shop_floor_my_wo_filter_with_pin_user` sometimes fails on these steps: https://github.com/odoo/enterprise/blob/422ac3d5b10c44233321010b9ecb8e37735b3ea3/mrp_workorder/static/tests/tours/tour_shopfloor.js#L177-L190 https://github.com/odoo/enterprise/blob/422ac3d5b10c44233321010b9ecb8e37735b3ea3/mrp_workorder/static/tests/tours/tour_shopfloor.js#L196-L206 https://github.com/odoo/enterprise/blob/422ac3d5b10c44233321010b9ecb8e37735b3ea3/mrp_workorder/static/tests/tours/tour_shopfloor.js#L212-L221 This happends since changing the user requires some time to display the related shopfloor records, but the steps check the number of visible records as soon as it has switched rather than when it is sure that the records are displayed. #### Fix: Since switching employees will first empty the recordset and later display the related records, we can split the steps in two. We first check that we switched users, then we check the existence of a record that is not present for the previous user, and only then perform the related checks. #### runbot-226734 Forward-Port-Of: odoo/enterprise#101602 Forward-Port-Of: odoo/enterprise#100746
This update corrects a visual issue where the reschedule button remained visible in projects with task dependencies disabled. The fix ensures the button is hidden when task dependencies are turned off, providing a cleaner and more consistent user experience. This improves project management clarity.
Original PR description
Steps to reproduce: - Install the project_enterprise module. - Go to project configuration and enable task dependencies. - Open project settings and disable task dependencies. Issue: The reschedule button remains visible even when task dependencies are disabled for the project. Cause: The visibility check for the reschedule control did not consider the project’s task dependency. Fix: Hide the reschedule button when task dependencies are disabled at the project. task-5150621 Forward-Port-Of: odoo/enterprise#97088
This update addresses a missing dependency for the l10n_be_intervat module, which handles Belgian VAT reporting. The system now includes the necessary 'PyJWT' library and provides a helpful error message if it's not installed, ensuring the module functions correctly. This prevents potential errors for users.
Original PR description
The l10n_be_intervat module needs `PyJWT`, but it is not listed in external_dependencies. As we cannot change module dependencies in a stable version, this commit adds a try-except block regarding the import. In case the library is not installed, an error is logged to inform the user that they need to install the `PyJWT` module. Additionally, this commit updates the import of ImmatureSignatureError to come from jwt.exceptions instead of jwt. no-task Forward-Port-Of: odoo/enterprise#101583
This update ensures that the total account return balance is always displayed when there's a difference from the current period amount. Previously, this information was only shown if the return amount was lower. This change provides a more complete and accurate view of account return balances.
Original PR description
When this https://github.com/odoo/enterprise/pull/91886 got merged, It removed the accumulation of the balance in the return amount. Showing only the amount of the current period. Additionally, the total amount was shown if the amount was different. But, it was only being shown if it was less than the current period amount. The fix ensures it is always shown if the amount is different. task-5172274 Forward-Port-Of: odoo/enterprise#98150
This update corrects a technical issue where type definitions for the WhatsApp module were not consistently updated alongside recent changes. This ensures that developers have accurate type information, leading to fewer errors and a smoother development process. It's a routine maintenance task to maintain code quality.
Original PR description
Various changes were done without updating the type definitions. https://github.com/odoo/odoo/pull/240002
This update corrects a technical error that prevented Odoo from properly removing IoT records. The fix ensures that all necessary conditions are evaluated during deletion, preventing tracebacks and ensuring data integrity. This improves the stability and reliability of the IoT functionality.
Original PR description
For an unknown reason, when removing an IoT record, Odoo was evaluating only partly an `invisible` tag. The condition was `not version or version[0] == 'W'`. When deleting, `not version` was still false, but `version` in `version[0]` was undefined, resulting in a traceback. This is fixed using `'W' in version` instead. opw-5352092 Forward-Port-Of: odoo/enterprise#102065