Wednesday, October 29, 2025
10 changes · master
Resolved issues and error corrections
Updating a customer statement email template now works even if all recipients have been removed. This prevents an error from interrupting users while preparing statement emails, making the send workflow more reliable.
Original PR description
Currently, an error occurs if the recipients of the statement report are removed and the user tries to update the email template. **Steps to Reproduce:** 1. Install Accounting. 2. Customers (list view) > select any record > Actions > Customer Statement > Send. 3. Remove recipients and try to update the email template. **Error:** `KeyError - False` **Cause:** The system tries to fetch mail field values from an empty recipient list, leading to a KeyError. **Fix:** This commit recomputes the recipient partners before updating the email subject and body from the template. sentry-6918345730 Forward-Port-Of: odoo/enterprise#96273
This fix updates automated website tour checks so they correctly handle page reloads and redirects in appointment and helpdesk flows. It improves reliability of internal quality checks, reducing false failures during validation without changing customer-facing behavior.
Original PR description
\* = helpdesk, website_helpdesk ### Issue: - `appointment_crm_forced_staff_user_tour` fails on steps triggering page unload without `expectUnloadPage: true`. - In `helpdesk_search_ticket_on_portal_tour`, a specific step is failing for `helpdesk` but works when `website_helpdesk` is installed, as the step does not trigger the `beforeunload` event in that case. ### Fix: - Added `expectUnloadPage: true` to steps that trigger a page unload. - Introduced `HelpdeskSearchTicketSteps` class with `_searchTickets` so that the step can be overridden in `website_helpdesk`, removing the `expectUnloadPage` property when installed, since no `beforeunload` event is triggered in that case. runbot-[232987](https://runbot.odoo.com/odoo/runbot.build.error/232987) Forward-Port-Of: odoo/enterprise#95728
Corrects how Swedish payment batches are classified when no account type is provided, preventing IBAN payments from being incorrectly treated as local Swedish BBAN payments. This helps avoid payment processing errors and keeps automated validation checks reliable.
Original PR description
The method `_is_se_bban` is supposed to flag if payments are bban or iban. But since 8d77c0442d7912880c5da5976c92b24d3f9885ca,
the method returns True for batch of iban payments when you don't provide the `partner_acc_type` params, because
`len({'bban_se', 'plusgiro', 'bankgiro', *(partner_acc_type or {})}) == 3`
is always True if `partner_acc_type` is None.
This commit fix that behaviour, by replacing the empty set by `{'iban'}`, meaning the second condition will always be
False when `partner_acc_type` is None.
This bug has been found by failing runbot tests (error: 233465)
no-task
Forward-Port-Of: odoo/enterprise#97876This fix updates the report editor styling so placeholder hint text appears correctly after a related editor change. It helps users editing reports in Studio see guidance text as expected, avoiding confusion while customizing documents.
Original PR description
Since odoo/odoo@b4d96ac60b212224e7e9a4de13e76209f42c7eda the html_editor's hint text attribute has changed This commit just adapts the report's iframe css to take that into account. Forward-Port-Of: odoo/enterprise#97651
Fixed a visual issue where global filter suggestion buttons appeared partially styled for dark mode, even though spreadsheets do not currently support dark mode. This keeps the spreadsheet interface consistent and avoids confusing mixed-theme controls for users.
Original PR description
When using the global filter suggestions feature in dark mode, the buttons are halfway in dark mode. We don't support the dark mode in spreadsheet ATM. Task: [5089382](https://www.odoo.com/web#id=5089382&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#97491
Fixed an issue where using the keyboard to navigate search suggestions in the Helpdesk knowledge base could trigger an error. This makes the customer-facing help pages more reliable when users search for support articles.
Original PR description
Steps to Reproduce: 1. Navigate to '/helpdesk/customer-care-1/knowledgebase'. 2. Enter any text in the search bar to trigger suggestions. 3. Press the down arrow key twice. 4. A traceback error occurs, indicating an Odoo Client Error. Before this commit, we had a crash when a user types something in a searchbar in the website helpdesk and do keydowns: "Cannot read properties of undefined (reading 'nextElementSibling')" To fix this, we need to add the 'data-bs-toggle' attribute to let BS find it to set '_element' (which must be the previous sibling of the dropdown-menu). This data attribute was probably not set before because in this case the BS dropdown is not used on a button or a link as documented; we use it as an autocomplete functionnality. task-4752497 Forward-Port-Of: odoo/enterprise#97334 Forward-Port-Of: odoo/enterprise#90228
This fix prevents SAF-T general ledger reporting from failing or returning incorrect data when an accounting entry has no linked partner. It adds the missing partner condition so reports remain reliable for affected accounting records.
Original PR description
### Issue: After #95804 , some of the code was improved but the consideration for partner_id being None was not expected. To fix this issue, we add partner_id on the domain. OPW-5177365 Forward-Port-Of: odoo/enterprise#98240
The expense Stripe top-up wizard now uses the correct partner information when generating a QR code. This resolves an issue that could block users from creating QR codes during the top-up process, helping payments setup proceed smoothly.
Original PR description
Fix a bug preventing from creating a qr code in the topup wizard due to a res.partner.bank being used instead of a res.partner Forward-Port-Of: odoo/enterprise#98255
Payroll demo data now uses default working calendars with the correct local time zones across several country localizations. This helps demo companies show more accurate schedules and payroll examples for each country.
Original PR description
- added a default resource calendar with the correct timezone for ae, tr, bd, lt, ma, mx, pk, ro localizations - corrected the timezone of resource calendars of jo, sa, eg, ke, id localizations task-id: 4862716
When creating an employee from a salary offer linked to an applicant, the applicant's attachments are now copied to the new employee record. This prevents missing hiring documents and keeps the salary configurator flow consistent with the standard applicant "Create Employee" action.
Original PR description
When an employee is created from a salary offer linked to an applicant, the attachments of the applicant were not transferred to the newly created employee record. This caused missing documents compared to the 'Create Employee' action from the applicant form. This PR ensures that all applicant attachments are copied to the employee record during employee creation from the salary configurator. Related task: 5103309.