Tuesday, August 12, 2025
12 changes · master
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-4532108