Daily updates from Odoo
Tuesday, October 7, 2025
16 changes · master
Enhancements to existing features
The Brazilian AvaTax product setup now shows the service-specific LC116 Code label instead of Mercosul NCM Code when configuring services. This reduces confusion for users by matching the label and tooltip to the correct Brazilian service tax classification.
Original PR description
Purpose:- - In Brazil, NCM is a code that has an acronym to specify the Mercosul Common Name for products, and for services, the right name is LC116 (Complementary Law 116), which specifies the federal code for a service. - But we have the same field `l10n_br_ncm_code_id` to configure both NCM for goods and LC116 for services and the same table can be used for both the cases. - So while configuring fiscal information for a service, user don't understand why it still shows the NCM label instead of LC116. Before this commit:- - Label `Mercosul NCM Code` was displayed for services confusing users. After this commit:- - Label `Mercosul NCM Code` is replaced with `LC116 Code` only for services. - Tooltip is also improved for better understanding. task-5096435 Forward-Port-Of: odoo/enterprise#96228 Forward-Port-Of: odoo/enterprise#95404
This update changes how AI and WhatsApp conversations identify and manage the person on the other side of a chat. It helps keep chat participant information more consistent across messaging features, reducing the risk of mismatched or duplicated conversation details.
Original PR description
task-4675831
This update streamlines automated checks for the online shop by using more appropriate test helpers and starting tests closer to the relevant product pages. It helps keep eCommerce testing faster, clearer, and easier to maintain without changing the customer-facing shopping experience.
Original PR description
* use the right tour utils * start tours from product page when there is no reason to start from shop page
The point of sale integration for UrbanPiper has been adjusted to stay compatible with recent product option changes in Odoo. This helps restaurants keep managing product attributes consistently when syncing menus and orders with delivery platforms.
Original PR description
task-4731792
The Sign app now uses one shared rule to decide when the PDF upload button appears. This reduces duplicate setup behind the scenes, making the interface easier to maintain without changing how users work.
Original PR description
Before this PR, the upload PDF button used the same logic and conditions in both templates and requests, causing duplicate code. This PR adds a single condition to manage the upload button for both templates and requests, reducing duplication and improving clarity.
Resolved issues and error corrections
A test for the Chilean electronic invoicing module now skips cleanly when optional demo data is not installed. This prevents false test failures in environments that run without demo data, improving reliability without changing customer-facing behavior.
Original PR description
The test `test_demo_certificate_serial_number` failed when running without demo data, since the XMLID `l10n_cl_edi.l10n_cl_demo_certificate` is only present in demo mode. This commit updates the test to use `raise_if_not_found=False` and skip gracefully when the demo certificate is not available. The assertion now only runs if the certificate exists, ensuring the test passes consistently both with and without demo data. [RB-231573](https://runbot.odoo.com/odoo/error/231573) Forward-Port-Of: odoo/enterprise#95917
The message shown when no bank transactions are found now displays correctly instead of showing raw formatting codes. This improves clarity for users when fetching transactions or changing filters produces no results.
Original PR description
Before this commit : - The help message shown when no transactions were fetched by the 'Fetch Transactions' button in the 'Bank' journal contained raw html tags, as markup was not getting applied. - Also, removing a filter (without reloading) and applying another filter that resulted in no matches, the same issue occurred. After this commit: - The help message is now consistently rendered with markup applied. task-4942234 Forward-Port-Of: odoo/enterprise#95514
Employees with flexible working schedules will no longer see Saturdays and Sundays incorrectly marked as unavailable in the timesheet grid. This keeps the timesheet view aligned with flexible work arrangements, where employees may work on any day.
Original PR description
To reproduce: ============= 1- Update employee worktime to be flexible 2- Go to timesheets -> saturday & sunday are marked grey Problem: ======== Can't apply https://github.com/odoo/odoo/blob/ce2d134d3e8e5c0d96529c1d0490f1e0c5e28294/addons/resource/models/resource_calendar.py#L511 This logic cannot be applied when an employee's work time is flexible, since they can work whenever they want. Fix: ==== When employee work time is flexible we just return empty list for the unavailable dates. opw-5031144 Forward-Port-Of: odoo/enterprise#96181 Forward-Port-Of: odoo/enterprise#94346
The Belgian EC sales report now correctly handles VAT numbers entered without the Belgian country prefix. This prevents valid VAT numbers from being shortened incorrectly and helps keep Belgian tax reporting accurate.
Original PR description
It could happen that the user set his vat number without the country code before the number. In this case, we removed the two first digits of the vat number. Also changing other occurrence using the company_vat to get the country, since we are in the belgian ec sale list, the country_code should be 'BE' everytime task-5039969 Forward-Port-Of: odoo/enterprise#93377
Users can now open the AI assistant from the Physical Inventory list and send messages without hitting an error. The fix handles pages that do not have a linked action, improving reliability for Inventory users.
Original PR description
Currently an error is generated when a user tries to send a message to AI while the current page is in `Physical Inventory`list view. Steps: - Install `Inventory` - Go to Inventory > Operations >…
Currently an error is generated when a user tries to send a message to AI while the current page is in `Physical Inventory`list view. Steps: - Install `Inventory` - Go to Inventory > Operations > Physical Inventory - Click the AI icon from the systray menu. - Ask anything in AI >>> error generated Error: ```UnboundLocalError:cannot access local variable 'current_action' where it is not associated with a value``` This issue arises because in line [1] of the code, the variable `current_action` is assigned a value inside an `if-elif` block based on `action.type`. However, since the `Physical Inventory` page does not have any associated action, the variable `current_action is` never set. Consequently, attempting to access this variable results in an error. This commit fixes the above issue by initializing the `current_action` variable as `None` outside the `if-elif` block and adding handling for cases when `current_action` is `None`. [1] - https://github.com/odoo/enterprise/blob/2ea15cc9c7c5f114b3786b256c64e269b3e3a313/ai/models/ai_agent.py#L750-L755 sentry-6913801088 Forward-Port-Of: odoo/enterprise#96253
This update adds test coverage for an issue where editing a Sales dashboard list and choosing the Medium field matching could trigger an error. It helps ensure spreadsheet dashboard filters behave reliably and avoids a disruptive traceback for users.
Original PR description
Steps to reproduce: 1. Open the Sales dashboard 2. Edit the first list 3. Try to set the "Medium" field matching => Traceback This commit contains only the test as the fix is in the community PR. Task: 5101093 Forward-Port-Of: odoo/enterprise#95990
Documents can now create server actions for journal entries in journals marked as Credit Card. This removes a blocker for teams that manage credit card statements through Documents and need the same automation available for other journal types.
Original PR description
We are unable to create an action to create a credit card statement on a journal with type credit card Allow to create a Server Action to create Journal Entries in journals of type "Credit Card" in Documents. task-5123868 Forward-Port-Of: odoo/enterprise#95905
This update removes an unused Lithuanian payroll input type and adds safeguards to prevent duplicate payroll input selection keys. It helps keep payroll configuration cleaner and reduces the chance of inconsistent salary rule setup.
Opening a spreadsheet-based quality step in the shop floor workflow now works without displaying a traceback. This removes a distracting error for manufacturing operators while keeping the spreadsheet step behavior unchanged.
Original PR description
To reproduce: - Make a new BOM for new product P, with 1 operation on assembly line 1 - Add a spreadsheet step to the operation - Make a MO for 1x P - Open shop floor, assembly line 1, click on the spreadsheet step Current behaviour: - The spreadsheet step opens correctly, but we get a traceback Expected behaviour: - The spreadsheet step opens correctly, no traceback task-4965313 Forward-Port-Of: odoo/enterprise#94657 Forward-Port-Of: odoo/enterprise#91505
Code cleanup and technical improvements
This update standardizes the internal name of a messaging component used by several Enterprise apps. It helps keep the Enterprise codebase aligned with the main Odoo platform and should not change day-to-day user workflows.
Original PR description
\* = account_accountant, ai, ai_website_livechat, documents, hr_recruitment_extract, iap_extract, spreadsheet_edition, whatsapp Enterprise counter-part. https://github.com/odoo/odoo/pull/229944
Miscellaneous changes
Fixes a typo in the i18n directory. no task-id Forward-Port-Of: odoo/enterprise#96417
Original PR description
Fixes a typo in the i18n directory. no task-id Forward-Port-Of: odoo/enterprise#96417