Friday, October 3, 2025
36 changes · 19.0
Resolved issues and error corrections
Fixed a broken helpdesk link so customers using “Ask the community” are sent to the correct forum page instead of seeing a 404 error. This helps users reach community support reliably from helpdesk teams with forums enabled.
Original PR description
Scenario:
- create a helpdesk team
- enable community forum on it
- go to the team and click on "Ask the community"
Result: 404 error, this page does not exist
Cause: we are using helpdesk.team ID in route needing a forum.forum ID
Fix: uses /helpdesk/{team ID}/forums route instead of /forum/{team ID}
opw-5027193
Forward-Port-Of: odoo/enterprise#96026The Australian payroll API tests were updated so they no longer depend on demo data, and the cleanup script was corrected. This helps prevent build failures and improves confidence that payroll-related checks run reliably in different environments.
Original PR description
Remove test dependency on demo data and fix the neutralize script. Build Error: 231619, 231643
This update adds safeguards to verify that text formatting shortcuts, such as bold or underline, behave correctly when no text is selected. It helps ensure the editor stays clean and avoids unnecessary undo history entries, improving editing reliability without changing visible features.
Original PR description
Description of the issue this PR addresses: This PR adds test cases for formatting shortcuts (e.g., Ctrl+B) on a collapsed selection. An empty inline tag is inserted temporarily and auto-cleaned if unused, so no individual history step are created. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#229429 Forward-Port-Of: odoo/odoo#229233
This update adds extra logging to an internal bus notification test that has been failing unpredictably. The added detail should help developers identify the root cause faster, with no direct change to customer-facing behavior.
Original PR description
The `test_postcommit` test ensures that the creation of several bus records result in a single postgres notify after commit. This test have been failing in a non deterministic fashion for some time. Theorical fixes have been try, but fails still persist. This commit adds some logs to this test to better understand what's happening. runbot-232798 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 Forward-Port-Of: odoo/odoo#228996
This removes a redundant database rule in Odoo's mail discussion channels. The change helps prevent failures when creating or migrating future databases on PostgreSQL 18, without changing how users work with mail channels.
Original PR description
The field is `required=True`, which automatically sets it `NOT NULL` (if possible). The constraint does not do anything useful. Furthermore, pg18 promoted `NOT NULL` to "real" named constraints[1],…
The field is `required=True`, which automatically sets it `NOT NULL` (if possible). The constraint does not do anything useful.
Furthermore, pg18 promoted `NOT NULL` to "real" named constraints[1], and the constraint was created following the pattern pg uses, so trying to migrate a database to pg18 (either upgrading a cluster from 17 to 18 or restoring a db on a pg18) the restoration fails with
duplicate key value violates unique constraint "pg_constraint_conrelid_contypid_conname_index"
The easiest fix is to delete the constraint in the upstream DB if possible (I didn't find a way to filter out constraints from pg_dump or pg_restore, though it should be possible to filter it out from a "plain" dump by hand).
AFAIK Odoo does not generally drop constraints so I don't think this will fix existing databases, but it at least makes future databases compatible with pg18.
[1]: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=a379061a22a8fdf421e1a457cc6af8503def6252
Forward-Port-Of: odoo/odoo#229539
Forward-Port-Of: odoo/odoo#229274This update narrows an automated checkout test so it focuses on verifying public access rather than trying to mimic very fast user actions. It helps avoid inconsistent test results where two orders could be created at once, improving confidence in click-and-collect stability without changing customer-facing behavior.
Original PR description
Tours are too fast for imitating the user actions that led to sometimes creating 2 orders in parallel instead of reusing the first created. The test was added for b395f984b13eb83310024b9fa94d7822211ef8c1 fix, so with this commit, we keep the test more specific to the fix and avoid inconsistent behavior. Forward-Port-Of: odoo/odoo#229630 Forward-Port-Of: odoo/odoo#218417
Fixed an issue where previewing the portal user invitation email could fail because the template used user details that were missing for portal users. The invitation preview now uses the related contact information, so staff can review portal invite emails reliably before sending them.
Original PR description
[FIX] portal: display template for portal invite Steps to reproduce: ---- - Install portal module - Grant a portal access to a contact - Go to the email template (Portal: User Invite) for the contact - Click on Preview -> Traceback Issue: --- The display was based on the user itself referencing to a partner. And there was no name for the portal users. Fix: --- Changed the view so now the different values are based on the partner.Also added the name to this function based on the partner name. opw-4444729 Forward-Port-Of: odoo/odoo#217791 Forward-Port-Of: odoo/odoo#194322
This fixes an issue in the website editor where deleting text in pricelist snippets could accidentally merge a description with its price. Website editors can now adjust pricelist content more safely without breaking the layout or confusing customers.
Original PR description
**[FIX] website: keep pricelist blocks intact** Build the unsplittable selector from the three pricelist snippet base classes so that the HTML editor no longer splits or merges their item, price, or description elements when users delete content with Backspace. Steps to reproduce: - Drag and drop a pricelist snippet (e.g., Pricelist Cafe). - Place the cursor before the first letter of one of the descriptions. - Press Backspace. - Bug: the description content is merged with the price. task-5117864 Forward-Port-Of: odoo/odoo#229227
The Google Calendar integration was updated to use Odoo's current internal context handling. This keeps the integration aligned with recent platform changes and helps avoid future compatibility issues, with no expected change to everyday user workflows.
Original PR description
after this PR: https://github.com/odoo/odoo/pull/193636 self._context usage has been deprecated in favor of self.env.context. This commit updates google_calendar accordingly. <img width="1916" height="447" alt="image" src="https://github.com/user-attachments/assets/622de21e-7c4c-4efc-8cff-045704934f04" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The payslip list now displays relevant action buttons even when those actions are not preconfigured in the list controller. This helps payroll users access the expected options directly from the list view and avoids missing workflow actions.
Original PR description
This commit fixes the display of conditional buttons in the payslips list view. The issue was that only buttons with actions defined in the list controller were displayed. This commit fixes the issue by displaying any button if the action is not specified in the list controller. Forward-Port-Of: odoo/enterprise#95527
Fixed an issue that could cause website-generated product imports to fail when adding multiple images to a product variant. This helps teams import product catalogs more reliably without interruptions from image handling errors.
Original PR description
Fixed a typo that leads to a crash when importing multiple images for a product variant Forward-Port-Of: odoo/enterprise#96134
This fixes an issue that prevented users from deleting an employee version from the versions list. HR teams can now manage employee history records without seeing an incorrect warning that the record no longer exists.
Original PR description
Issue/Current Behavior: It is not possible to delete a version of an employee. Steps to Reproduce: 1. Create an employee. 2. Create a new version of the employee. 3. Click on the smart button of versions and delete a record from the list view. 4. It gives warning that the record doesn't exist or might be deleted. Solution: Fixed the issue by checking that the context version exists or else the empty recordset. task - 5002995 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224585
Invoices using the UAE localization now print with properly aligned columns even when invoice lines have no taxes. This prevents confusing or unprofessional invoice layouts for businesses issuing tax-free invoices.
Original PR description
**Steps to reproduce:** 1- Install UAE localization (l10n_ae). 2- Create an invoice without adding any taxes in the invoice lines. 3- Print the invoice → column alignment is broken. **Issue:** In UAE…
**Steps to reproduce:** 1- Install UAE localization (l10n_ae). 2- Create an invoice without adding any taxes in the invoice lines. 3- Print the invoice → column alignment is broken. **Issue:** In UAE localization, the invoice report shows misaligned columns when the tax field is empty. **Cause:** Since Odoo 18.4, the core report logic hides the tax column when no taxes are applied. However, l10n_ae does not handle this scenario properly while replacing columns, which results in broken alignment. **Solution:** Added a condition in l10n_ae to correctly handle the case when the tax field is empty, ensuring column alignment is maintained in the invoice report. **Before Fix:** <img width="777" height="326" alt="image" src="https://github.com/user-attachments/assets/1416c03a-9da5-45fe-8ade-2a9037f70812" /> **After Fix:** <img width="767" height="341" alt="image" src="https://github.com/user-attachments/assets/9d418945-45e2-409e-b00e-b4f8272ea013" /> opw-4965240 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224034
This update fixes a failing automated test in the Mexican electronic stock localization by creating the needed vehicle record with the correct permissions. It helps keep validation checks reliable after vehicles moved under fleet management, with no expected change for end users.
Original PR description
Since the latest changes to the model, vehicles are now managed from the fleet app. However, there is an error in the tests because the default test user does not have the necessary permissions to create fleet.vehicle model records, as the module flow does not include adding logic to fleet or new permissions. To fix this, the fleet vehicle record is created with superuser permissions. See: https://runbot.odoo.com/odoo/error/232645 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Selecting table cells in the HTML editor now correctly disables the link button, preventing users from trying to add links where that action is not supported. The change also improves single-cell selection behavior so a cell is selected only when its full content is selected, making table editing more predictable.
Original PR description
**Current behaviour before PR:** Steps to reproduce: - Create a 3 x 3 table. - Select first column. The link button in toolbar is enabled and it should not. This happens because after merging this commit [1], `isLinkAllowedOnSelection` method returns true if selected cells are not adjacent. **Desired behaviour after PR is merged:** Now, selecting cells open toolbar with disabled link button. [1]: https://github.com/odoo/odoo/commit/c0d07fdcf4cc139177524eb4ea22ab341b3da7fb task-4965270 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#221033
This fix updates Chilean bank reference data to use a stable country identifier instead of relying on the country name. This prevents module installation or upgrade failures when country names have been customized or corrupted in a database.
Original PR description
`res.country` records are `noupdate` by default, which means that changes such as the following are not reverted: ```SQL pied@(none):pied_3131231> SELECT c.name->>'en_US' FROM res_country c JOIN…
`res.country` records are `noupdate` by default, which means that changes such as the following are not reverted:
```SQL
pied@(none):pied_3131231> SELECT c.name->>'en_US' FROM res_country c JOIN ir_model_data d ON d.res_id = c.id AND d.model = 'res.country' AND d.module = 'base' AND d.name IN ('cl', 'co')
+----------+
| ?column? |
|----------|
| COLOMBIA |
| Colombia |
+----------+
```
Note: in this specific, the change is clearly an error introduced in the data. Still, the error it produces (which follows) can be avoided by referring to the xmlid, instead of the record name.
```
Traceback (most recent call last):
File "/home/odoo/src/odoo/saas-18.4/odoo/service/server.py", line 1410, in preload_registries
registry = Registry.new(dbname, update_module=update_module, install_modules=config['init'], upgrade_modules=config['update'])
File "<decorator-gen-6>", line 2, in new
File "/home/odoo/src/odoo/saas-18.4/odoo/tools/func.py", line 89, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/saas-18.4/odoo/orm/registry.py", line 175, in new
load_modules(
File "/home/odoo/src/odoo/saas-18.4/odoo/modules/loading.py", line 455, in load_modules
load_module_graph(
File "/home/odoo/src/odoo/saas-18.4/odoo/modules/loading.py", line 226, in load_module_graph
load_data(env, idref, 'update', kind='data', package=package)
File "/home/odoo/src/odoo/saas-18.4/odoo/modules/loading.py", line 79, in load_data
tools.convert_file(env, package.name, filename, idref, mode, noupdate, kind)
File "/home/odoo/src/odoo/saas-18.4/odoo/tools/convert.py", line 624, in convert_file
convert_csv_import(env, module, pathname, fp.read(), idref, mode, noupdate)
File "/home/odoo/src/odoo/saas-18.4/odoo/tools/convert.py", line 680, in convert_csv_import
raise Exception(env._(
Exception: Module loading l10n_cl failed: file l10n_cl/data/res.bank.csv could not be processed:
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
No matching record found for name 'Chile' in field 'Country'
```
upg-3131231
Forward-Port-Of: odoo/odoo#229435
Forward-Port-Of: odoo/odoo#229218The user form now keeps the login editable after a user is created while avoiding duplicate-looking email and login fields when they match. In HR, the same behavior applies using the employee work email, making account updates clearer without adding unnecessary clutter.
Original PR description
We want to allow users to edit the login even after the user is created. However as the email is usually the same as the login we don't want to be too noisy by having duplicate values. If the email and login field are the same: only show the login field If the user goes to the user form and modifies the "email" (actually login) both fields will appear and they will be able to modify each independently. Same logic is applied to hr with user.work_email replacing user.email task-5130854
The accounting interface now shows trusted bank accounts with a green shield and untrusted bank accounts with a red warning icon. This makes it easier for users to quickly recognize account trust status and avoid mistakes during payment-related work.
Original PR description
This commit fixes the UI indicator of trusted/untrusted bank accounts. For trusted bank accounts, they are indicated with a green shield. Untrusted bank accounts are indicated with a red exclamation circle. task-5117800 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Messages that use only @everyone in Discuss channels now send successfully. This prevents failed team-wide notifications when no individual users are tagged, making channel announcements more reliable.
Original PR description
**Before this commit:** Since [1] if a user wrote a message with only `@everyone` and did not mention any individual user, the message failed to send. This happened because the system tried to combine the list of mentioned users with the list of channel members, but the mentioned users list was None and caused an error. **After this commit:** `@everyone` can be used on its own without also tagging specific users. When no other users are mentioned, the system simply treats it as an empty list and continues normally, allowing the message to be sent to everyone in the channel. [1]: https://github.com/odoo/odoo/pull/219637 Task-5136984 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an automated test for QFPay refunds that could fail depending on the time of day. It helps keep validation builds stable without changing the customer-facing payment experience.
Original PR description
Refund cannot be processed after 11PM and are leading to errors whenever the test happens to run between 11PM and midnight. runbot build error: 232599 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Belgian payroll employee form now shows the Patrena code field again. Related payroll provider codes for UCM and SD Worx are also arranged more clearly, helping payroll teams find and maintain employee provider information more easily.
Original PR description
Restored the Patrena code field and arranges the other related codes (UCM & SD Worx) so that they are displayed two per row. task-5052003 Forward-Port-Of: odoo/enterprise#93635
Turkish e-invoice XML notes now exclude extra hyperlink reference footnotes from invoice terms and conditions. This keeps the submitted e-invoice content cleaner and avoids duplicate or confusing link text in official XML documents.
Original PR description
Currently, when we add some hyperlinks in the Terms and Conditions of the invoice, it comes along with the hyperlink reference in the 'cbc:Note' tag in the XML. Example: ```xml <cbc:Note> Terms: Payment: https://www.odoo.com [1] Refund: https://www.google.com [2] [1] https://www.odoo.com [2] https://www.google.com </cbc:Note> ``` This PR removes that hyperlink references in the e-invoice XML. task-5027935 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a startup or module-related issue on ArchLinux systems where Odoo expected an optional operating system field that is not present. It makes Odoo handle ArchLinux correctly, improving reliability for deployments on that platform.
Original PR description
The `platform.freedesktop_os_release()` function returns the content of the `/etc/os-release` file as a `dict[str, str]`. The entry `ID` is the name of the OS (`linuxmint` on Linux Mint) and `ID_LIKE` is the name of the OS `ID` is derived from (`ubuntu debian` on Mint). In ArchLinux the `ID` is `arch` and `ID_LIKE` entry is missing. Reported-By: Muhammad Al-Habib Ouadhour <houadhour@yandex.com> 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 Forward-Port-Of: odoo/odoo#229207
The payment wizard now shows clearer and more accurate messages when early payment discounts are involved. Users selecting the full amount will be guided to the correct discount option instead of being incorrectly pointed to installments, reducing confusion during payment entry.
Original PR description
This commit fixes the Pay wizard message by: - Removing an unnecessary extra semicolon in the displayed message. - Correcting the suggestion shown when Early Payment Discount (EPD) is applied and the user selects the full amount. Previously, it incorrectly suggested switching to installments (a different payment method). It now correctly suggests switching to the early payment discount option. task-5090074
Rental product prices in the online store now follow the website currency's configured decimal precision. This prevents prices from incorrectly showing extra decimals, improving consistency and customer clarity.
Original PR description
Versions -------- - 17.0 Steps ----- 1. Set currency precision to 0 decimals; 2. check prices in eCommerce as public user. Issue ----- Prices are displayed with 2 decimals Cause ----- The `_priceToStr` method used, always uses a `precision` of 2, except in editor mode when it will retrieve a different value from a hidden `.decimal_precision` element. Solution -------- Add the website's currency precision to `combination_info` via the controller, and use this value in `_priceToStr`. opw-4996878 Community PR: https://github.com/odoo/odoo/pull/224429 Forward-Port-Of: odoo/enterprise#95968 Forward-Port-Of: odoo/enterprise#95634
This fixes an issue where tax return report period options could be matched against the wrong report identifier when reports use sections. Businesses using sectioned accounting reports should see more reliable period selection and fewer incorrect return views.
Original PR description
The _init_options_return_periodicity would compare the report_id with self.id, which would lead to bugs in the case of reports with sections since in those cases it's the section id that's taken into account. Added that check. Also backported https://github.com/odoo/enterprise/pull/93187 's fix. Forward-Port-Of: odoo/enterprise#96115
Payment providers copied for newly created companies will no longer keep a website link that belongs to a different company. This prevents company consistency errors during company creation while preserving the website link when it is valid for the same company or a branch.
Original PR description
Versions -------- - saas-18.4+ Steps ----- 1. Specify a website for a payment provider; 2. create a new (non-branch) company. Issue ----- > Uh-oh! You’ve got some company inconsistencies here Cause ----- As of commit 0d3228e10d04a, payment providers get automatically duplicated when creating a new company. This leads to company inconsistencies when the provider has a website specified, as the website's company doesn't match copied provider's company. Solution -------- Disable automatic copying of the `website_id` field, and instead, handle it manually in the `copy` override, assigning the `website_id` field iff the new provider belongs to the same company or a branch company. opw-5119731 Forward-Port-Of: odoo/odoo#229676
This fix prevents the online shop product page from crashing when a website editor removes the quantity selector. Customers and editors can continue using product pages normally, even when that page element is not present.
Original PR description
steps to reproduce: ------------------- 1. Install website_sale_stock 2. Go to Website > Shop > Product (with inventory tracking enabled) 3. Click on Edit and remove the "Quantity" snippet 4. Save…
steps to reproduce: ------------------- 1. Install website_sale_stock 2. Go to Website > Shop > Product (with inventory tracking enabled) 3. Click on Edit and remove the "Quantity" snippet 4. Save the changes issue: ------ ``` TypeError: Cannot read properties of null (reading 'value') ``` cause: ------ The code: https://github.com/odoo/odoo/blob/2bd0b503e0b30a7a5e19736f7bdf89700ef1d3c6/addons/website_sale_stock/static/src/js/variant_mixin.js#L35-L36 unconditionally accessed `addQtyInput.value` This raises an error when the "Quantity" snippet has been removed, since `addQtyInput` is null. Reference PR: https://github.com/odoo/odoo/pull/223917 **NOTE**: During the conversion of website_sale public widgets to interactions, the jQuery was replaced with an HTML element. For e.g, ```python3 $addQtyInput ==> addQtyInput ``` Unlike jQuery objects, native elements can be null, but the code still assumes its presence in several places, https://github.com/odoo/odoo/blob/bdc888e78283f25067eb8cf5b79d4c30ad4b3469/addons/website_sale_stock/static/src/js/variant_mixin.js#L36 https://github.com/odoo/odoo/blob/bdc888e78283f25067eb8cf5b79d4c30ad4b3469/addons/website_sale_stock/static/src/js/variant_mixin.js#L43 https://github.com/odoo/odoo/blob/bdc888e78283f25067eb8cf5b79d4c30ad4b3469/addons/website_sale_stock/static/src/js/variant_mixin.js#L58 This leads to errors when the "Quantity" snippet is removed. solution: --------- Check if `addQtyInput` exists before accessing its value. Co-Authored by loti@odoo.com opw-5095486 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures the VAT number test suite can correctly load its external validation dependency. It reduces the risk of false test failures, helping maintain confidence in VAT validation behavior without changing day-to-day user workflows.
Original PR description
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
This fix restores the tooltip text that appears when users hover over custom text fields in sale order lines. It ensures information entered in these fields is easier to review without opening or editing the line, improving usability for sales teams using Studio customizations.
Original PR description
## Versions 18.0+ ## Issue No tooltip can be displayed on Sale Order Lines. ## Steps to reproduce *Install Studio* - Open any SO; - Open Studio: - Click "Edit List view" on the Order Lines table; - Add a "Text" field in the columns; - Close Studio. - Add a product line if none: - Write something in the new column added with Studio; - Hover that cell and see no tooltip appear ## Cause https://github.com/odoo/odoo/blob/4daf4824a70ef679f65d5cbb15d71bc55c1e760e/addons/web/static/src/views/list/list_renderer.xml#L250 The template calls `getCellTitle` which returns a formatted text but has been overridden. These methods call the original `getCellTitle` method but don't return the formatted value. opw-4921113 Forward-Port-Of: odoo/odoo#229634 Forward-Port-Of: odoo/odoo#225550
This fixes an internal automated test for Odoo's bus messaging module so it only considers notifications from the database being tested. The change helps prevent misleading test failures and supports more reliable quality checks without changing user-facing behavior.
Original PR description
In [1], logs were added to the `test_postcommit` test in order to better understand why it sometimes fails. However, this commit changed the test behavior: we only care about notify coming from the DB executing the test, but the `channel` variable is filled regardless of the DB the notification comes from. [1]: https://github.com/odoo/odoo/pull/229106 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 Forward-Port-Of: odoo/odoo#229844
This fixes an automated bank reconciliation walkthrough so it waits for the right screen element before continuing. It helps prevent occasional false test failures, improving confidence in releases without changing everyday user behavior.
Original PR description
The step checks the non presence of `o_bank_rec_quick_create`. But this element does not exist, as it should be `o_bank_reconciliation_quick_create`. This causes the tour to sometimes fail as we click on unfold before the interface updates from the creation of the line. runbot-error-230727 Forward-Port-Of: odoo/enterprise#95359
This fixes an internal automated test for SEPA credit transfers so it follows the current rules for handling sanitized bank account numbers. It helps keep payment-related checks reliable without changing day-to-day user workflows.
Original PR description
Direct update sanitized_acc_number is not allowed. Forward-Port-Of: odoo/enterprise#95477 Forward-Port-Of: odoo/enterprise#72508
This update adjusts internal automated tests so they no longer depend on demo or default user settings being present. It helps make quality checks more consistent across helpdesk, timesheet, payroll, and localization areas without changing customer-facing behavior.
Original PR description
The community counter part makes the tests independent from `env['res.users']._default_groups()`. `helpdesk.group_helpdesk_manager` is the only group that is given to `base.default_user_group` in the master data (is that normal?), so we need to give it explicitly in the tests since we don't rely on the default user groups anymore in tests Forward-Port-Of: odoo/enterprise#96098 Forward-Port-Of: odoo/enterprise#92410
This fix makes Odoo's automated tests behave consistently whether or not demo data is installed. It reduces false test failures caused by extra default user permissions in demo environments, helping maintain release quality without changing customer-facing behavior.
Original PR description
The tests should not be impacted by the demo data however it is currently the case. Indeed, a lot of groups are added to the default group user when installing the demo data. Instead, we only take the user group like it is the case when no demo is installed. Forward-Port-Of: odoo/odoo#229656 Forward-Port-Of: odoo/odoo#223039
This fixes an issue where report annotations could be lost when multiple annotation loads happened at the same time. It also adjusts the test flow to open balances from the main working files view, helping keep automated checks reliable.
Original PR description
yet again ...  It was possible for multiples loadAnnotations to be present at the same time, losing the annotations from all except one of them. o_embedded_actions wasn't acting perfectly, and we will probably change it in the future so we are just going back to the main working files kanban view and opening the balances from there Linked Runbot Errors: - https://runbot.odoo.com/odoo/runbot.build.error/231762 - https://runbot.odoo.com/odoo/runbot.build.error/232575 - https://runbot.odoo.com/odoo/runbot.build.error/232554