Daily updates from Odoo
Thursday, November 13, 2025
19 changes · master
Enhancements to existing features
The Brazilian localization now shows a specific tooltip explaining how to fill in the Incoterm location for export documents. This helps users provide the city or shipping location required for Brazilian EDI submissions, reducing confusion during export invoicing.
Original PR description
Purpose: Incoterm location is a field that will be widely used with Brazilian Exportation of Goods. It is required by the Brazilian EDI to send the incoterm location in its request specifying the city or location from which the goods are shipped. The field should have a tooltip explaining its specific purpose for the Brazilian EDI. related task-4802462 task-5180499
Belgian 281.50 account tags now include Belgium as their country, making them easier to group and identify in reporting. This helps businesses reuse these tags more reliably in Belgium-specific tax and accounting processes.
Original PR description
Account tags for 281.50 are specific to Belgium. With this PR, the country is added to those tags, allowing easier group by and enabling their use in other cases as well. task-5236632 Forward-Port-Of: odoo/enterprise#98759
Financial reports now use a clearer internal grouping method for report columns. This helps make report generation more reliable and easier to maintain without changing how business users interact with the reports.
Original PR description
task-5164369
The Belgian POS blackbox queue is now cleared when point-of-sale data is reloaded. This helps prevent repeated queued calls from getting stuck in an unexpected loop, improving stability for affected POS sessions.
Original PR description
This commit adds a clear of the blackbox queue when reloading data. This could avoid potential unexpected deadloop of calls in the queue. Forward-Port-Of: odoo/enterprise#99252
The POS opening flow no longer checks Belgian blackbox driver versions before a session starts. This avoids an unnecessary startup check while still notifying users if an update is needed when they use blackbox features.
Original PR description
When introducing the blackbox queue service, we added a check at the opening of the POS to ensure that the blackbox drivers were up to date. This check is done at the start of session opening. It is now not necessary anymore, if the drivers are not up to date, an error will also be shown to the user when they try to use a blackbox functionality. Forward-Port-Of: odoo/enterprise#99014
This update standardizes module information such as authors, licenses, website links, and app page references across many Odoo Enterprise apps. It improves consistency and trust in app listings without changing day-to-day product behavior.
Several automated tests were adjusted to match a recent change in how incoming email processing returns results. This helps keep quality checks reliable across invoicing, helpdesk, and Belgian SODA import features without changing user-facing behavior.
Original PR description
message_process now returns a recordset, tests are updated to not browse the return value anymore and simply use it as is.
This update simplifies how tag displays are customized in several Odoo apps, making it easier to keep tag-related screens consistent and adaptable. Users should see little direct change, but teams benefit from cleaner maintenance and more reliable future improvements.
Original PR description
* account_reports,helpdesk,knowledge,planning This commit adds a slot to the component TagsList and removes the tag part of its template so the component does not render tags anymore. M2m tags fields needed to be updated to support this change. The change allows these field to define their tag more easily. task-4660360
Resolved issues and error corrections
This update simplifies a styling workaround used in spreadsheet side panels. It helps keep the interface consistent while reducing overly complex rules that could make future maintenance harder.
Original PR description
Because of a really strong rule in o_spreadsheet lib that forced the box-sizing property pretty much everywhere, we came up with a super dense rule to counteract it inside odoo and specifically inside the side panels. This commits aims to simplify it at best with the common denominator of those rules. Task-4878174 Forward-Port-Of: odoo/enterprise#99240 Forward-Port-Of: odoo/enterprise#98876
Connecting a bank with payments disabled no longer creates an alarming error report. The system now treats this expected setup condition as a warning, reducing false error alerts while keeping the bank connection flow clearer for users and support teams.
Original PR description
Currently, an error occurs when a user connects a bank that has payments not enabled. **Steps to replicate:** * Install `account_online_payment` * Invoicing > Bank > dropdown menu and connect the…
Currently, an error occurs when a user connects a bank that has payments not enabled. **Steps to replicate:** * Install `account_online_payment` * Invoicing > Bank > dropdown menu and connect the demo bank. **Error:** `Non-blocking error during payment activation: To activate payments, you must first enable them when connecting a bank account.` **Root cause:** * The error happens because payment is disabled on the bank page. As `is_payment_enabled` is `False` in the `data` at [1], which comes from [2],and that `data` comes from a response in the super call at [3]. **Solution:** * Since this error comes from a `UserError`, it would be better to use logger warning instead of logger error. [1]: https://github.com/odoo/enterprise/blob/b5ff6fff193a7197b3983985c8af13512d677146/account_online_payment/models/account_online_link.py#L18 [2]: https://github.com/odoo/enterprise/blob/b5ff6fff193a7197b3983985c8af13512d677146/account_online_payment/models/account_online_link.py#L24 [3]: https://github.com/odoo/enterprise/blob/b5ff6fff193a7197b3983985c8af13512d677146/account_online_synchronization/models/account_online.py#L963-L970 sentry-6936347663 Forward-Port-Of: odoo/enterprise#99227
This fixes an intermittent issue where moving articles in the Knowledge sidebar could prevent the next selected article from opening correctly. Users should see more reliable editing behavior after reorganizing Knowledge articles.
Original PR description
Before this commit, the `test_knowledge_main_flow` tour sometimes failed. That tour creates articles, then d&d one of them in the sidepanel to re-organize articles, and then clicks on a previously…
Before this commit, the `test_knowledge_main_flow` tour sometimes failed. That tour creates articles, then d&d one of them in the sidepanel to re-organize articles, and then clicks on a previously created article to continue editing it. The tour failed on that step, as the previously created clicked article wasn't properly selected/displayed in the editor. The race condition was that two (non synchronized) calls to the `load` function of the model were done: one after the move because the move could have altered the displayed article (1) and one because we selected another article to open by clicking in the sidebar (2). (1) is done without resId (reload the current article) and (2) is done with the id of the clicked article. Depending on the order these two calls are done, we end up with the clicked article displayed (if (2) is done after (1)), or with the current article still displayed, but reloaded ((1) done after (2)). This commit fixes the race condition by forcing the reload of the current record for (1), instead of blindly reloading the model, which might have changed/been requested something else meanwhile. runbot error~182073 Forward-Port-Of: odoo/enterprise#99174
BACS payment export files now correctly round payment amounts when converting pounds to pence. This prevents rare cases where amounts such as £645.30 could be exported as one penny less, helping avoid payment discrepancies.
Original PR description
**Issue description:** When creating a BACS batch payment that contains a payment with an amount that can't be represented well in float (like 645.30), the generated BACS batch file will have a wrong amount (due to float precision) as the amount is represented in pence. **Steps to reproduce:** 1. Create a BACS vendor payment with amount = 645.30 2. Add this payment to a BACS batch payment. 3. Confirm the batch to generate the export file. In the file you will notice that the amount in the payment line is 64529 pence instead of 64530. opw-5159413 Forward-Port-Of: odoo/enterprise#99180
Opening Studio on calendar views now works even when a calendar field is limited to specific user groups. This prevents an unexpected crash and lets authorized users continue editing calendar views normally.
Original PR description
Have a calendar view that has a field A. the field A has a group on it, defined either in python or in the XML. Before this commit, opening studio in the calendar view crashed, because calendar did not support yet those fields that are marked with studio_no_fetch in their attributes. After this commit, there is no crash Forward-Port-Of: odoo/enterprise#99254 Forward-Port-Of: odoo/enterprise#98903
The document sharing panel now shows the correct guidance for the “Access through link” option. This avoids confusion when users configure link-based access, helping them understand the sharing settings more accurately.
Original PR description
This commit fix the helpers for the 'Access through link' option where a condition was mistakenly depending on internal access option. Task-5222910 Forward-Port-Of: odoo/enterprise#98450
This fix prevents an error in Belgian POS certification when a pro forma request finishes after the related order has already been deleted. It helps keep the checkout flow stable by confirming the order still exists before updating it.
Original PR description
Before this commit, when trying to send a pro forma for an order that had been deleted while the pro forma call was in the queue, a JS error would occur because the callback of the call would try to access the order which was no longer existing in the frontend. This is now fixed by checking that the order is still present before accessing it in the callback. Forward-Port-Of: odoo/enterprise#99248
This change adds a regression test to ensure employees with fully flexible schedules can have overlapping absences, such as sick leave and a public holiday, without payroll work entry generation failing. It helps protect payroll reliability for attendance-based contracts by preventing a previously reported error from returning.
Original PR description
**Purpose:** Add regression test to verify that overlapping leave scenarios (sick leave + public holiday) do not cause singleton errors for fully flexible employees using attendance-based work entries. **Test Coverage:** - Fully flexible employee with no calendar assignment - Attendance-based work entry source configuration - Overlapping sick leave and public holiday scenario - Work entry generation and validation without singleton errors Related : [PR](https://github.com/odoo/odoo/pull/223448) opw-4979974 Forward-Port-Of: odoo/enterprise#97947 Forward-Port-Of: odoo/enterprise#93902
This update removes leftover code from a previous reconciliation model change in the accounting tools. It helps keep the system easier to maintain without changing how users work with reconciliation.
Original PR description
In the PR (odoo/enterprise#80787) the reconciliation model was refactored in order to be easier to use for users. However, some dead code was forgotten and not removed. Forward-Port-Of: odoo/enterprise#98923
The Ask AI command no longer shows empty quotation marks when the command palette search field is blank. This removes a small visual glitch and makes the command label clearer for users.
Original PR description
Before, the "Ask AI" command in the command palette would always display quotes around the search term, even if the input was empty, showing "". Now, the quotes are conditionally rendered only when a search value is present, preventing empty quotes from appearing. task-[5262111](https://www.odoo.com/web#id=5262111&view_type=form&model=project.task) # Before https://github.com/user-attachments/assets/1bb98920-5ec2-48c3-9c13-1e49b8ab5ed4 # After https://github.com/user-attachments/assets/3c985951-a64c-4426-97de-1cdcdd572f0b
Code cleanup and technical improvements
This update cleans and standardizes the VoIP app's code using Odoo's quality rules for Python and JavaScript. It also corrects small typos, helping keep the module easier to maintain without changing business functionality.
Original PR description
Use both the Odoo Python Ruff config and JavaScript ESLint/Prettier configs on all relevant voip files. Also fix the few existing typos.