Daily updates from Odoo
Saturday, September 13, 2025
11 changes · 19.0
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
This update adjusts internal performance expectations for the Knowledge app after a change in how HTML content is handled during creation. It helps keep automated performance tests accurate and prevents false alarms without changing user-facing behavior.
Original PR description
Adapting query count, due to not putting html fields in cache upon creation. task-4962646 Forward-Port-Of: odoo/enterprise#93741 Forward-Port-Of: odoo/enterprise#93171
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
The manufacturing demo data for tables now reflects the updated shop floor workflow, where each production step has its own worksheet. This gives users clearer, step-specific guidance in demos and removes an unused worksheet file.
Original PR description
Purpose: -------- With the new shopfloor design, worksheets are no longer defined at the operation level. Each step now has its own worksheet at the Quality Point level. The demo data of [FURN_9666] Table and [FURN_8522] Table Top has been updated accordingly to align with this design and provide users with a consistent experience. Before this commit: ------------------- The worksheet was attached at the operation level as a single PDF, with pages reused across different steps. After this commit: ------------------ - Worksheets are now defined at the Quality Point level. Each step has its own dedicated worksheet, split from the original PDF and applied to the corresponding Quality Check. - The unused file `drill-worksheet.pdf` has also been removed. Relevant PR: https://github.com/odoo/odoo/pull/200345 Task: 5068250
Demo data for the Table and Table Top products now matches the new shopfloor workflow. Instead of one worksheet reused across an operation, each quality step has its own dedicated worksheet, making demonstrations clearer and more consistent for users.
Original PR description
_* = quality_mrp_workorder, quality_mrp_workorder_worksheet Purpose: -------- With the new shopfloor design, worksheets are no longer defined at the operation level. Each step now has its own worksheet at the Quality Point level. The demo data of [FURN_9666] Table and [FURN_8522] Table Top has been updated accordingly to align with this design and provide users with a consistent experience. Before this commit: ------------------- The worksheet was attached at the operation level as a single PDF, with pages reused across different steps. After this commit: ------------------ Worksheets are now defined at the Quality Point level. Each step has its own dedicated worksheet, split from the original PDF and applied to the corresponding Quality Check. Relevant PR: https://github.com/odoo/odoo/pull/200345 Task: 5068250
The Discuss message composer now has subtler button colors, cleaner focus outlines, and better spacing in mobile action menus. These visual refinements make chat and discussion interactions feel clearer and less distracting across light and dark themes.
Original PR description
1. Send button in discuss app and chat window has lighter primary color so this looks best in white and dark theme in addition to green outline on input focus 2. Send button has darker outline, so…
1. Send button in discuss app and chat window has lighter primary color so this looks best in white and dark theme in addition to green outline on input focus 2. Send button has darker outline, so the button feels slightly smaller so it has more visual spacing with input 3. input focus outline has its effect reduced (100% to 65%), so this is less distracting especially in dark theme 4. Composer buttons in mobile are rounded and no oval-shaped. 5. Discuss actions in bottom sheet have better (more) spacing in-between icon and label Before / After <img width="456" height="799" alt="Screenshot 2025-09-12 at 14 44 19" src="https://github.com/user-attachments/assets/5db8971a-bf1b-4269-b4dd-19a0632d3a7b" /> <img width="454" height="798" alt="Screenshot 2025-09-12 at 18 05 19" src="https://github.com/user-attachments/assets/2965e6ab-57dd-4861-86e1-3a6ccb6cccc7" /> Before / After <img width="445" height="800" alt="Screenshot 2025-09-12 at 14 44 30" src="https://github.com/user-attachments/assets/9e8d9b7e-2fa7-4d4f-b5b2-9a57bedbbe56" /> <img width="444" height="797" alt="Screenshot 2025-09-12 at 14 45 20" src="https://github.com/user-attachments/assets/1ee8a33e-8fe4-4184-add6-9788582d925f" />
The messaging menu now shows the same live chat status indicator that users already see in other chat areas. This makes agent or chat availability easier to spot at a glance and keeps the experience consistent across Odoo messaging.
Original PR description
Live chat status icon is visible in discuss sidebar, in chat window header, in chat bubble... It's missing in messaging menu, which this commit fixes. Before <img width="479" height="612" alt="Screenshot 2025-09-11 at 17 33 23" src="https://github.com/user-attachments/assets/100c19e9-fb37-4def-822e-ed8886e87a83" /> After <img width="481" height="612" alt="Screenshot 2025-09-11 at 17 32 45" src="https://github.com/user-attachments/assets/57947070-e31d-4629-8114-7ae6e3d6ce97" />