Daily updates from Odoo
Tuesday, August 12, 2025
19 changes · master
Enhancements to existing features
WhatsApp conversation membership now keeps the pinned status directly on each member record. This supports more reliable and efficient handling of pinned chats for users.
Original PR description
task-4851885 [Community PR](https://github.com/odoo/odoo/pull/217366)
The VoIP app icon has been refreshed with a new design in both image formats used by Odoo. This keeps the app’s appearance aligned with the latest visual branding and improves recognition for users.
Original PR description
This PR updates the voip png and svg icon to the new one. task-4987745 | Before | After | |--------|--------| | <img width="331" height="334" alt="Screenshot 2025-08-07 at 16 30 15" src="https://github.com/user-attachments/assets/61c6c7eb-3c2c-4120-a713-b6f4a5fbf44f" /> | <img width="331" height="334" alt="Screenshot 2025-08-07 at 16 29 54" src="https://github.com/user-attachments/assets/cf1d9449-109b-4de9-a4c2-d3b80b84d1d8" /> | PR Com: https://github.com/odoo/odoo/pull/222175
The CRM pipeline dashboard chart titles were updated so they correctly match the data being shown. This helps users interpret carousel charts more easily and reduces confusion when reviewing sales pipeline insights.
Original PR description
This commit updates the titles of the new added carousel charts as their measure/group were inverted. Task-5008685
Payslip emails for Swiss payroll now only include a direct document link when the employee does not have a user account. This helps route employees with accounts through the standard access flow while still giving others a practical way to view their payslip.
Original PR description
- adapt the mail template to send the driect link only when the employee does not have a user Task: 4747003
Resolved issues and error corrections
Rental quotation product selection now avoids showing products that are neither available for sale nor rentable. This prevents sales teams from accidentally adding unavailable products to customer quotations, improving quote accuracy.
Original PR description
Versions
--------
- saas-18.3
Steps
-----
1. Have a product that's neither salable not rentable;
2. open a quotation;
3. click "Add a product".
Issue
-----
It's possible to select the unsalable product.
Cause
-----
Commit d5f72c201bf0 added a `_domain_product_id` override to `sale_renting` which includes `('rent_ok', '=', order_is_rental)`. As a consequence, whenever you have a quotation that isn't a rental, this domain will retrieve *any* product that isn't rental either.
Solution
--------
Add a `('rent_ok', '=', True)` condition to ensure the override only affects rental orders, and that non-rental orders won't retrieve all non-rental products.
opw-4983348
Forward-Port-Of: odoo/enterprise#91701Automatic currency rate updates from the UAE Central Bank now include the Sudanese Pound. This ensures businesses using SDG receive current exchange rates without manual correction.
Original PR description
**Steps to reproduce**: 1. Install the `account` and `l10n_ae` modules. 2. Go to `Invoicing → Configuration → Currencies` and activate the `Sudanese Pound (SDG)` currency. 3. Navigate to `Settings → Invoicing → Currencies → Automatic Currency Rates`. 4. Select `[AE] Central Bank of the UAE` as the currency provider and manually fetch rates. <img width="463" height="181" alt="image" src="https://github.com/user-attachments/assets/31257e2e-8360-4cdb-877e-2ea41487ddea" /> 5. Return to the Currencies list. **Observed behavior**: - The rate for the `Sudanese Pound (SDG)` is not updated. **Root cause**: - The `SDG` currency is missing from the `MAP_CURRENCIES` dictionary, so the provider doesn't fetch its rate. **Solution**: - Add the missing `SDG` currency mapping to `MAP_CURRENCIES`. opw-4869204 Forward-Port-Of: odoo/enterprise#91790
Worksheet fields created during onboarding are now properly included in translation exports. This helps field service and quality teams use localized worksheet labels reliably across languages and updates.
Original PR description
_*=industry_fsm_report, quality_control_worksheet Issue: - In the `industry_fsm_report` and `quality_control_worksheet` modules, worksheet fields created during onboarding were not translatable and were missing from the exported .po files. Cause: - Field creation was moved from XML to Python (see https://github.com/odoo/enterprise/commit/d619aa4d0d042be3f899b777081b7fb90f851c84). As a result, the fields were no longer automatically registered in `ir.model.data`, preventing the translation system from detecting them. Solution: - Set the `_import_current_module` context and added explicit IDs when creating fields in python. This registers the fields in `ir.model.data`, enabling translations and keeping field references stable across updates. task-4585020
The Spanish VAT record book export now recognizes the 0.26% and 1% equivalence surcharge purchase taxes. This prevents an error when exporting VAT books for invoices using these rates, helping Spanish companies complete tax reporting reliably.
Original PR description
Added to SURCHARGE_TAX_EQUIVALENT taxes 0.26% SE and 1% SE When using the Odoo VAT book (location Spain) and we have an invoice with the taxes 0.26% SE (0,26% Recargo Equivalencia Compras) 1% SE (1%…
Added to SURCHARGE_TAX_EQUIVALENT taxes 0.26% SE and 1% SE When using the Odoo VAT book (location Spain) and we have an invoice with the taxes 0.26% SE (0,26% Recargo Equivalencia Compras) 1% SE (1% Recargo Equivalencia Compras). a KeyError error occurs <img width="1147" height="517" alt="Captura desde 2025-07-30 09-37-13" src="https://github.com/user-attachments/assets/771fcf6e-efed-4e79-a1d4-a133c7072c2a" /> Steps to Reproduce this error: 1. Create a new database using Odoo version 18. 2. Activate the module: “Spain - Accounting (PGCE 2008)” (l10n_es). 3. Create a new company and set Spain as the country. 4. In the company’s “Sales & Purchase” tab, set the Fiscal Position to "Equivalence surcharge". 5. Create a new quotation and select the company created in step 3. 6. Add a product with the following taxes: 0.26% and 2% VAT (G). 7. Add another product with the following taxes: 1% (SE) and 7.5% VAT (G). 8. Confirm the invoice generated from the quotation. 9. Go to Accounting → Reporting → Tax Report and select "Generic Tax Report". 10. Click the gear icon and select "VAT Record Books (XLSX)". OPW https://www.odoo.com/es_ES/my/tasks/4981807 @jco-odoo please review. Thank you! MT-10457 @moduon Forward-Port-Of: odoo/enterprise#92116
This fix ensures the U.S. payroll leave type screen includes the expected fields by loading the missing view configuration. It also corrects a label so users see clearer information when managing leave types.
Original PR description
Before this commit, the modification of the leave type views was not introduced in the manifest, resulting in the fields being absent from the view. This commit corrects the label as well as introduces that view in the manifest Forward-Port-Of: odoo/enterprise#87423
The VoIP softphone now checks whether the user is typing in another editable field before taking focus back after a call. This prevents interruptions and reduces the chance of accidentally entering text in the wrong place.
Original PR description
Before switching the focus back to the softphone after a call, make sure the user isn't typing somewhere else. Only autofocus if the focus is not on an editable element. Task-4997513. Forward-Port-Of: odoo/enterprise#91970 Forward-Port-Of: odoo/enterprise#89562
The salary configurator now displays dropdowns and the personal information section more consistently across screen sizes. This makes the form easier to read and use for employees configuring their salary package.
Original PR description
this commit fixes dropdown styling in the salary configurator. moreover, `your personal information` section is fixed so that the background color covers the entire width of the screen in different screen sizes. task-4953595
Approval requests now prevent the same person from being added more than once as an approver. This avoids traceback errors in the Approvals app and removes duplicate demo data that could trigger the issue.
Original PR description
#### Reproduce Approvals app -> My Approvals -> My Requests (Traceback Error) #### Issue The demo data contains a duplicate record for an approver (the user is set as default approver for the approval category and added again as record in xml data), so the request had 2 approvers with the same user. #### Fix replaced the `@api.constrains` with a UNIQUE SQL constraint to enforce the check of same user linked to more than one approver for single request, and deleted duplicate record from demo xml data. task-4984137
Exported audit reports will now include the .pdf file extension in their names. This helps Windows recognize the files as PDFs so users can open them directly with their PDF viewer without manual renaming.
Original PR description
Currently, when a user exports an audit report, the server returns a download URL. During the download, the server sets the `Content-Type` HTTP header to `application/pdf`, indicating that the file is a PDF. However, for Windows users, setting the `Content-Type` header alone is not enough. The operating system may treat the file as a generic file, which means it won't automatically open in a PDF viewer when double-clicked. Instead, the user must manually assign the `.pdf` extension or choose a PDF reader to open it. To resolve this, we will include the `.pdf` extension in the file name. This ensures that the operating system correctly identifies the file as a PDF and opens it with the appropriate application. Task-4989809
Field service teams can once again use the map view when opening outgoing stock deliveries. This restores a helpful visual planning option that was temporarily missing due to a technical split between Odoo Community and Enterprise features.
Original PR description
This commit is the continuity of the fix made in community. The issue fixed in community was the map view cannot be defined in the view mode of an action since the map view only exists in enterprise. This commit overrides the method defined in community to add the map view as before. Related PR: odoo/odoo#222003 Forward-Port-Of: odoo/enterprise#92032
Adjusted accounting report tests so they respect new validation rules for externally calculated report lines. This prevents false test failures in complex tax reports, such as Luxembourg tax annexes, while keeping report behavior aligned with stricter safeguards.
Original PR description
The corresponding community PR (https://github.com/odoo/odoo/pull/221407) contains a fix that requires the _validate_engine constraint to reject any groupby value for the 'external' engine. Therefore, it is now needed that the test ensuring non-stored related fields can be used in groupby is adapted in order to also exclude those expressions when changing the groupby value of the lines using a custom engine on any of their expressions. Without that, complex reports like the annexes of the Luxembourgese tax report fail the test. Forward-Port-Of: odoo/enterprise#92096
This update adds the required AI VoIP dependency to the enterprise discussion test module. It prevents test failures when transcription-related VoIP settings are expected but the supporting module is not available.
Original PR description
After (ref.1) test suite includes `voip.provider.transcription_policy` in its expected values in the store (ref.2).
Since `transcription_policy`` is coming from ai_voip module, and there is no direct dependency, it can cause issues when ai_voip isn't there.
This commit prevents that situation by introducing the dependency.
Refs:
---
(1) [IMP] ai_voip: introduce per-provider transcription setting
df402bcdd9023157ee3661e453002bacb421384c
(2) mail.tools.discuss.Store (voipConfig wiring)
related task
task-4532108Features or functions removed from Odoo
Several website-related apps have had obsolete snippet configuration code removed after a prior website refactor made it unused. This is an internal cleanup that reduces maintenance overhead and should not change day-to-day website behavior for users.
Original PR description
* : website_appointment, website_helpdesk, website_knowledge, website_sale_renting, website_sale_subscription, website_studio Following the website refactor [1], that code is not used anymore. [1]: https://github.com/odoo/odoo/commit/9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2
An unused shortcut in the Attendance Gantt view was removed because it was no longer referenced. This keeps the system configuration cleaner with no expected change for day-to-day users.
Original PR description
Remove unused action 'hr_attendance_gantt.action_open_gantt_create_view_form' since it is unused Task ID: 4988707
Code cleanup and technical improvements
The Italian EDI withholding reporting functionality has been folded into its parent Italian EDI module, removing the need for a separate backport-specific module. This simplifies maintenance and keeps the same functionality available from the main localization package.
Original PR description
This commit integrates the functionality from the `l10n_it_edi_withholding` module into its parent, `l10n_it_edi`. The separate module was originally created to backport this feature to a stable version (16.0), making it obsolete now. Original commit: https://github.com/odoo/odoo/commit/90f9f9f23478bd54625c152c7f5ab2d0c18e3780 See odoo/odoo#221365 See odoo/upgrade#8147 Task [link](https://www.odoo.com/odoo/project/967/tasks/4988044) task-4988044