Daily updates from Odoo
Tuesday, May 6, 2025
9 changes
2 changes
Resolved issues and error corrections
The Belgian fleet disallowed expenses feature now correctly installs the required Belgian expense categories before using them. This prevents setup errors and ensures vehicle-related expense account rules work as expected.
Original PR description
Commit https://github.com/odoo/enterprise/commit/66ec6f497d1adfdffae6840899d08c168f6ab63a links particular BE disallowed expense categories to accounts and makes a vehicle required when using those accounts. The dependencies of `l10n_be_account_disallowed_expenses_fleet` did not ensure the creation of the Belgian expense categories. Fix --- Add `l10n_be_disallowed_expenses` as a dependency of `l10n_be_account_disallowed_expenses_fleet` Solves Runbot-181948
This fixes a mobile issue in the VoIP keypad where tapping buttons could use the wrong action and fail. Taps and clicks now follow the same behavior, improving reliability and preventing unwanted zooming when users double-tap on mobile devices.
Original PR description
The touchend event must be preventDefault-ed to prevent zooming on double-tab on mobile. However, the touchend handler was incorrectly set to this.props.onClickKey, which doesn't exist. This commit updates the code to trigger a click event on touchend so that the same handler is used whether the button is tapped or clicked, preventing similar situations where the click handler is updated but not the touchend handler, leaving the latter broken.
1 change
Resolved issues and error corrections
A problem in the web testing support code was fixed so creating linked records in many-to-many relationships no longer causes errors. This improves reliability for automated checks around web features without changing day-to-day user workflows.
Original PR description
Before this commit, using CREATE Command on a many2many field would result in an error. This is because upon record creation the inverse field would be set to the single id, which is incorrect for a many2many field. This commit fixes the issue by setting the inverse field of a many2many to a list containing the new id.
6 changes
Resolved issues and error corrections
The bus service now uses the latest notification information shared across browser tabs instead of relying only on the main tab. This prevents users from being incorrectly told their page is outdated after a temporary connection drop.
Original PR description
The outdated page watcher checks whether bus notifications were missed when the bus reconnects after an unexpected disconnection. To do so, it checks if the last known notification id is still in the bus table. However, it relies on the main tab's last received notification which might not be available when the main tab didn't receive notifications after being elected. To fix this issue, this commit uses the global last notification stored in the local storage to ensure every tab has access to it. 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
Tasks created from service sale order lines now display the added line description when one is provided, rather than always showing the product name. This makes linked task information clearer for users and preserves the product name as a fallback when no description exists.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Create a service product that creates a task; 2. add product to an order; 3. add an extra description to the sale order line; 4. confirm the order; 5. go to the task. Issue ----- The name of the sale order item linked to the task displays the product name instead of the extra line description. Cause ----- As 18.0, the first line of the sale order line name is always the product name. In earlier versions, the product name was only used as a fall-back value when no extra description was added to the line. Solution -------- Account for the guaranteed addition of the product name in the SOL name, and instead use the second line for the display name if it exists and is non-empty, else fall back on the product name as intended. opw-4634149
This fixes an issue where mapping accounts between companies could be blocked when one company used German accounting rules. The change ensures German account-code restrictions are only applied in the relevant German company, allowing cross-company account mapping to proceed correctly.
Original PR description
Writing the account code is restricted on l10n_de accounts. Odoo checks that the code we write is different from the old one, and if so it checks of there are already some entries for that accounts. If any of the condition is met, the write is prevented. When we try to map an account from another company to a l10n_de company, the _inverse_code function from the account mapping will try and update the account code in the other company, as the code is company dependent. The issue is that we check that the l10n_de code remains the same, even if we are in another, non l10n_de company. This PR adapts the check to l10n_de account to only check the code if we are writing it from the l10n_de company. opw-4711417
Integer ID fields can now hide thousand separators without disabling other formatting behavior. This prevents new list-view records from temporarily showing an incorrect “false” value before they are saved, improving clarity for users working with task and subtask lists.
Original PR description
Steps: Set enable_formatting to false on an Integer field (ex. ID). Turn the ID column to be visible in subtask list view. Add a new record using list view. Issue: The ID field displays false till saved. Reason: enable_formatting: false was used to remove regional formatting (e.g., thousand separators) for the ID field. But this also disabled all other formatters, including null value handling, resulting in false value in ID field. Fix: Introduced a new option skip_thousands_separator under the IntegerField formatting logic.When enabled, it disables only the thousands separator while preserving other formatting behaviors. task-4700791
This update makes account follow-up report tests adapt to the company’s configured currency symbol instead of assuming a fixed dollar sign. It helps prevent false test failures when a company uses a different currency display format, improving reliability without changing customer-facing behavior.
Original PR description
The aim of this PR is to prevent errors in the account_followup tests because of the symbol on the company currency. If the company currency is changed for some reason (for example USD dollar to…
The aim of this PR is to prevent errors in the account_followup tests because of the symbol on the company currency. If the company currency is changed for some reason (for example USD dollar to "USD" instead of "$" as typically used in Odoo), the test will fail raising an error similar to the following:
`[odoo.addons.account_followup.tests.test_followup_report:184](https://github.com/adhoc-cicd/odoo-enterprise/blob/74a5097e1d6ab79eb31ed302865aa075162494c2/account_followup/tests/test_followup_report.py#L184)
FAIL: TestAccountFollowupReports.test_followup_lines_branches
Traceback (most recent call last):
File "/data/build/adhoc-cicd-odoo-enterprise/account_followup/tests/test_followup_report.py", line 184, in test_followup_lines_branches
self.assertLinesValues(
File "/data/build/adhoc-cicd-odoo-enterprise/account_reports/tests/common.py", line 273, in assertLinesValues
self.fail('\n'.join(errors))
AssertionError:
==== Differences at index 0 ====
Current Values: ['INV/2016/00001', '01/01/2016', '01/01/2016', '', 'USD\xa0500.00']
Expected Values: ['INV/2016/00001', '01/01/2016', '01/01/2016', '', '$\xa0500.00']
==== Differences at index 1 ====
Current Values: ['', '', '', '', 'USD\xa0500.00']
Expected Values: ['', '', '', '', '$\xa0500.00']
==== Differences at index 2 ====
Current Values: ['', '', '', '', 'USD\xa0500.00']
Expected Values: ['', '', '', '', '$\xa0500.00']`
That's the reason why I refactor the test to first fetch the company currency symbol and then used it in the test assertions.The Colombian eCommerce invoicing flow now only matches the NIT tax ID type for Colombia. This prevents errors when another country has an ID type with the same name, helping customers complete checkout reliably.
Original PR description
Adding a condition to match contry to CO when looking for NIT latam ID type. Otherwise, adding another ID type named 'NIT' for a different country causes the search to return both, resulting in a traceback. Related to https://github.com/odoo/odoo/pull/189687 task-4318265