Tuesday, April 21, 2026
19 changes · master
Enhancements to existing features
This update makes small improvements to the customer payment follow-up process, including cleaner reminder handling and minor efficiency updates. It should help accounting teams manage overdue invoice follow-ups more smoothly without changing the overall workflow.
Original PR description
As part of https://github.com/odoo/enterprise/commit/105d3bff49d486b8ecd943e77d635fe011b5e361, this commit introduces a few minor improvements in the follow-up logic and some small optimizations/cleanups. task-5241209
The POS printer setup screens have been adjusted so printer-specific information appears more appropriately for IoT and Italian fiscal printer use cases. This makes the configuration view clearer for users and helps avoid showing irrelevant fields in the wrong context.
Original PR description
In this commit: =============== * Adapted the main POS printer kanban view * Adjusted LNA field visibility using xpath in respective modules * Applied module-specific conditions for IoT and fiscal printers Task: https://github.com/odoo-dev/enterprise/commit/59461111fa18da8f84bfec4254dd00ccbe16e2d3 Related Comm. PR: https://github.com/odoo/odoo/pull/249447
The accounting reports module was updated to stop using an old tax return configuration check that has been removed from the system. This keeps enterprise reporting aligned with the main Odoo accounting changes and reduces the risk of errors from obsolete logic.
Original PR description
- In this commit, the _check_tax_return_configuration method is removed, so the usage of that method is removed See this pr for more info: https://github.com/odoo/odoo/pull/247216 Related Com PR: https://github.com/odoo/odoo/pull/260115 no-task
The manufacturing barcode test coverage was updated to match the new default behavior where consumption warning prompts appear more broadly. This helps ensure production barcode workflows continue to be validated correctly as warning handling changes.
Original PR description
Consumption warning wizard now trigger by default for all manufacturing warnings, as `flexible` is no longer the default setting. We adapt some tests to explicitly create MOs with `flexible` consumption, make one use the `warning` default now that it's unaffected by the wizard under the new behaviour, and make a tour test the wizard through underconsumption. Task ID: [4603609](https://www.odoo.com/odoo/my-tasks/4603609), [4441090](https://www.odoo.com/odoo/my-tasks/4441090)
The order details popup now shows the delivery provider as the order origin for online food delivery orders. This makes it easier for staff to identify where an order came from and handle it correctly.
Original PR description
In this commit we extend the order details popup to display the delivery provider name as the origin for online food delivery orders. Task: 6143526
The Documents search panel now highlights the full header when the fold toggle is not shown, making the current focus clearer. Keyboard use of the fold control now only expands or collapses a category instead of also selecting it, reducing accidental actions.
Original PR description
Review the focus state when the `o_toggle_fold` is not visible so the entire header is highlighted. The `onKeyDown` on the toggle should just fold the category, not activate the entry followup task-6090140
Test coverage was updated to match recent behavior changes in partner commission and inter-company sales/purchase flows. This helps keep automated checks reliable and reduces the risk of future regressions, with no direct change expected for end users.
Original PR description
With this commit: --------------------------- Update the test cases to align with recent changes and ensure compatibility. Task ID: 5249083
Payroll issue checks now skip records linked to archived employees, avoiding unnecessary or misleading warnings. This keeps payroll follow-up focused on active employees and improves accuracy in both standard and Belgian payroll workflows.
Original PR description
before we computed issues on employees, now it's moved to versions. we don't archive versions for archived employees, so we skip versions for archived employees task: 6128338
This update aligns several manufacturing, PLM, and rental sales components with the ministock approach. It removes an unnecessary sales-related demo setting, renames a product view for consistency, and adjusts rental test data so stock behavior is handled correctly.
Original PR description
- removing sale_delay from demo data since mrp_workorder is not dependent on the sale app. - renaming `view_template_property_form` to `product_template_form_view` - adapt a test product to ministock by making it storable task 5418128
Resolved issues and error corrections
Belgian payroll contract templates now include the Dimona category, helping ensure the right reporting information is carried into employee contract versions. This reduces manual corrections and supports more accurate payroll administration for Belgian employers.
Original PR description
Forward-Port-Of: odoo/enterprise#114072
This fixes an issue where certain Gemini AI models could accidentally discard existing response settings when adding thinking-related options. The change helps keep AI outputs consistent and prevents configuration choices from being lost.
Original PR description
When using gemini-3-flash or gemini-3.1-pro models, the generationConfig dict is completely replaced by a new one that only contains the 'thinkingConfig'. This commit fixes the issue.
Fixed an issue where Timesheets Assistant suggestions from activity rules could appear as unmatched when a project was set without a specific task. These suggestions now stay linked to the configured project, making time entry recommendations clearer and easier to use.
Original PR description
Steps to Reproduce --- - Define an aw.rule with a project set without a task (false) - The rule regex matches a desktop app event (e.g. Discord window) - Open the Timesheets Assistant for the current…
Steps to Reproduce --- - Define an aw.rule with a project set without a task (false) - The rule regex matches a desktop app event (e.g. Discord window) - Open the Timesheets Assistant for the current day Current Behavior --- - The matched event has _res_model set to "project.task" and _res_id set to undefined, despite no task being configured on the rule - The suggestion appears as "Unmatched" in the assistant even though a project was correctly defined on the rule Expected Behavior --- - The matched event should have _res_model set to "project.project" and _res_id set to the rule's project_id - The suggestion should appear under the configured project Issue --- - In extractWatcherActivity(), both project_id and task_id blocks used != null as the guard condition - When task_id is false, false[0] is undefined, overwriting the correctly set _res_model i.e. "project.project" and _res_id from the project_id block with "project.task" and undefined _res_id Fix --- - Replace with a truthy check task - 6089410 Forward-Port-Of: odoo/enterprise#114172
The Timesheet Assistant now excludes calendar entries created by approved time off requests. This prevents employees from seeing vacation or leave records suggested as billable or work-related timesheet entries.
Original PR description
Steps to Reproduce:
---
1. Book a time off for any day via the Time Off app.
2. Open the Timesheets app for that same day.
3. Open the Timesheet Assistant suggestions panel.
Current Behavior:
---
The assistant surfaces the calendar event generated by the Time Off app as a
timesheet suggestion, e.g."Calendar Event - Mitchell Admin on Time Off : 1 days"
Expected Behavior:
---
Calendar events created by time off requests should not appear as
timesheet suggestions.
Issue:
---
The get_calendar_events getter in timesheet_grid_calendar fetched all calendar event
for the user without filtering by res_model, so time off meetings were included.
Fix:
---
Add ("res_model", "!=", "hr.leave") to the calendar.event search
domain.
task-6117932
Forward-Port-Of: odoo/enterprise#113789A Helpdesk filter was corrected so ticket priorities are compared using the right value type. This prevents an error that could interrupt ticket searches or views involving priority filters, helping support teams access their work reliably.
Original PR description
Use correct selection value. ``` psycopg2.errors.UndefinedFunction: operator does not exist: character varying = integer LINE 1: ..."active" IS TRUE AND "helpdesk_ticket"."priority" IN (3) AND... ```
This change removes duplicate payroll-related method definitions and keeps the intended salary contract behavior in one place. It helps reduce the risk of inconsistent payroll calculations or maintenance errors without changing the visible user workflow.
Original PR description
Some methods are defined two times without call to super. Methods defined in hr_contract_salary are moved to payroll (to replace payroll one)
Fixes an issue in Planning where clicking an empty schedule cell for a field service resource could fail because duplicate role information was being requested. This keeps the resource avatar selector working reliably without changing user-facing workflows.
Original PR description
Steps to reproduce: - Open Planning (with field service activated) - Click on an empty cell for Anita's resource This commit removes the uneccessary related field `role_ids` on the new widgets introduced in odoo/enterprise#109060, as it is already added to the field specification [here](https://github.com/odoo/enterprise/blob/master/planning/static/src/views/fields/many2many_avatar_resource/many2many_avatar_resource_field.js#L21-L29)
This fix updates Helpdesk priority filters so they use the expected value format during upgrades. It prevents upgrade failures and keeps Helpdesk ticket filtering working consistently after recent platform validation changes.
Original PR description
- After the recent changes in `fields_selection.py`, selection values are now validated strictly as strings instead of allowing integers to be converted automatically. - Because of that, domains still using integer values such as `3` can fail during upgrade and now need to use string values like `'3'`. - This works fine directly on the master branch, but it fails during the upgrade from saas-19.2 to master. - Runbot link: https://runbot.odoo.com/runbot/build/107991687 - I think it may be related to this PR: [255901](https://github.com/odoo/odoo/pull/255091) - Am I missing something here?
This fix updates the French DAS2 report sending process so attached files use the expected internal format. It helps ensure DAS2 report attachments are generated and sent reliably after a recent platform change.
Original PR description
Since 0b50021bdae54779396d75d3cddbd9eb42571553 the we should use `BinaryBytes` instead of base64 for binary attachments. This commit handles that. No task ID
This update corrects test reference files for Peruvian electronic invoicing after a rounding change in related invoice calculations. It helps keep automated checks reliable so future updates do not get blocked by outdated expected results.
Original PR description
https://github.com/odoo/odoo/commit/e79136d04c844f9a0a8c6d0532c65e0cc3a68b8f fixes unit price rounding in peppol. This PR fixes a broken test in l10n_pe_edi opw-6009771 Forward-Port-Of: odoo/enterprise#114377 Forward-Port-Of: odoo/enterprise#114159