Friday, June 27, 2025
9 changes · 17.0
Resolved issues and error corrections
The web editor now safely ignores toolbar updates when the related editing frame has already been closed or removed. This prevents intermittent errors that could occur after users leave a mailing editor form, improving stability without changing user workflows.
Original PR description
This commit fixes this [runbot error](https://runbot.odoo.com/odoo/runbot.build.error/75847) which is triggered by a toolbar method called at an incorrect time in some instances. Sometimes the method could be called after the form view was exited. Which means that the iframe used by the mailing editor could trigger the method even though it is no longer in the DOM. This leads to a call to getSelection on a document that could no longer be displayed/present in the DOM. To fix this issue, when the selection returned by the document is null (this.document no longer on the DOM), the method returns directly. task-4829204 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Credit note reversal references are now generated in the customer's preferred language instead of the user's language. This ensures printed PDFs show properly translated references for customers using a different language.
Original PR description
Steps to reproduce: ==================== - Create an invoice - Add a customer whose language differs from the user's language - Create a reversal - Print the PDF Problem: ========= The reversal reference is generated using the user's language, making it impossible to translate properly because the string value is changed and concatenated with the invoice name. Solution: ========== Generate the reversal reference using the partner's language to enable proper translation. opw-4743430 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Portuguese accounting setup now shows the standard local names for cash and demand deposit accounts. This helps Portuguese companies find and use the expected accounts in their chart of accounts, reducing confusion during accounting setup and daily bookkeeping.
Original PR description
**PROBLEM** The account Caixa (Cash) and Depósitos à Ordem (Demand deposits) are missing from the Portuguese localization. The accounts numerario and banco exist, but they don't have the right names. **STEPS TO REPRODUCE** - install the accountant and l10n_pt module. - select a Portuguese company and select the portuguese language. - in the Chart of Accounts, notice there is no account named Caixa and Depósitos à ordem. **FIX** We still need to translate "Bank" by Banco in some context. We override the "Bank" and "Cash" account in the pt journal template, using the account.account-pt.csv data. opw-4829413 related PR: https://github.com/odoo/odoo/pull/213522
Payment logs now record the actual payment details needed for troubleshooting instead of only listing field names. Sensitive Stripe keys remain protected while support teams get more useful information to diagnose payment issues faster.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Log Stripe payment values. Issue ----- Only the keys get logged. Cause ----- Commit 1a2573881281 fixed the logging of secret keys, but in doing so, only logs keys and no values. Solution -------- Use a dict comprehension to create a full dict to log. opw-4818301
CRM activity lists now include follow-ups linked to leads that were marked as lost. This helps sales teams see all due work from the activity menu without manually adding the Lost filter.
Original PR description
**Steps to reproduce:** 1) Install CRM 2) Create a crm lead and mark it as lost 3) Create a new activity for the lost lead for today 4) Go to the activity button in the top right corner 5) Click on today's activity for crm leads **Issue:** If you click activity for crm, it will only show the active lead's activities, not the lost ones. You need to click on the filter 'lost', to see the lost leads **Cause:** When the lead is marked as lost, we archive the lead record. Indeed, we won't see the lost leads by default when opening activities, since they are not active. https://github.com/odoo/odoo/blob/8111009f6a8888db80f9afaa145a4c64272370e7/addons/crm/models/crm_lead.py#L1013-L1016 **Solution:** Add `active_test` to the context to show the archived/lost activities. opw-4866692
Searching security groups for a forward slash no longer triggers an error. This prevents a crash in the Groups settings screen and makes user administration more reliable.
Original PR description
Currently, an error is produced on searching in a security group with a forward slash ('/').
**Steps to reproduce:**
- Navigate to `Settings > Users & Companies > Groups`.
- Type '/' in the search bar and hit Enter.
**Error:**
`IndexError - pop from empty list`
**Cause:**
When the group name contains only slashes, splitting it by '/' at [1] results in an empty list. After computation, it attempts to pop from the empty list, resulting in an error.
[1] - https://github.com/odoo/odoo/blob/a301f8ae6aad59efd073a34c6f9ec323191d211b/odoo/addons/base/models/res_users.py#L234-L235
This commit ensures the group name is only assigned when values have content, preventing the error.
Sentry - 6685124199Website pages no longer show an error when Chrome has another extension, such as MetaMask, installed but the push-to-talk extension is missing. This avoids confusing tracebacks for visitors and keeps live chat pages loading normally.
Original PR description
Scenario: - install website, im_livechat, Metamask external extension - go to any page on the website with chrome Result: a traceback is shown on all pages with no stacktrace and the message "Could not establish connection. Receiving end does not exist.". Issue: the error happen if the push to talk extension is not installed in the pttExtensionHookService. Because of metamask extension, "window.chrome.runtime" is not undefined (if metamask is uninstalled, "the window.chrome.runtime" is undefined). So when metamask (or another extension that cause window.chrome.runtime to be defined) is installed, we get an error shown because the promise rejection is not handled. Fix: handle the unhandled promise error. opw-4874027
Odoo Studio now automatically removes extra spaces at the end of selection field values before saving. This prevents confusing duplicate-looking values and helps keep reused field options consistent.
Original PR description
Before this commit it was possible to create selection values with trailing spaces. This could be very misleading when reusing these values somewhere else. After this commit, such values are trimmed before saving. opw-4877276
This fix prevents an error when a user renames a Knowledge article after moving the article heading into the name field. If no article title is available, the system now safely skips the rename instead of showing a traceback, improving reliability for Knowledge users.
Original PR description
Steps to Reproduce: 1. Install Knowledge 2. Create a new article 3. Write a title in 'Heading 1' of the article 4. Select the title name, cut it and paste it into the Article name 5. Observe a traceback Issue: When trying to rename an article without entering a name, it tried to get the title from the article, but the code was a bit messy and could break. Solution: Now used a predefined method 'getHtmlTitle()' to get the article’s title. If no title is provided, it will return without updating the name. https://github.com/odoo/enterprise/blob/127f512b1a72957eb23c41103ecab44e1fdce0e7/knowledge/static/src/js/knowledge_controller.js#L83-L91 Ref-https://github.com/odoo/enterprise/pull/75497/commits/432a9096218daaadc9090a1f7c8dbb099671a95d opw-4138118 Note: This PR is only for version 17.0 (no fw-port up to master), as an issue is not reproducible from version 18