Daily updates from Odoo
Friday, September 5, 2025
18 changes
Resolved issues and error corrections
This update fixes an internal automated test so it consistently creates sample calls in the intended order. It helps prevent false test failures and supports more reliable maintenance of the VoIP AI feature.
Original PR description
[FIX] voip_ai: ensure call creation order in test Before this commit in `test_cron_transcribe_recent_voip_call_two_calls_at_same_time` test, we were attempting to have two calls one created after another. However since the creating of the second (earlier) call was based on the absolute date, when the setUp took longer then anticipated the order was the opposite of the desired. With this commit we ensure that the 2nd call will have create_date before 1st by pushing it back from the 1st call create date (not with creation of the 1st call)
Article previews now correctly display embedded account reports instead of crashing. This helps users safely preview and generate knowledge articles that include financial report content, while also improving template consistency.
Original PR description
When previewing an article that contains an account report, the preview currently crashes. This happens because the preview generator encounters an unknown `accountReport` block. To render properly, this block must be transformed - specifically, the reference in `data-embedded-props` must be resolved and the Python dictionary must be converted into a JSON object. This PR updates the system to correctly handle `accountReport` blocks during both preview and article generation. It will also refactor the code to reduce code redundancy and support the `articleIndex` block across all templates. Task-4989809
The salary configurator now shows personal information fields in the salary calculator based on whether they affect net salary, rather than where they are positioned on screen. This makes relevant payroll-impacting details visible to users and reduces unnecessary information being sent to the interface.
Original PR description
Purpose: Show the fields in the salary calculator depending on impact_net_salary and not position attribute
previous behavior:
- fields only appear in the salary calculator if the are configured to have position as side panel
(which make them invisible for the user as they appear under the monthly salary in the salary configurator)
- all fields were passed to both the salary configurator and calculator and unnecessary fields were set to be hidden in the frontend
new behavior:
- removed position setting from hr_contract_salary_personal_info
- fields now appear in the salary calculator depending on impact_net_salary attribute
- passes only the fields that are needed to the frontend
(filtering fields now happens in the backend not the frontend)
task id: task-5025318This update fixes calendar setup data so working hours are calculated correctly instead of being set manually with wrong values. It improves reliability for Belgian payroll validation, attendance Gantt behavior, and fixed-schedule planning scenarios.
Original PR description
- remove the `hours_per_week` field from creation to allow model to compute as its no not readonly So it is set with wrong values in some calendars
Refreshing the Employees page from the Payroll menu now keeps users within the Payroll area instead of switching them to the general Employees app. This avoids confusion and keeps the payroll-specific navigation available after a page refresh.
Original PR description
When you go in Payroll / Employees / Employees, then refresh, you're back on the employees app (with the menu from employees app not the ones from payroll) This is because the URL after the action is just "/odoo/employees". fixed by redirecting to "/odoo/payroll/employees" Task-5045428
Mexican payroll can now generate payslips for employees who only receive variable income, such as commissions or bonuses, without a fixed base salary. This prevents an error in the employer social security contribution calculation and helps payroll teams process these cases reliably.
Original PR description
BUG An error is raised when trying to generate a payslip for an employee with only variable income (e.g., commissions/bonuses, no fixed base salary) FIX The rule's find_index function needs to return 0 instead of None in case the daily_wage does not fall within any of the measure ranges Task: 4723413
This update fixes an automated test for Belgium payroll accounting so it runs reliably again. It helps keep payroll-related checks stable and reduces false errors in the development pipeline.
Original PR description
runbot.error: 224180
This fix ensures a quality control test works reliably when the module is installed on its own without demo data. It helps prevent false test failures related to serial number label printing, improving confidence in quality control updates without changing user-facing behavior.
Original PR description
## Issue:
The test `test_receipt_validation_triggers_serial_number_label_print` fails when running `quality_control` alone without demo data
## Cause:
The user is missing the group `stock.group_production_lot`, that enable serial number printing
As a result, the condition `self.env.user.has_group('stock.group_production_lot')` in `stock.picking` `_get_autoprint_report_actions()` is not satisfied
The `button_validate()` in `stock.picking` will have an empty report_actions and will not print anything
The Demo data that allow the test to work is in `stock`
https://github.com/odoo/odoo/blob/9b08449f25cd16dc15117d305726380298c313d8/addons/stock/data/stock_demo.xml#L176-L182
## Steps to reproduce:
- Install only `quality_control` (no demo data)
- Run the test `test_receipt_validation_triggers_serial_number_label_print`
related-to: https://github.com/odoo/enterprise/pull/90134
opw-4790427
Forward-Port-Of: odoo/enterprise#93857
Forward-Port-Of: odoo/enterprise#93296This fix updates the financial reporting interface so item deletion continues to work after a related platform behavior changed. It helps prevent errors or inconsistent behavior when users remove linked entries in account reports.
Original PR description
This PR is related to odoo/odoo#225391 which makes onDelete async. opw~5019621
The payroll sample dashboard has been aligned with the main dashboard so users see a more consistent example. The main payroll dashboard display is also now centered correctly, improving presentation in the interface.
Original PR description
Changes: - Adjustments to sample dashboard to reflect the changes made in main one - Fixed display of main dashboard previously not centered in the interface Task ID: 5005256
This fix prevents incorrect or negative ISR tax calculations when a Mexican payroll payslip covers dates across two months. The automatic month-end adjustment was removed, and payroll teams can now enter a manual ISR adjustment when needed for accurate payroll results.
Original PR description
Bug: When a payslip is overlapping two months, the ISR can be negative and is not correctly computed. Cause: There is an adjustment made at the end of each month and each year. This works only if the payslip ends on the last day of the month. Fix: We remove the adjustment and add an input for adjusting the ISR manually. Task: 4790249
Helpdesk and mail-related tests were updated to match recent platform changes in the community edition. This keeps automated checks aligned with the current behavior and helps avoid false failures in future releases.
This fix updates field service sales and stock logic after removing a duplicate internal field. It helps product quantities and related sales lines continue to work correctly without relying on outdated data references.
Original PR description
In this PR (https://github.com/odoo/odoo/pull/223686), we removed the `section_line_id` field as it was a duplicate of `parent_id`. This commit adapt the domains to fit with the field changes: - `parent_id` is not stored, so we can't search for that field in domain anymore. We replace `filtered_domain` by `filtered`. - Adapt the `_updateQuantity` method to use an orm searchRead instead of a domain. Co-authored-by: nipl-odoo <nipl@odoo.com> Linked: https://github.com/odoo/odoo/pull/223686 task-5009037,4966574
This fix prevents errors when printing receipts for cash in or cash out operations in Chilean point of sale setups. Businesses using a connected printer can complete these cash movements without disruption.
Original PR description
Before this commit, when a printer was connected, performing a cash in/out operation would raise an error when trying to print the receipt. opw-5060974 Forward-Port-Of: odoo/enterprise#93834
The salary calculator now displays its footer buttons properly on mobile screens. This makes it easier for users to configure benefits and copy salary offer links without layout issues or hidden buttons.
Original PR description
Previous behavior: - when in mobile view, footer buttons are not aligned and Copy Link button folded and not fully visible New behavior: - make Configure Benefits and Copy link appear side-by-side on mobile and each take 50% width - move container width to an explicit wrapper for the Copy link widget and keep the widget's `btn_class='btn w-100'` so the inner button fills its container (fixes folding) Task ID: 5042824
This update makes an automated Web Studio rename test more reliable by ensuring input changes are handled consistently. It helps reduce random test failures, supporting smoother validation and release processes without changing customer-facing features.
Original PR description
The def test_rename function (tour web_studio_main_and_rename) crashed undeterministically because the tour engine is now faster, inputs soimetime do not have the time to update. This commit fixes one instance of this. runbot-error-163471 Forward-Port-Of: odoo/enterprise#93826
Fixed an issue where using the shortcut from settings to open the Projects Folder could take users to Documents without selecting the Projects folder. This ensures users land in the intended folder, reducing confusion when managing project documents.
Original PR description
Reproduce: 1. Install documents_project 2. In config settings, use the arrow next to the Projects Folder 3. You end up in Documents, but not in the Projects folder. This is because folder-matching keys in the search panel must be `Number`s but we forgot to convert `user_folder_id` properly for this. Follow-up of 6bdcc357. Task-5055163
The Chilean POS receipt now handles missing resolution date information safely, avoiding a crash when validating sales orders. This helps businesses using Chilean localization complete POS transactions even when optional electronic invoicing settings are not configured.
Original PR description
Currently, when having a CL Company an dusing the POS, it is possible to have the POS crash when validating orders. Steps to reproduce: ------------------- * Install l10n_cl_edi_pos * Create a new…
Currently, when having a CL Company an dusing the POS, it is possible to have the POS crash when validating orders. Steps to reproduce: ------------------- * Install l10n_cl_edi_pos * Create a new company * Put Chile as country * Switch to that company * Create a shop and open it * Make a sale, validate order > Observation: POS Crashes Why the fix: ------------ The crash is happening upon trying to render the receipt because `l10n_cl_dte_resolution_date` is undefined. `l10n_cl_dte_resolution_date`is a field that can be found on the company settings only if the field `l10n_cl_dte_service_provider` is set and is required when the later has either `SII` or `SIITEST` as value. For companies in Chile, there is therefore two setups that leads to having `l10n_cl_dte_resolution_date` undefined. Either the service provider is set to demo, which case clients don't need to fill in the resolution date, either the provider is left empty (since not required upon company creation). Since the field can be undefined, we don't render it when it is. opw-5034091 Forward-Port-Of: odoo/enterprise#93185