Friday, August 8, 2025
12 changes · master
Resolved issues and error corrections
This fix prevents an occasional error when users quickly leave an account return view while background checks are still running. It improves reliability by ensuring the page does not try to update a view that has already been closed.
Original PR description
Fix the following issue that could be triggered quite randomly. To reproduce it, the easiest way is to set a timeout between the 2 await functions in the function runCurrentReturnChecks() and…
Fix the following issue that could be triggered quite randomly.
To reproduce it, the easiest way is to set a timeout between
the 2 await functions in the function runCurrentReturnChecks()
and switching quickly from the audit kanban view to a return view
a few times.
The issue occurs because the refresh_check function might take
a few seconds to compute, and if the user leaves the view before
it finishes, the second await function was triggered on a
destroyed component.
UncaughtPromiseError
Uncaught Promise > Component is destroyed
Error: Component is destroyed
at Object.original (http://localhost:8069/web/assets/debug/web.assets_web.js:47514:31) (/web/static/src/core/utils/hooks.js:109)
at Object.fn (http://localhost:8069/web/assets/debug/web.assets_web.js:47507:21) (/web/static/src/core/utils/hooks.js:102)
at ORM.call (http://localhost:8069/web/assets/debug/web.assets_web.js:47524:52) (/web/static/src/core/utils/hooks.js:119)
at ORM.webRead (http://localhost:8069/web/assets/debug/web.assets_web.js:33931:21) (/web/static/src/core/orm_service.js:307)
at props.list.model.load (http://localhost:8069/web/assets/debug/web.assets_web.js:227868:55) (/account_reports/static/src/components/account_return/views/account_return_check_kanban_renderer.js:87)
at async props.list.model.load (http://localhost:8069/web/assets/debug/web.assets_web.js:227866:36) (/account_reports/static/src/components/account_return/views/account_return_check_kanban_renderer.js:85)
at async Object.onClose (http://localhost:8069/web/assets/debug/web.assets_web.js:102138:29) (/web/static/src/views/view_button/view_button_hook.js:95)
at async Object.doActionButton (http://localhost:8069/web/assets/debug/web.assets_web.js:106405:9) (/web/static/src/webclient/actions/action_service.js:1579)
at async execute (http://localhost:8069/web/assets/debug/web.assets_web.js:102144:21) (/web/static/src/views/view_button/view_button_hook.js:101)
at async executeButtonCallback (http://localhost:8069/web/assets/debug/web.assets_web.js:102072:15) (/web/static/src/views/view_button/view_button_hook.js:29)
task-4991558A test setup for Peru electronic invoicing now includes the required sales permission so it works reliably when demo data is not installed. This reduces false test failures and helps keep releases stable without changing day-to-day user workflows.
Original PR description
The new downpayment test failed in without demo due to missing sales group on the user. This fix adds the missing group. runbot-230456 Forward-Port-Of: odoo/enterprise#91740
Hong Kong payroll now uses the employee's standard name on payslips when surname and first name are not filled in. This prevents payslips from showing an empty or incorrect legal name, improving payroll document accuracy.
Original PR description
Explanation: In hong kong payroll, the legal name is joined by surname and first name. However both fields are not madatory therefore it will display False on Payslip. After this commit, it will display the name field when both surname and first name are not used. opw-4944968 Forward-Port-Of: odoo/enterprise#90250
The VoIP call timer now uses the user’s device timing consistently instead of comparing it with server timing. This prevents calls from appearing to start with a negative duration when device and server clocks are slightly out of sync.
Original PR description
It was reported that the timer for the call would sometimes start as a negative number. Examining the code that computes it suggests that the timestamp sent by the server was a few seconds in the future compared to luxon.DateTime.now() (client time). This discrepancy is most likely due to the clock skew between the client and the server. This commit adapts the code so that it only computes time based on client-side values, effectively preventing clock skew issues. Task-4930666 Forward-Port-Of: odoo/enterprise#91863 Forward-Port-Of: odoo/enterprise#91738
This fix prevents a Belgian payroll test from failing when the Accounting app is not installed. It makes the test setup more reliable for environments that only use Belgian payroll, without changing payroll functionality for users.
Original PR description
Reproduce: Run `TestPayrollSocialBalanceSheet` with only `l10n_be_hr_payroll` installed. Issue: The test setup uses `'account.journal'` to set a default account for cp200_salary_structure. Since `l10n_be_hr_payroll` does not depend on `account`, this raises an error when the account module is not installed. Fix: Add a check to ensure 'account.journal' exists in the environment before using it. Task: 5002551 Forward-Port-Of: odoo/enterprise#91881
The expiration panel now keeps the standard expiration message for upsell-related cases, while renewal expirations continue to use their separate handling. This avoids showing the wrong renewal-focused wording to customers when the expiration reason is an upsell.
Original PR description
Upsell expiration are not handled the same way as renewal expiration, so we can keep the default expiration message for any expiration reasons other than a renewal Forward-Port-Of: odoo/enterprise#91839 Forward-Port-Of: odoo/enterprise#91730
Invoice extraction tests now use a real PDF attachment instead of invalid file data. This prevents misleading error messages during automated test runs and helps keep build results clearer for teams monitoring system quality.
Original PR description
The tests that were using a PDF as attachment were causing this error to be logged on each of them: `Error when reading the pdf file (...)`. This happened because the attachment raw bytes weren't representing a valid PDF file. Related to runbot build error [230282](https://runbot.odoo.com/odoo/runbot.build.error/230282).
This update fixes an internal automated test for the Sign app that was failing after a recent change. It helps keep the development validation pipeline stable, reducing noise and delays for future updates.
Original PR description
Before this, after merge this PR : https://github.com/odoo/enterprise/pull/88774 the test `test_send_request_with_default_partner_id` failed because product_id was hardcoded. In this PR, fixes the test so it works correctly.
Demo employee contracts for Egypt, Saudi Arabia, and Turkey now use the appropriate local payroll structures. This prevents them from being incorrectly linked to Belgian payroll settings when Belgian payroll is also installed, improving reliability of demo and testing data.
Original PR description
*: eg, sa, tr - Assign the correct payroll structure to employee contracts in demo data to prevents incorrect assignment of the Belgian payroll structure when l10n_be is installed. Task: 4862722 Forward-Port-Of: odoo/enterprise#91958 Forward-Port-Of: odoo/enterprise#87409
This fixes an issue in Mexican electronic invoicing where invoices containing only a section or note line could not be saved because tax information was incorrectly required. Users can now save these invoice descriptions without encountering invalid field errors.
Original PR description
Issue: When we try to save an invoice with only a line section or line note, an error is thrown indicating invalid fields: invoice lines. This happens because the `l10n_mx_edi_tax_object` is required on account move lines. Purpose of this PR: Allow for line sections and line notes to be saved without tax objects. Steps to reproduce on Runbot: install l10n_mx switch to MX company and create an invoice with just a line section or line note save Invalid Fields error is raised opw-4987040 Forward-Port-Of: odoo/enterprise#91758
The Task Analysis report now keeps the field service filter when users drill down from the pivot view. This prevents unrelated tasks from appearing, making reporting counts and follow-up lists more accurate for field service teams.
Original PR description
Issue: - When the user drills down in the pivot view, all tasks are displayed. Cause: - The action was not passing the FSM project domain. Fix: - In this commit, we have passed the FSM project domain, so that only the relevant FSM tasks will be displayed during drill down. Steps to reproduce: - Install the industry_fsm module. - Go to Industry > Reporting > Task Analysis. - Group by Assignees. - Check any count column number and drill down. task-4688139 Forward-Port-Of: odoo/enterprise#83295
This fix improves the shop floor experience by ensuring the next production step is highlighted after completing an instruction step. It also shows all operators working on the same work order, so teams can clearly see who is active.
Original PR description
Two small fixes for shop floor UX. Please check the commits for details. task-5005167