Tuesday, May 6, 2025
6 changes · 18.0
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