Friday, July 18, 2025
13 changes · saas-18.1
Enhancements to existing features
The Demo payment provider now gets the same default outstanding account setup as online payment providers. This keeps test payment flows aligned with real provider behavior and reduces manual configuration during demonstrations or testing.
Original PR description
Purpose: Set default outstanding account for `Demo` payment provider as well,
as it is a test version of an Online Payment Provider.
Followup on commit: https://github.com/odoo/odoo/pull/213554/commits/24f06192f4c6f747d2096603b6895481483138ab
task-4907646
Forward-Port-Of: odoo/odoo#216806Resolved issues and error corrections
The checkout extra step no longer adds hidden Turnstile CAPTCHA data into the sales order notes. This keeps order records cleaner and avoids exposing long technical tokens to staff reviewing customer orders.
Original PR description
Scenario:
- enable extra step in website ecommerce
- enable turnstile
- do the checkout process until after "extra step" step
- go check the sale order
Result: there is a big "turnstile_captcha: {1000 character hash}" that is
logged each time the customer filled the "extra step" step.
Cause:
turnstile if enabled is activated for all website_form and will add a
turnstile_captcha parameter.
For other website.form, the captcha is removed from the params when
calling:
request.env['ir.http']._verify_request_recaptcha_token('website_form')
but the custom route /website/form/shop.sale.order doesn't do that so
the captcha is logged in note.
Fix:
Recaptcha is already disabled on the extra_step with the class:
s_website_form_no_recaptcha, so it makes sense to just have the
same behavior for turnstile.
opw-4934132
Forward-Port-Of: odoo/odoo#219269This fixes an error that could stop scheduled automation rules when an Update Record action was saved without a target update path. Instead of crashing, Odoo now safely skips that incomplete action, improving reliability for CRM and other automated workflows.
Original PR description
When executing an automation rule with an "Update Record" action, if no update path is configured, an error occurs. **Steps to reproduce:** 1. Install the **CRM** and **Automation Rules** modules. 2.…
When executing an automation rule with an "Update Record" action, if no update path is configured, an error occurs.
**Steps to reproduce:**
1. Install the **CRM** and **Automation Rules** modules.
2. Create a new **automation rule**:
- Model = Lead, Trigger = After Creation
3. Add an **action**. Type = Update Record (do not configure the update path)
(Tip: select another action type and switch back to reset the path.)
5. Create a new lead.
6. Run the scheduled action: Automation Rules: check and execute.
**Error:**
```
AttributeError: 'bool' object has no attribute 'split'
....
ValueError: AttributeError("'bool' object has no attribute 'split'") while
evaluating 'model._cron_process_time_based_actions()'
```
**Cause:**
In `_traverse_path`, the `update_path` is expected to be a string for `.split()`, but if not configured, it is `False`, leading to the traceback. - [1]
[1] - https://github.com/odoo/odoo/blob/5842c9f4821772fe44cfe7244162edec1ffff88e/odoo/addons/base/models/ir_actions.py#L701
**Fix:**
This commit ensures that no action is performed if the update path is not defined, avoiding the traceback.
sentry-6722927119
Forward-Port-Of: odoo/odoo#217723This fix restores missing company setup screens for Greek electronic invoicing that were accidentally left out during a previous update. It helps prevent configuration issues and preserves expected behavior for companies using Greece localization.
Original PR description
On the previous GR EDI improvements PR, the import for the company XML views was forgotten to be put back after a refactor. This causes issues, as removing views is problematic on stable version. task-4781479 Forward-Port-Of: odoo/odoo#219396
Users can now return to the expense list after opening a record from dashboard filters such as “To Submit.” This fixes a navigation issue that previously left users without a clear way back, making expense review smoother.
Original PR description
**Steps to reproduce:**
- Install the `hr_expense` module.
- Go to the Expense menu and click on "To Submit" in the My Expense dashboard.
- Open any record from the list view.
**Observation:**
- You can't go back to the list view after opening a record.
**Cause:**
- A tag `menu` was added to the action to hide breadcrumbs, but it removed all breadcrumb navigation, unable to go back.
https://github.com/odoo/odoo/blob/92993d7790bb641e5822a5358db35c7fcc7bd091/addons/hr_expense/static/src/components/expense_dashboard.js#L44
**Solution:**
- Used a better way by passing `{ clearBreadcrumbs: true }` to stop the breadcrumb from changing when a filter is applied.
opw-4790643
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#217492This fix restores the intended ability to enable or disable the user quick login feature. It helps administrators control whether this convenience option is available, reducing confusion when the setting was meant to be disabled.
Original PR description
This commit adds a missing parameter, allowing to disable this feature. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219030
This update makes an internal mail suggestion component available for custom extensions. It helps teams apply custom mail-related patches more reliably without changing standard behavior for end users.
Original PR description
Useful for custom patches. Forward-Port-Of: odoo/odoo#219470
Several country-specific accounting templates now classify bank suspense accounts as current assets instead of current liabilities. This keeps balance sheet figures more accurate while bank statement lines are awaiting reconciliation and prevents users from being unable to reselect the default suspense account on bank journals.
Original PR description
Since V14, suspense accounts are classified as current assets. They were previously classified as current liabilities while the liquidity accounts were current assets. It would artificially inflates the current assets and current liabilities as long as the bank statements lines weren't reconciled. We noticed that the belgian default suspense account is still classified as current liability. On the bank Journal, there is a domain so only current assets type can be set as default suspense account. There is no issue at the package installation but if the suspense account is removed from the journal, it can't be added back afterwards. task-4829826 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#212935
The website test suite now allows more time for a long end-to-end page properties test to finish. This reduces false failures in automated validation caused by slower iframe loading, helping keep release checks stable without changing customer-facing behavior.
Original PR description
## Version 18.0+ ## Issue Task 4141409 introduced long tests to simulate complete flow. As this test relies on many iframe checks and these iframes being slow to load, the test time limit is reached. The test fails on Single App and Community but not with Enterprise might be related to performances linked to modules interactions. runbot-223225 Forward-Port-Of: odoo/odoo#214870
This fix prevents Italian electronic invoice imports from failing when an invoice line has a zero price and a zero discount or surcharge. It helps businesses process valid supplier invoices without manual workarounds or import interruptions.
Original PR description
Error "division by zero" raised when importing a XML invoice with `price_unit == 0` and `ScontoMaggiorazione == 0` introduced by #206238 Forward-Port-Of: odoo/odoo#217670
This update removes an incorrect default setting from a linked Swiss payroll transmission configuration field. It helps ensure the setting reflects the actual company configuration instead of being prefilled with a potentially misleading value.
Original PR description
…lated field Forward-Port-Of: odoo/enterprise#90425
Spreadsheet users can now autofill pivot columns created by autofill without hitting a crash. This improves reliability when working with pivot spreadsheet data, especially for date-based measures that extend beyond the current range.
Original PR description
Fix crash when autofilling columns which where created by autofill. Task: 4719884 Forward-Port-Of: odoo/enterprise#86846 Forward-Port-Of: odoo/enterprise#83314
This update removes an overly complex final step from an automated Sign portal test that depended on another app. It helps keep testing more reliable without changing the customer-facing signing experience.
Original PR description
We remove the last step, which depends on the mail module and is too complex. The reason for this step was to avoid a failed to fetch received after termination. This problem must be solved in another way. runbot-error-id~163605