Daily updates from Odoo
Monday, August 18, 2025
23 changes · master
Enhancements to existing features
Marketing automation mailing tests were updated to match the new default sender behavior. Emails from mass mailings now use the mailing’s responsible person as the author by default, helping campaigns reflect the correct ownership.
Original PR description
Emails from mass mailings are now sent with the responsible user of that mailing as the author by default, or the current user This change specifies that the responsible of the mailing is also the creator of the campaign so the tests that relied on that assumption remain valid. Task-2199202
Creating a payroll run is now quicker because users choose only the start date with a simple date picker. The end date is still filled automatically and remains editable when adjustments are needed.
Original PR description
To ensure a smoother UX, the `daterange` widget has been replaced, as `date_end` is already calculated based on the selected `date_start`. Previous behavior: When creating a pay run and selecting `date_start`, a date range popup was displayed. This required two clicks, even though `date_end` was already auto-filled. New behavior: A simple date picker is used for `date_start`. The `date_end` remains editable so it can still be updated manually if needed. Task: 5005903 Forward-Port-Of: odoo/enterprise#92028
Adds automated checks for the IoT printing service to make sure test prints use the expected connection method and receive responses in the right format. This helps reduce regressions and improves confidence that IoT printer actions continue working reliably.
Original PR description
This commit brings unit tests for the iot http service, and small fixes to it. It also brings a tour to ensure using 'Test' print on the iot device record uses websocket (after failing using webrtc and longpolling), and receives a response in the right format when calling the callback controller (that the iot box calls to send a websocket message).
The Helpdesk tracking component has been renamed to better show that it also enables communication-thread behavior. This is a low-impact internal clarification that helps future maintenance and supports upcoming resource aging features without changing day-to-day user workflows.
Original PR description
Due to changes in the mail.tracking.duration.mixin class, namely to enable it to support rotting resources, it now inherits from mail.thread. To clarify at a glance that the mixin makes the inheriting model into a thread, it is renamed to mail.thread.tracking.duration.mixin. task-4684660
Payroll screens now use the clearer label “Pay Schedule” instead of “Schedule Pay” for employee and contract template information. This improves consistency and makes the field easier for users to understand without changing payroll behavior.
Original PR description
Field label changes is employee and contract template view, from Schedule Pay to Pay Schedule Task ID: 5005026
This update improves how Knowledge article data is loaded when no specific fields are requested. It helps ensure commonly needed information is available more consistently, supporting smoother performance and fewer missing-data edge cases.
Original PR description
Companion of https://github.com/odoo/odoo/pull/223199
Weekly date filters now use a clearer shared starting point for the week. This keeps planning, attendance, and timesheet forecast reports aligned when users view information by week.
Original PR description
This PR changes the week-based domains to use the new 'week_start' keyword.
The Planning app now shows clearer helper text in the roles configuration menu and uses the standard default icon instead of a screenshot. This makes the setup experience cleaner and easier for users to understand.
Original PR description
- update the helper text in roles configuration - replace the screenshot with the default icon --- task-4951378
Project document tags now appear using the same colors defined for those tags. This makes tags easier to recognize at a glance and keeps the project document view visually consistent with tag settings.
Original PR description
Set the document tag color in the project to the same color as the tag color --- task-4951362
Resolved issues and error corrections
The Belgian payroll departure wizards now limit employee selection to the company the user is currently logged into. This prevents users from accidentally selecting employees from other companies and helps keep payroll departure processing accurate in multi-company setups.
Original PR description
Added a domain to employees to limit the employee field in the departurre wizard to the logged in company **Steps to reproduce:** - Log into a Blgian Company - Access the Departure wizard through Payroll/Reporting or through the cog actions in an employee. **Issue:** Previously, when using the departure wizard, the employees shown were all the employees across different companies, when in reality it should be employees of the logged in company only **Fix:** Added employee domain so that it allows employees from the current logged in company only Task: 4965719 Forward-Port-Of: odoo/enterprise#92224 Forward-Port-Of: odoo/enterprise#90813
An automated Web Studio test was updated to avoid occasional false failures caused by inconsistent browser event behavior. This helps keep development validation stable without changing the product experience for users.
Original PR description
There was an undeterminism in a test relying on the event beforeunload beign defaultPrevented. For some reason it failed sometimes, probably because of an override somewhere. This commit fixes the problem by asserting other things in the test, arguably even more relevant than before. runbot-error-229754 Forward-Port-Of: odoo/enterprise#92380
This update adjusts the Planning app's automated split-shift walkthrough so it follows the correct path during testing. This helps ensure the related scheduling workflow remains reliable and reduces the risk of unnoticed issues reaching users.
Original PR description
In this commit, we add steps to ensure the tour take the good way.
A failing automated test in the Saudi payroll module was resolved by assigning the correct HR user access group to an employee field. This helps keep payroll functionality stable and ensures employee information follows the expected access rules.
Original PR description
Issue: - The test case test_employee_fields_groups was failing Reason: - The group on the field was not defined. Fix: - added the group hr.group_hr_user on the field. runbot error: https://runbot.odoo.com/odoo/runbot.build.error/230911
The wording for the project documents folder setting was corrected so it no longer promises that task documents are automatically moved into that folder. This helps users understand the current behavior after document access and organization changes.
Original PR description
Before this commit, the tooltip displayed for `documents_folder_id` defined in `project.project` model, said all documents linked to a task of a project will be automatically added inside that folder but it is no longer the case since the refactoring of Documents to simplify the implementation but also let the documents user sorts his documents as he wants since now the access rights are defined by folder. This commit updates the tooltip accordingly. PR simplifying the bridge between documents and project apps: #75214 opw-5000224 Forward-Port-Of: odoo/enterprise#92189 Forward-Port-Of: odoo/enterprise#92164
Payslips now show the correct weekly hours when an employee has a flexible working schedule. This prevents employees and payroll teams from seeing outdated schedule hours on the payslip.
Original PR description
> note: this PR should only be FW'd till `saas~18.4`, after that for `saas~18.5` (i.e., `master`), [this PR](https://github.com/odoo/enterprise/pull/85557) should be merged. ### Steps to reproduce: -…
> note: this PR should only be FW'd till `saas~18.4`, after that for `saas~18.5` (i.e., `master`), [this PR](https://github.com/odoo/enterprise/pull/85557) should be merged. ### Steps to reproduce: - Enable "Flexible Hours" in a working schedule. - Assign the schedule to an employee. - Generate a payslip for the employee. - Observe that the "Working Schedule" section always shows `hours_per_week` from the total hours calculated from the Work Schedule defined before turning on "Flexible Hours" ### Description: - the payslip incorrectly displayed the weekly working hours from the Work Schedule regardless of whether the employee's schedule used flexible hours. ### Cause: - the report template did not check for the `flexible_hours` flag and always rendered the value from `contract_id.hours_per_week`. ### Fix: - added a condition in the payslip template to check if `flexible_hours` is enabled. - if true, it displays `full_time_required_hours` from the working schedule instead of the contract's `hours_per_week`. task: 4719717 Forward-Port-Of: odoo/enterprise#92441 Forward-Port-Of: odoo/enterprise#83910
This update fixes an incorrect provision code in the Swiss payroll configuration. It helps ensure payroll calculations and reporting use the right setup, reducing the risk of payroll processing errors.
Original PR description
Forward-Port-Of: odoo/enterprise#92477
Printer tests from the device form now handle cases where the IoT device does not respond in time. Instead of causing an unclear system error, users receive a proper notification, making troubleshooting smoother.
Original PR description
When testing printers from the device form, if no response was received from the IoT after the websocket timeout, we did not provide any message. This resulted in errors when providing `undefined` to the notification service. Forward-Port-Of: odoo/enterprise#92391
Users can now sign documents directly from the chatter without losing the document reference. This prevents signing actions from failing or opening with missing context, making the workflow more reliable.
Original PR description
Before this fix, when a user signed a document from the chatter, the reference_doc context was not passed correctly. This PR ensures the context is properly set so signing from chatter works as expected.
A timesheet holidays test was updated so it no longer fails depending on the time of day or user timezone. This improves reliability of automated checks without changing customer-facing behavior.
Original PR description
Before this commit, when the `test_timer_methods_handle_project_access_restrictions` test is executed after 22h in UTC the test failed because the timezone of the current user is the belgian one. This commit makes sure the date and timezone no longer affects this test since it is not the purpose of this test. runbot-error-230490 Forward-Port-Of: odoo/enterprise#92264
The Belgian payroll employee form now places the “Seniority at hiring” field under Education instead of Citizenship. This makes the information easier to find in the section where users are more likely to expect it, with no change to payroll calculations or employee data.
Original PR description
Move Seniority at hiring from Citizenship to Education group in employee form. In this PR, we moved seniority at hiring from the Citizenship to the Education group in the employee form. Related task: 4936767. Forward-Port-Of: odoo/enterprise#90137
Peru PLE reports 5.1 and 6.1 now keep the original account move name in the report description instead of removing spaces or slashes. This helps ensure submitted reports retain the full original information, reducing audit-related risk with tax authorities.
Original PR description
Problem: For PLE reports 5.1 and 6.1, the value for `glosa` was being modified (i.e. blank spaces and slashes removed). Although SUNAT accepts the modified value, no information should be removed in the case it might lead to issues with tax authorities during an audit. Solution: The value for `glosa` on the reports should be the exact account move name. opw-4803060 Forward-Port-Of: odoo/enterprise#92271 Forward-Port-Of: odoo/enterprise#91967
Code cleanup and technical improvements
The expense OCR flow no longer predicts categories, so old category prediction code has been removed. This reduces unnecessary maintenance while keeping product prediction aligned with the newer OCR behavior.
Original PR description
In the newer version of the expense OCR (see commit 7c966fc), it doesn't predict a category anymore. Instead, it actually detects a description from the expense that can be used to predict the product. This commit cleans up the code that relates to the category prediction as it's not used anymore.
Miscellaneous changes
In this commit we remove checkDelay from codebase because it is no longer used since https://github.com/odoo/odoo/pull/194508 has been merged. Forward-Port-Of: odoo/enterprise#83466 Forward-Port-Of: odoo/enterprise#83217
Original PR description
In this commit we remove checkDelay from codebase because it is no longer used since https://github.com/odoo/odoo/pull/194508 has been merged. Forward-Port-Of: odoo/enterprise#83466 Forward-Port-Of: odoo/enterprise#83217