Daily updates from Odoo
Friday, October 10, 2025
16 changes · master
Enhancements to existing features
This update adjusts a website helpdesk template so it continues to work correctly after related link text became translatable. It helps keep the Helpdesk, eLearning, and Forum website integration stable across languages without changing business workflows.
Original PR description
`href` cannot be used anymore as an xpath expression because it is now translatable. See PR https://github.com/odoo/odoo/pull/147698 task-3626918
The bank configuration screen now uses a better background color when dark mode is enabled. This makes the setup card easier to view and provides a more polished experience for users working in dark mode.
Original PR description
This commit will change the background color of the dark mode of the configure bank cart. no task id Forward-Port-Of: odoo/enterprise#96513
The VoIP setup suggestions now include Telnyx as an available provider option. This gives businesses another recommended provider to consider when configuring internet-based calling in Odoo.
Original PR description
Task-5144121
When users open planning from a payslip, it now starts on the month covered by that payslip. This makes it faster and easier for payroll teams to review the relevant schedule without manually navigating to the correct period.
Original PR description
By clicking on the planning smartbutton on a payslip, it will open by default the planning starting on the month of the date_from of the payslip. It was not the case before this commit. task-5116510
This update standardizes the internal naming of yes/no settings across several Point of Sale modules. It improves consistency and maintainability without changing expected business workflows or user-facing behavior.
Original PR description
pos_*: pos_enterprise, pos_iot, pos_blackbox_be, l10n_se_pos, l10n_in_reports_gstr_pos, pos_iot, pos_restaurant_preparation_display In this commit: ---------- - Standardized the naming of boolean fields in the pos.config model for better consistency and readability across the codebase. Related: - Community: https://github.com/odoo/odoo/pull/224423 - Upgrade: https://github.com/odoo/upgrade/pull/8300 task-5008370
This update removes a redundant internal setting used to identify chat window context. It helps keep the messaging code simpler and easier to maintain, with no expected change for users.
Original PR description
This is redundant with this.env.inChatWindow https://github.com/odoo/odoo/pull/231053
Resolved issues and error corrections
Manual bank account creation now assigns the new journal to the same company as the online account link. This prevents errors when users work across multiple companies and the system context points to a different company.
Original PR description
Before this commit, when a user does a manual bank account creation, we didn't pass the company id for the journal creation. It implies that we use the environment value which is problematic because it could be different from the one account online link one leading to an error. The aim of this commit is ensuring that we pass, as company_id the same value as the one we have on account online link. no task id Forward-Port-Of: odoo/enterprise#96715
Payroll calculations now retrieve payslip line values through Odoo's standard data handling instead of forcing a broad system refresh. This reduces unnecessary cache invalidation, helping payroll computations run more reliably and efficiently without changing user workflows.
Original PR description
Before this commit, when a compute needed to fetch the payslip lines values, we need to flush all to be able to correctly get the values thanks to a sql query. The problem is the `flush_all` will invalidate all recordset in cache and will do more than expected. This commit converts the sql query made to fetch the payslip lines values into a read_group to be able to remove the flush_all and let the orm invalidates the recordset/fields needed to correctly get what we want. Forward-Port-Of: odoo/enterprise#96741
This fixes a timing issue that could cause a stock barcode test to fail unpredictably during automated checks. By waiting for the right screen state before validating, the change improves reliability of testing without changing business workflows.
Original PR description
Sometime, the test `test_scrap_change_source_location` could fail randomly. The issue happens in last few steps of the tour. What we do is: - We edit a move line lot in the form view; - We save it; -…
Sometime, the test `test_scrap_change_source_location` could fail randomly. The issue happens in last few steps of the tour. What we do is: - We edit a move line lot in the form view; - We save it; - We validate the operation. The validation is done by a barcode scan (`OBTVALI`) but since [1](https://github.com/odoo-dev/enterprise/commit/b3a855a870d1861515abaff8683081a39f95558f), barcodes scanned when the user is somewhere else than in the barcode lines view are skipped. With a little bit of bad luck, the tour scans `OBTVALI` while the save from the form view is not finished yet and thus, the scanned barcode is ignored. To reproduce that, run the test `test_scrap_change_source_location` locally in debug mode and add a throttling (eg.: Fast 4G) before to run the tour. To solve the issue, finetune the `validateBarcodeOperation` default trigger, so the error won't happen in this tour and other similar contexts. Runbot build error: [232331](https://runbot.odoo.com/odoo/runbot.build.error/232331) Forward-Port-Of: odoo/enterprise#96542
The rental schedule once again shows product groupings correctly after they were lost when the schedule was made editable. This helps users review rental lines by product more easily and restores expected behavior without changing the broader workflow.
Original PR description
This commit restores the `group_expand` functionality for the product field in the rental schedule, which was inadvertently removed in [^1] when the schedule was made editable. [^1]: https://github.com/odoo/enterprise/pull/88689 Forward-Port-Of: odoo/enterprise#96558
Opening a reconciled statement line now shows only that line expanded, and clearing the filter restores the normal reconciliation view instead of expanding every line or hiding the summary. The statement creation button is also hidden when it is not useful, reducing confusion for accounting users.
Original PR description
When you open a statement line from a reconciled move, it opens the bank reconciliation widget with only the selected statement line, which is unfolded by default. However, there are a few issues with this behavior, which are fixed in this commit: 1 - When entering the bank reconciliation widget, the initial line is unfolded. If you remove the filter, all the other lines become unfolded as well. This should not be the case; only the original line should remain unfolded. 2 - By default, the statement summary line is hidden. When the filter is removed, the summary remains hidden. We now ensure the summary is displayed again when the filter is cleared. 3 - The Statement button on the statement line (which is meant to create a new statement) doesn't make any sense when there is only one line. It is now hidden in this case. task-5108118 Forward-Port-Of: odoo/enterprise#96670 Forward-Port-Of: odoo/enterprise#95558
The AI assistant now considers planned activities from the chatter alongside existing messages when preparing its response context. This helps produce more relevant answers by including upcoming tasks and follow-ups that were previously left out.
Original PR description
Append any planned activities to the chatter messages to be sent as a part of the prompt's context with the rest of the messages. task-id-5079055 Forward-Port-Of: odoo/enterprise#96668 Forward-Port-Of: odoo/enterprise#95764
Changing a quotation template on a sales order now removes the previously linked quote calculator spreadsheet. This prevents sales teams from accidentally using calculations from an old template and keeps the order aligned with the selected template.
Original PR description
Step to reproduce: - Create a new SO - Add a customer and quotation template to the order - Click on quote calculator smart button - Return to sale order (click on SO number in top left) - Change the quotation template - Result: it does not change the quote calculator that is linked to the new quotation template Cause: - Clicking on Quote Calculator creates a copy of the quotation template spreadsheet and links it to the SO. https://github.com/odoo/enterprise/blob/8bc6098335d283e6d210dc788463a8ef8c559b14/spreadsheet_sale_management/models/sale_order.py#L30-L35 - When the quotation template is later changed, the spreadsheet linked to the old template remains attached to the SO. Fix: - On changing the sale_order_template, the old spreadsheet should be unlinked from the SO. - Keeping it linked is inconsistent, as it does not matches the current template opw-4998587 Forward-Port-Of: odoo/enterprise#95861 Forward-Port-Of: odoo/enterprise#93970
This fix prevents an error from appearing when users click the “Offers (new)” button for a Mexican employee without salary cost details filled in. It improves reliability during employee setup by safely handling missing wage or yearly cost information.
Original PR description
steps to reproduce:
--------------------
1. Install l10n_mx_hr_payroll and hr_contract_salary (load with demo data)
2. Switch to the Mexican company and create a new employee
3. Click on Offers(new)
issue:
-------
A traceback occurs:
`TypeError('cannot unpack non-iterable NoneType object')`
cause:
-------
https://github.com/odoo/enterprise/blob/71cc92c9526234dcd44ec756375647a67729029f/l10n_mx_hr_payroll/data/salary_rules/hr_salary_rule_regular_pay_data.xml#L531
Unpacking fails because **find_rates(gross, isr_table)** returns `None`
when the [gross amount](https://github.com/odoo/enterprise/blob/8b96c67d0555702e88127a77edb6e3b8ef5e58cc/hr_payroll/models/hr_payslip.py#L1157-L1167) is empty. This occurs if wage or yearly costs
are not defined.
solution:
----------
Check that the gross amount is exists before calling `find_rates`
and unpacking its result.
opw-5128275
Forward-Port-Of: odoo/enterprise#96525The referral app now uses the term "job opportunity" instead of "job offer" in related templates, emails, SMS messages, and wizard screens. This keeps recruitment referral wording consistent and clearer for users sharing open roles.
Code cleanup and technical improvements
The accounting dashboard now uses one shared approach for bank synchronization actions such as connecting, reconnecting, refreshing, and extending access. This reduces inconsistencies and makes the bank connection experience easier to maintain and more reliable for users.
Original PR description
Refactor to centralize the different bank synchronization actions on the accounting dashboard (connect, reconnect, refresh, extend) into a single template. This removes redundancy and fixes inconsistencies that appeared because each action was handled separately. Task-5068208