Daily updates from Odoo
Monday, July 13, 2026
23 changes
6 changes
Enhancements to existing features
Uzbekistan financial reports now include Russian translations alongside Uzbek. This helps businesses in Uzbekistan use Odoo reports more easily in a commonly used business language, improving local adoption.
Original PR description
Uzbekistan's business environment requires Russian in addition to the official Uzbek language to ensure adoption. While localizations typically activate only statutory languages, Central Asian market realities justify this exception. task-6229114 -- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/enterprise#122901 Forward-Port-Of: odoo/enterprise#120250
Updates to sales commission planning and reporting aim to make commission setup and achievement tracking clearer. This helps sales managers better monitor performance and manage commission plans with improved views and report behavior.
Odoo can now use official daily exchange rates from the Central Bank of Azerbaijan for automatic currency updates. This helps businesses using AZN translate foreign-currency accounting and tax transactions more accurately, including rates quoted for larger nominal amounts.
Original PR description
This commit adds the Central Bank of Azerbaijan (CBA) as a supported service provider for automatic currency rate updates. Purpose: To ensure multi-currency accounting entries and taxable transactions are accurately translated into the national currency (AZN) using the official exchange rate defined by the CBA for the transaction day. Functionality: -Enables fetching official daily exchange rates directly from CBA via XML. -Automatically handles rates defined for different nominal quantities (e.g., rates quoted per 100 units instead of 1 unit). Backport of: https://github.com/odoo/enterprise/pull/122626 task-6112867 Forward-Port-Of: odoo/enterprise#123436
Work order planning views now focus on planned work by default, reducing the chance of accidental replanning and keeping completed manufacturing dependencies out of planning charts. Shop floor card options now better match enabled settings, and engineering change cost comparisons are more accurate for operation changes.
The AI app now marks an upcoming retired Google embedding model as deprecated and automatically refreshes older embeddings that used deprecated models. This helps keep AI-powered features reliable without manual intervention when providers phase out older models.
Original PR description
The model gemini-embedding-001 will be deprecated soon, so this commit is: - Deprecating that model. - Introducing an autovacuum to recompute embeddings that were done using embedding models that have been deprecated. task-6004597
This pull request enhances the user experience for subcontracting workflows in Odoo. It simplifies the interface by renaming key columns and removing irrelevant fields, making it easier for users to manage subcontracting operations. These changes improve clarity and reduce potential confusion.
Original PR description
Small UX improvements for subcontracting, includes following changes: - Custom Operation Dependency should not be displayed/set if type of the BOM is subcontracting/kit. - Column name was changed from Free to use / On Hand subcontractor location to Subcontractor Stock - Manufacturing Readiness should not be displayed/set if type of the BOM is subcontracting/kit. task-6320074
3 changes
Enhancements to existing features
Odoo can now use official exchange rates from the Central Bank of Azerbaijan for automatic currency updates. This helps companies working in Azerbaijan convert multi-currency accounting and tax transactions into AZN using the correct daily official rate, including rates quoted for larger nominal amounts.
Original PR description
This commit adds the Central Bank of Azerbaijan (CBA) as a supported service provider for automatic currency rate updates. Purpose: To ensure multi-currency accounting entries and taxable transactions are accurately translated into the national currency (AZN) using the official exchange rate defined by the CBA for the transaction day. Functionality: -Enables fetching official daily exchange rates directly from CBA via XML. -Automatically handles rates defined for different nominal quantities (e.g., rates quoted per 100 units instead of 1 unit). Backport of: https://github.com/odoo/enterprise/pull/122626 task-6112867 Forward-Port-Of: odoo/enterprise#123436
The website AI Assistant is now unavailable to users who do not have permission to edit and design website pages. This avoids confusion by disabling the button and showing a clear explanation when the feature cannot be used.
Original PR description
Restricted Editors do not have permission to edit website pages. However, the AI Assistant button remains available, giving the impression that the feature can be used even though any changes cannot be saved. This commit disables the AI Assistant button for users without 'Editor and Designer' access and adds a tooltip explaining why the feature is unavailable
The AI module now moves away from an embedding model that will soon be discontinued. It also automatically refreshes older AI-generated embeddings that used deprecated models, helping keep AI features reliable without manual intervention.
Original PR description
The model gemini-embedding-001 will be deprecated soon, so this commit is: - Deprecating that model. - Introducing an autovacuum to recompute embeddings that were done using embedding models that have been deprecated. task-6004597
1 change
Enhancements to existing features
The AI module now prepares for the upcoming retirement of Google's Gemini embedding model by marking it as deprecated. It also adds automatic cleanup that refreshes stored AI embeddings created with deprecated models, helping keep AI features reliable without manual intervention.
Original PR description
The model gemini-embedding-001 will be deprecated soon, so this commit is: - Deprecating that model. - Introducing an autovacuum to recompute embeddings that were done using embedding models that have been deprecated. task-6004597
1 change
Enhancements to existing features
The AI module is preparing for the upcoming retirement of the Gemini embedding model currently in use. Existing AI embeddings created with deprecated models will be automatically refreshed in the background, helping keep AI features reliable without user action.
Original PR description
The model gemini-embedding-001 will be deprecated soon, so this commit is: - Deprecating that model. - Introducing an autovacuum to recompute embeddings that were done using embedding models that have been deprecated. task-6004597
3 changes
Enhancements to existing features
This update ensures that when expenses are marked as duplicates, their associated bills are automatically recognized as duplicates as well. Previously, bill duplication was handled separately, leading to potential inconsistencies. This change streamlines expense management and improves data accuracy.
Original PR description
Bills linked to expenses now rely on the expense duplication logic instead of the standard bill duplication. This ensures that when two expenses are marked as duplicates, their corresponding bills are also recognized as duplicates. task-5262550
This update brings the Owl library, a key component of our website's image carousel functionality, to version 2.8.4. This includes a fix to prevent lost renders and enables compatibility with Node.js, improving the overall performance and stability of our website. These changes enhance the user experience and ensure consistent image display.
Original PR description
- [FIX] runtime: don't lose coalesced renders - [IMP] loadable with nodejs See https://github.com/odoo/owl/commits/owl-2.x/ for more details Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#275568
This update ensures that product prediction based on name works consistently for all users. Previously, the feature was running regardless of whether users had disabled it in their settings, which could lead to confusion. Now, product prediction will automatically run for community users and will respect the user's preference as defined by the 'predict_bill_product' setting.
Original PR description
Context: There was an enterprise field `predict_bill_product` allowing users to toggle product prediction based on line label. Before this commit, product prediction by name was running without taking into account the value of this field, which could confuse users who had disabled the feature in settings. This commit makes product prediction by name depend on this field. For community users, the prediction will run by default. no-task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267138
3 changes
Enhancements to existing features
The editor now hides link-creating shortcuts when users are editing labels or buttons, where links can interfere with the expected click behavior. This reduces the chance of creating content that behaves unpredictably in appointments, documents, or knowledge articles.
Original PR description
*: appointment, documents, knowledge When a `<label>` element is clicked it should be like a click in the related input. For `button` it should activate its action. If there is a link in the label or button, it will handles clicks inside of it. Thus we want to discourage the user from adding links in label or buttons elements. Tools inserting links remove the surrounding link, thus we disable those tools inside links. This commit affects the availability of: - "Insert a file from Documents" in powerbox - "Insert an Article shortcut" in powerbox - "Add a specific appointement" in powerbox task-4860229
Saudi payroll run reports now show Total Cost based on net cost and replace the gross section with Total GOSI Contribution. This gives payroll teams clearer, localization-specific totals for reviewing employer and employee social insurance costs, with tests added to protect the calculation.
Original PR description
[IMP] l10n_sa: adjustments in costs of payrun
For Saudi Localization:
1 - In payrun costs section, the label of employer cost became Total Cost and its value became NETCOST (We show the sum of NETCOST in there)
2 - Gross section is removed and we are showing Total GOSI Contribution and its value is the summation of abs(GOSI_COMP) + abs(GOSI_EMP)
task - 6326336Belgian payroll now uses one company number field instead of multiple overlapping entries, reducing confusion during setup. Existing data is preserved during upgrade, and DMFA reporting uses the same BCE company number consistently.
Original PR description
The Belgian payroll configuration exposed three overlapping "numbers" that were confusing and poorly documented: - ONSS Company ID (onss_company_id) - ONSS Registration Number (onss_registration_number) - Company Number (l10n_be_company_number) `onss_company_id` was labelled "ONSS Company ID" but its tooltip described the BCE (Crossroads Bank for Enterprises) enterprise number, and its placeholder looked like an ONSS matricule. It was in fact a redundant duplicate of `l10n_be_company_number`: in the DMFA, the <CompanyID> element is the BCE enterprise number. Remove the redundant `onss_company_id` field and make `l10n_be_company_number` the single source of truth, including for the DMFA <CompanyID>. Document it with the help "A 10 digits number issued by BCE" and surface the Company Number in the payroll settings page. Data is preserved in an upgrade script: where the two values differ, `onss_company_id` is copied into `l10n_be_company_number`. task-6352367
3 changes
Enhancements to existing features
This change avoids confusion around inventory valuation settings by addressing a periodic valuation option that does not apply as expected for perpetual valuation. It helps users avoid expecting closing entries that are not generated under that setup, while the final behavior is being handled in the related core update.
Original PR description
Problem: The Periodic Valuation frequency has no effect when the valuation method is Perpetual, since the Inventory Valuation Closing only runs for the Periodic method. This can confuse users into expecting a periodic closing entry that is never generated. Solution: Following the review feedback, the intended behavior is for the closing cron to also run for Perpetual companies so their valuation stays continuously updated. The fix therefore moves to the community cron instead of hiding the field: superseded by odoo/odoo#275955.
Mexican payroll CFDI validation has been updated to match version 1.2e requirements. This helps payroll teams generate compliant electronic payslip records by checking taxable and exempt income values per line and applying the latest subsidy limits.
Original PR description
**. Perceptions – ImporteGravado / ImporteExento (XML Nodes)** For each Perception node, validate that: If ImporteExento = 0, then ImporteGravado > 0. If ImporteGravado = 0, then ImporteExento > 0. Both values cannot be 0 at the same time. These validations must be applied per Perception node, not at an aggregated level. **. TipoPercepcion = "038" (Other Salary Income) (XML Nodes)** When TipoPercepcion = "038": ImporteExento must always be 0. The amount must be recorded only in ImporteGravado. **. SubsidioCausado (XML Nodes)** Update the validation logic for the SubsidioCausado attribute based on NumDiasPagados: If NumDiasPagados ≤ 31, SubsidioCausado ≤ 628.00 If NumDiasPagados > 31, SubsidioCausado ≤ NumDiasPagados × 0.206 task-5412728
Signature requests created from other apps now include the document template name alongside the related record. This makes request names, file names, and email subjects easier to recognize and less likely to be confused with the signer’s name.
Original PR description
When requesting a signature from another app, the request name, filename and email subject only showed the linked record name, which often read as the signer's name. The template name is now added so all three follow the same "<prefix> - <template> - <record>" format. task-6317174
1 change
Enhancements to existing features
This update improves the performance and reliability of our website's image galleries by upgrading the Owl library to version 2.8.4. Specifically, it fixes a bug that prevented the loss of rendered images and adds support for running Owl with Node.js, enhancing flexibility.
Original PR description
- [FIX] runtime: don't lose coalesced renders - [IMP] loadable with nodejs See https://github.com/odoo/owl/commits/owl-2.x/ for more details Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#275568
2 changes
Enhancements to existing features
This update improves the performance and reliability of our website's image galleries by upgrading the Owl library to the latest version (2.8.4). Specifically, it fixes a bug that caused lost coalesced renders and adds support for running Owl with Node.js, enhancing our development flexibility.
Original PR description
- [FIX] runtime: don't lose coalesced renders - [IMP] loadable with nodejs See https://github.com/odoo/owl/commits/owl-2.x/ for more details Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#275568
This update enhances the display of Peppol error messages within Odoo. Previously, technical error details were difficult for users to understand and act upon. Now, errors are presented as a clear, human-readable HTML list in the chatter, making it easier to diagnose and resolve issues related to Peppol integration.
Original PR description
Before this commit, Peppol error messages (e.g. Schematron errors) were logged in the chatter as a single unformatted line and without any humanization. The errors were too technical and the user could not easily know what action to take. This PR splits the raw error payload into individual entries, maps known error codes to human-readable explanations, and renders them as an HTML list in the chatter. task-6144909 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr