Friday, August 29, 2025
16 changes · saas-18.4
Enhancements to existing features
The accounting journal items list now includes a deductibility amount column. This makes it easier for finance users to review entries and spot potential issues directly from the list view.
Original PR description
[IMP] account: Add deductibility column This commit adds the field deductible_amount as a column in the list view of the journal items. This is done to help check easier all entries and detect issues. task-4939241 Forward-Port-Of: odoo/odoo#221856
Resolved issues and error corrections
This fixes a visual issue where elements meant to have rounded corners only on one side could also change corners that should have stayed unchanged. It helps notifications, card layouts, and similar website elements display with the intended shape again.
Original PR description
Commit [1] (which was patched by multiple other commits since then already) needs yet another patch: the `rounded-start`, `rounded-end`, `rounded-top`, `rounded-bottom` and all their size variants…
Commit [1] (which was patched by multiple other commits since then already) needs yet another patch: the `rounded-start`, `rounded-end`, `rounded-top`, `rounded-bottom` and all their size variants were not working anymore: the direction they were not supposed to control were forced to the default border-radius value. E.g. the class rounded-end-4 was forcing `border-radius: default big big default` instead of just forcing "big" on the top-right and bottom-right.
This could be fixed while keeping the improvement added by [1] (which is allowing the value to use CSS variable, allowing to auto-adapt children with the right border-radius when needed) but it is fact better/simpler to just revert the improvement just for those classes (while keeping it for the base `rounded` and `rounded-{SIZE}` classes). Indeed, this is not necessary at the moment. They can be used in layouts but we do not allow edition of their radius via the builder: when we do, we normally should always prefer to give the user full control over the 4 directions, by switching to the `rounded` or a `rounded-{SIZE}` class.
This bug could be visible in different standard ways:
- Notifications
- Cards Grid snippet
- ...
Note: this also actually revealed that [1] re-introduced the 4 and 5 sizes which were actually disabled by the /web/.../utilities_custom.scss file. This commit re-disable them for those partial classes... but they probably should be restored to respect Bootstrap's default. The 1-2-3 sizes are also not using CSS variable of Bootstrap. This commit adds a FIXME comment about this.
[1]: https://github.com/odoo/odoo/commit/d0daf3990079477ef7552d769b944b55d9be4366
Related to task-3358501Miscellaneous changes
Usecase: - Create a new company without warehouse - Create a purchase.order with a dropship type You got a redirect warning asking for a warehouse. But in this case it's not needed and force the user to create a warehouse. (which is not the purpose of commit 6516ab61927a63e3f2d804cf1b5baa43a151ca19) Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidel
Original PR description
Usecase: - Create a new company without warehouse - Create a purchase.order with a dropship type You got a redirect warning asking for a warehouse. But in this case it's not needed and force the user to create a warehouse. (which is not the purpose of commit 6516ab61927a63e3f2d804cf1b5baa43a151ca19) Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#194897
This fixes an internal mistake in how user group names are searched. It helps ensure group lookup results are accurate and avoids confusion when administrators search for access groups.
Original PR description
Followup of #223210 .
The website link editing test has been updated to work with the new website builder layout and turned back on. This helps ensure link editing continues to work reliably, with links now defaulting to HTTPS when no protocol is entered.
Original PR description
The link_tools tour was previously broken due to DOM structure changes introduced by the new website builder and was consequently disabled. This commit updates the tour steps to align with the new DOM and re-enables the associated test. Note: Previously, HTTP was the default protocol. Now, HTTPS is used as the default if none is specified.
This fix makes an automated sales timesheet test wait until the needed kanban column is ready before continuing. It reduces random test failures, helping keep releases and updates more dependable without changing user-facing behavior.
Original PR description
In this commit, we fix the undeterministic behavior by adding a step to ensure kanban column is created before continue scenario. runbot-error-id~181916 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224447
This fix prevents the Point of Sale from accidentally deleting two order lines when reducing an unsaved line with the barcode box flow. Cashiers can correct quantities more reliably without losing an extra item from the current order.
Original PR description
- Fix issue in `handleDecreaseUnsavedLine` which was leading to removing two orderlines instead of one in the current order. This issue appeared since this commit (8e964000474125ca2db4ee4e5883be8424d9fca1). Since we already set the line qty to 0 (or remove it) inside `updateSelectedOrderline` after calling `_showDecreaseQuantityPopup`, we don't need to call `removeOrderLine` inside `handleDecreaseUnsavedLine`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224230
This fix ensures the Turkish Nilvera e-dispatch integration sends the exact true or false values required by Nilvera instead of translated text. This prevents potential dispatch submission issues caused by localized wording in exported data.
Original PR description
Before this commit, since we hardcoded the value, the value was present in the pot and po file. Except that nilvera want a precise value which is 'false' or 'true' and not something translated. task-5009049 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#222669
Fixed an issue that could block importing user groups whose names contain a slash when no privilege identifier is set. This prevents false “multiple matches” errors and makes group data imports more reliable.
Original PR description
If a group does not have privilege id and contains a /, the group search can return a list of group instead of the group itself. The import display an error message "Found multiple matches for..." opw-4885648
This fix prevents errors when SEO tools receive missing page descriptions or when Google suggestion requests fail. Website editors get a more reliable SEO preview experience instead of unexpected crashes or broken responses.
Original PR description
Ensure the Google suggest fallback always returns a JSON list, even on IOError, instead of raising a serialization traceback. JS (SEOPreview): guard against undefined/empty descriptions with optional chaining and default empty string to avoid runtime errors. opw-4963552 Forward-Port-Of: odoo/odoo#224637 Forward-Port-Of: odoo/odoo#224424
Changing a customer's VAT number on Indian invoices no longer causes the fiscal position to be recalculated unexpectedly. This keeps invoice tax settings stable and aligned with standard behavior, reducing the risk of unintended tax changes after partner details are updated.
Original PR description
The field fiscal_position_id in l10n_in was dependent on l10n_in_gst_treatment, which itself depended on partner.vat, partner.country_id, and partner.l10n_in_gst_treatment. As a result, any change to the partner’s VAT triggered a recomputation of fiscal_position_id. This contradicts the generic behavior, since VAT changes should not affect fiscal position. This fix removes the unnecessary dependency chain. reference - https://github.com/odoo/odoo/pull/224511 Forward-Port-Of: odoo/odoo#224639
Payroll advice reports in Indian payroll now use the selected payslips to determine the period instead of relying on the current date. This ensures reports for past payroll runs show the correct period and avoids missing or inaccurate payroll advice details.
Original PR description
Generating a payroll advice would use the current date in order to find other payslips that are for the current period and use this to fill in the period on the advice. However, if you do this for a past payslip, it will either not find any or get the incorrect period. Changed the behavior to use the actual payslips and get the period from those payslips to fill in the period on the report. opw-4582990 Forward-Port-Of: odoo/enterprise#92806 Forward-Port-Of: odoo/enterprise#81625
The VoIP CRM app now includes needed permission information when the user session starts. This avoids extra background requests during startup, helping the web client load more efficiently without changing user workflows.
Original PR description
Since the VoIP app use some groups at startup[1], it's made sense to adds it inside the session_info bundle to avoid RPCs at webclient startup. [1]: https://github.com/odoo/enterprise/commit/9d3a13e9adae3a6b1c44b70a52b2fd74ef9dcc1a#diff-e8144e1aa7d3b4933985de5693d78e8c392bce8f7150ad186a04b8c87c7cd32aR14-R16 Forward-Port-Of: odoo/enterprise#93419
This update preserves the intended visibility rules for the 'Return for Exchange' button in rental stock returns. It helps ensure users only see the action when it is appropriate, reducing confusion and avoiding incorrect return workflows.
Original PR description
Adapt the xpath to make sure the invisible condition on the 'Return for Exchange' button is not overriden. tasks 4748294 & 4778066 Forward-Port-Of: odoo/enterprise#93433 Forward-Port-Of: odoo/enterprise#89090
The Timesheet Leaderboard now opens reliably even when the current employee is excluded from the billing-rate ranking due to a very low billing rate. This prevents an error screen and keeps managers and employees able to view leaderboard information without interruption.
Original PR description
**Issue:** A traceback occurs when clicking the Timesheet Leaderboard widget. **Cause:** The template `timesheet_leaderboard_dialog.xml` assumes that `state.current_employee` is always defined. However, when the current user's employee has a billing rate ≤ 0.5%, they are filtered out from the leaderboard. As a result, `setCurrentEmployeeIndexFromLeaderboard` returns `undefined`, causing the widget to crash. https://github.com/odoo/enterprise/blob/70ed91ba1ebb94cb1919df49a4d95fad26935d03/sale_timesheet_enterprise/static/src/services/timesheet_leaderboard_service.js#L18-L31 **Steps to reproduce:** 1. Set up a company with 4+ employees having billing targets. 2. Ensure the current user's employee has a billing rate ≤ 0.5% (e.g., 0.3 hours logged / 100 hours target). 3. Switch the leaderboard to "Billing Rate" mode. 4. Click the Timesheet Leaderboard widget. opw-4875410 Forward-Port-Of: odoo/enterprise#93339
The Estonian XML tax report now combines both 22% tax report line balances into a single transaction entry during export. This prevents duplicate transaction22 lines and helps ensure submitted tax reports match the expected format.
Original PR description
Before this pr: - There are two transactions22 entries were introduced because we are having two report lines for 22% tax computation, one with '1' tag, which is valid till 31 June 2025, and another one with '1_2' tag, which is valid from 1 July 2025. After this pr: - The balance computation during export to XML is now adding the balance of both line '1' and '1_2' into line '1' only. - So now we do not need an extra transactions22 entry in the XML tax report. - We are keeping both report lines for now, but the XML report will have only one entry with the total sum of balances in both report lines Related PR: https://github.com/odoo/enterprise/pull/91364 Forward-Port-Of: odoo/enterprise#93197 Forward-Port-Of: odoo/enterprise#92662