Thursday, February 27, 2025
10 changes · master
Enhancements to existing features
This update simplifies how email-related tests are organized so modules can use lighter shared tools without unnecessary setup data. It helps prepare the system for future performance and scalability work, while also fixing a small accounting email issue that could cause a crash.
Original PR description
Move tools in mail tool class. That way modules don't have to depend on the MailCommon class, just the lower one MailCase without demo and data setup. Lessen usage of MailCommon When possible, use a lower class like MailCase that holds tools and helpers but does not propagate setup data. While browsing through test classes, remove useless setup. Task-4605118: [marketing_automation] Unbordelize test classes Prepares Task-4224152: [marketing_automation] Performance / Scalability
This work adds experimental checks to understand when Microsoft's email safety system visits tracked links before a real recipient does. The goal is to help distinguish automated security scans from genuine user engagement in link tracking tests.
Original PR description
This commit's aim is purely to test methods of detection agaisnt Windows' email safety feature, Defender, using runbots. See task-3972953 for more information.
This change removes a duplicate-skipping option from shared accounting and core data-loading logic because it produced inconsistent results. The special duplicate-handling behavior is now limited to the French FEC import area where it is actually needed, reducing confusion and risk for future maintenance.
Original PR description
the return value of _load_records is defined as
:return: the records corresponding to ``data_list``
which implies the guarantee:
``len(_load_records(data_list, ..)) == len(data_list)``
However, ``ignore_duplicates`` introduced in https://github.com/odoo/odoo/pull/160203 violated this rule.
Specifically, ``_load_records(data_list, update=False, ignore_duplicates=True)``
only returns newly created records.
And ``_load_records(data_list, update=True, ignore_duplicates=True)``, returns
newly created records and pre-existing noupdate records.
It is hard to define the method's feature.
The logic of ignoring duplicates was kept exclusive to l10n_fr_fec_import module, since it was only used there.
And the commit https://github.com/odoo/odoo/commit/613fbb33de82b748f09bc3c15ecf186aec3c8605 responsible for adding the logic in account and ORM was reverted.
task-4556286
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update adds missing point of sale service definitions used by developers building or customizing POS features. It helps teams work faster and more accurately by improving editor guidance, without changing the day-to-day POS experience for users.
Original PR description
Enterprise PR: https://github.com/odoo/enterprise/pull/80196 This commit adds POS services that were previously missing from the `@types/services.d.ts` file. This should allow editor auto-completion when using these services via `useService`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The automation error dialog has been simplified to make error messages easier for users to read and understand. This improves the experience when automated actions encounter issues, with no change to the underlying automation behavior.
Original PR description
The UI of the base_automation_error_dialog is a bit simplified. Taskid: opw-4600013 ### Before  ### After 
Kanban cards no longer receive an unnecessary placeholder styling label when no progress bar option is selected. This avoids confusing or buggy-looking page markup without changing how users interact with kanban views.
Original PR description
In a kanban view with progressbar, when no bar is clicked in a column, records of that column have the oe_kanban_card_undefined classname (whereas when a bar is selected, it has a classname like oe_kanban_card_success for instance). This commit prevents from generating the weird classname with undefined, as it looks buggy and is useless anyway. 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
Website SEO settings have been renamed to make them easier to understand, especially for users trying to make their site visible to Google. This should reduce confusion when configuring search engine visibility and improve the setup experience.
Original PR description
Some users may struggle to inform Google that their website exists. Therefore, in this commit, we renamed some SEO settings to make them more explicit or updated them. Task-4452546 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds behind-the-scenes typing information for IoT and preparation display services. It helps developers work faster and more reliably through improved editor suggestions, with no direct change for end users.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/199372 This commit adds typing information for IoT and pos_preparation_display services, to enable editor auto-completion.
The French FEC import process now keeps duplicate-entry handling within the FEC import feature itself. This reduces unnecessary impact on broader accounting setup areas, making the change more focused and easier to maintain.
Original PR description
This commit, along with an equivalent community commit, keep the ignore duplicates logic exclusive to FEC import module. Previously, the logic was touching the chart template in account module, and it was also touching the ORM, which was unnecessary. task-4556286
This update simplifies internal test setup around mail and marketing automation so modules rely on lighter shared tools instead of heavier sample data. It also prevents database commits during tests, improving reliability and supporting future performance and scalability work.
Original PR description
Move tools in mail tool class. That way modules don't have to depend on the MailCommon class, just the lower one MailCase without demo and data setup. Lessen usage of MailCommon When possible, use a lower class like MailCase that holds tools and helpers but does not propagate setup data. While browsing through test classes, remove useless setup. Task-4605118: [marketing_automation] Unbordelize test classes Prepares Task-4224152: [marketing_automation] Performance / Scalability