Saturday, September 13, 2025
7 changes
1 change
Enhancements to existing features
Invoices created from sales orders now use the sales order name as the reference when no customer reference is already provided. This helps teams match prepayments more reliably and reduces payment reconciliation errors, with related updates to payment memo handling and localization tests.
Original PR description
Unless there's already a customer reference, we need the SO name to be able to match any prepayment --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
6 changes
Enhancements to existing features
Record creation is now faster when large HTML content is involved, such as marketing emails. The change avoids repeating an expensive processing step, reducing campaign processing time and memory use while keeping stored content properly cleaned.
Original PR description
Description ----------- When creating records with `vals` for HTML fields, there are two 'sanitization' operations happening: 1) Once in `convert_to_column`, when converting the `vals` for *database*…
Description ----------- When creating records with `vals` for HTML fields, there are two 'sanitization' operations happening: 1) Once in `convert_to_column`, when converting the `vals` for *database* insertion 2) Once post-insert in `convert_to_cache`, when converting the `vals` for insertion in the *cache* for the newly created records. This redundancy has a negative performance impact when creating many records where new HTML fields are set, e.g., mass-mailing, as potentially large HTML documents are parsed and validated, often with external libraries. To address this issue, this commit removes the insertion into *cache* of the HTML values for the newly created records. This removes the overhead of the second sanitization, speeding up the creation, and also helps with overall memory pressure, as we're not inserting large HTML fields into cache. The latter is particularly noticeable for long-running batch creation processes that do *not* commit intermediate results. The downside of this patch is the potential *cache-miss* (and therefore the subsequent *query*) if the HTML field of the newly created records is read. This is unlikely in business code because intrinsically, an HTML field is often just a data 'blob' that has no logical usage. In the rare case where it needs to be read after creation, since the value in the database is already sanitized, re-sanitization is not necessary for insertion in the cache. Given these considerations, the trade-off seems reasonable to make. Benchmark --------- In a scenario for a marketing campaign with 1000 recipients, using a *mid-sized* email template and emulating a typical campaign, the results were: | Method | Before | After | Speed up | |-------------------------------|----------|-----------|----------| | `_process_mass_mailing_queue` | 2.84 min | 1.55 min | 1.8x | | `create` | 2.11 min | 50.23 sec | 2.5x | This represents roughly a *2x* performance improvement in processing an email campaign. * more detailed benchmarks are available in the task's description Reference --------- task-4962646 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225207 Forward-Port-Of: odoo/odoo#223875
Payroll contract templates now copy the right country-specific fields when creating employee contracts. This helps reduce missing local payroll details and improves consistency across supported country payroll setups, with tests added to confirm the behavior.
Original PR description
This commit implements _get_whitelist_fields_from_template() method across all HR payroll localizations to ensure that localization-specific fields are properly copied when creating contracts from templates. Additionally, comprehensive test coverage has been added for all localizations to validate the whitelist functionality and ensure proper template loading behavior. task-4954283 X-original-commit: b6c5609de48e631f1a7158f6c91fea35e97d4b78
Odoo notifications have been redesigned to be smaller, clearer, and more consistent across apps. They now include a progress bar so users can see when temporary messages will disappear, improving usability without changing core business workflows.
Original PR description
A big part of the notification behaviour that was in the notification service has been move to the component "Notification". With this comes also a visual cleaning of the notification. Smaller, more compact and with a progress bar that show when the notification will disappear. TASK-ID: 4334047 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Notifications have been redesigned to be smaller, clearer, and less distracting across the application. Users can now better understand when temporary messages will disappear thanks to a visible progress indicator, improving day-to-day usability.
Original PR description
A big part of the notification behaviour that was in the notification service has been move to the component "Notification". With this comes also a visual cleaning of the notification. Smaller, more compact and with a progress bar that show when the notification will disappear. TASK-ID: 4334047
The Barcode app now better supports putting packages inside other packages, including scanning multiple packages into a larger package and unpacking them when needed. Package lines are grouped and labeled by their full outer package structure, making warehouse operations clearer and reducing handling mistakes.
Original PR description
Add some improvement for the pack in pack feature in the Barcode app, like an "Unpack" button or the package lines groupement by their outermost package dest. See commits' message for more details. [task-5065193](https://www.odoo.com/odoo/966/tasks/5065193)
Clicking an @mention in Mail now opens the person's avatar card instead of taking the user directly to a chat. This helps users view relevant contact details while staying in their current conversation or workflow.
Original PR description
Purpose of this commit: Previously, clicking on an @mention would navigate the user directly to a chat session with the corresponding partner. This commit changes that behavior to open the partner's avatar card popover instead, giving the user immediate access to more detailed information without leaving the current context. task-3816952 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr