Daily updates from Odoo
Friday, November 28, 2025
7 changes · master
Resolved issues and error corrections
This update fixes an issue where documents and moves were incorrectly linked across companies in a multi-company setup. By explicitly including the company ID, the system now accurately creates and searches for documents within the correct company context, preventing errors and ensuring data integrity. This improves the reliability of financial reporting and move management.
Original PR description
Behavior before: In a multi-company setup, fetching documents could include records from different companies based on VAT numbers. When creating attachments or searching for existing moves, the company ID was not properly considered, leading to incorrect company assignments and failed move creation. Behavior after: Documents and moves are now created and searched within the correct company context by explicitly including the company ID. Root Cause: The company ID was missing in both the attachment creation and the domain used to search for existing moves, causing cross-company mismatches. opw-4929985 Forward-Port-Of: odoo/enterprise#99192
This update fixes an issue where time logs were incorrectly assigned to the user marking work orders as complete, instead of the assigned employee. Now, time logs accurately reflect the employee who actually worked on the order, improving data accuracy and reducing user confusion. This ensures proper tracking of labor costs.
Original PR description
## **Issue Before This Commit:** When a work order is assigned to an employee (not linked to the current user), and the current user marks it as done, the time log is wrongly created under the…
## **Issue Before This Commit:** When a work order is assigned to an employee (not linked to the current user), and the current user marks it as done, the time log is wrongly created under the current user’s employee instead of the assigned one. This behavior caused confusion for the user as the wrong person was shown as working on the order. ## **Steps to Reproduce:** - Create an MO with work orders and confirm it. - Assign another employee to a work order. - Mark the work order as done with the current user from the work order line. - Open the workorder and notice that the time log is created for the current user’s employee. ## **Cause of the Issue:** The bug was introduced in PR (https://github.com/odoo/enterprise/pull/84790), where the logic for assigning the main employee was overridden, ignoring the case of an already assigned employee. ## **With This Commit:** The time log is now created for the assigned employee, This resolves the confusion by ensuring the right person is tracked on the work order. TaskID: 4983514 Forward-Port-Of: odoo/enterprise#100604 Forward-Port-Of: odoo/enterprise#93378
This update simplifies the process of adding products to the shopping cart on the website. By removing outdated forms and consolidating event handlers, the system is now more efficient and reliable. This change enhances the user experience and streamlines the checkout process.
Original PR description
This PR: - Relies on dataset instead of hidden inputs to provide the necessary info to the cart service, - Removes the useless "add to cart" forms (which were used to add products to the cart in a distant past), - Merges all "add to cart" event handlers into a single one to avoid duplication. task-5116935 Community PR: https://github.com/odoo/odoo/pull/229931
This update corrects a previous issue where VoIP calls ending within a calendar range were not displayed. The change ensures that calls, regardless of their end date, are correctly shown in the calendar view, resolving a bug and improving calendar functionality. This also addresses a related crash during testing.
Original PR description
This restores a feature lost at [1]: a call beginning before the calendar current range but ending inside it was not shown anymore. Indeed the `end_date` became computed from the `duration` instead…
This restores a feature lost at [1]: a call beginning before the calendar current range but ending inside it was not shown anymore. Indeed the `end_date` became computed from the `duration` instead of the other way around, allowing efficient domain manipulation based on the duration. However, it prevented domain manipulation based on the end date, which the calendar view needs. It also just makes sense to allow filtering based on the end date too (even if we judged it less useful when making [1]). A solution could be to store the end date too, but it would be redundant data. This instead allows domain manipulation through a field `compute_sql` definition. At the same time, this does the same thing for the start date: creating a new computed field `effective_start_date`, which is either the call start date or its `create_date`. This allows to entirely remove the domain override needed in the calendar model (combined with the community commit that comes with this one, which makes the calendar now consider records without a set end date but which started within range). Note: the date_delay option of the calendar was removed at [2]. This also fixes a runbot issue during the "click everywhere" test: - Enter VoIP app - Go to calendar - Enter web studio => Crash, because the studio calendar ignores the VoIP custo about the calendar domain and filters on `end_date`. The VoIP custo being gone and filtering on `end_date` restored, this is not a problem anymore. [1]: https://github.com/odoo/enterprise/commit/47300cc462420273dd90d5668f542878b6f73254 [2]: https://github.com/odoo/odoo/commit/40c75d3635b4d0de8fca631e4aebd26a466a8709 task-5350495 runbot-234398
This update streamlines the process of generating SSL certificates for IoT devices. Previously, certificates were only issued to trial users or those with enterprise codes. Now, certificates are automatically generated based on a valid database ID, resolving potential issues in Point Of Sale and ensuring consistent IoT device connectivity.
Original PR description
Note: needs to be merged after the https://github.com/odoo/internal/pull/3858 otherwise iot pairing / certificate generation won't work Currently we are only providing the ssl certificates to the iot users if they are on trial (free certificate first 30 days) or they have an enterprise code in their db. The issue here is that if the iot box doesn't get a new certificate after a trial period they will experience a lot of issues in Point Of Sale where a lot of requests rely on local network and ssl certificates. This PR removes the logic around the enterprise code for the generation of the certificates. Now we always generate a certificate as long as the database has a valid db_uuid registered on our servers. Related Odoo PR: https://github.com/odoo/odoo/pull/232681 Related internal PR: https://github.com/odoo/internal/pull/3858
This update resolves an issue where adding serial numbers to subcontracting manufacturing orders (MOs) through the portal would incorrectly cancel and delete associated work orders, which portal users couldn't manage. The change prevents the creation of work orders for subcontracted MOs, aligning with the correct product structure and improving data consistency.
Original PR description
When adding/changing serial number on a subcontracting MO via portal view, Odoo will cancel and unlink the old MO(s) to recreate new ones. This include cancelling workorders, which a portal user doesn't have access to. Since subcontracted MO should not have workorders because the bom should not have operations, this PR adds a call to `_has_workorders` before searching for workorders. Forward-Port-Of: odoo/enterprise#98611
This update corrects a calculation error related to PFA (Pension Funds Account) computations within the Belgian HR payroll module. The fix ensures accurate PFA deductions are processed, improving payroll accuracy and compliance. This change impacts the way PFA contributions are handled.
Original PR description
This commit refactors and fixes the PFA computation. task-5103485 Forward-Port-Of: odoo/enterprise#97978