Tuesday, November 4, 2025
10 changes · 19.0
Enhancements to existing features
Pakistan payroll tax rules have been updated with the new 2026 bracket values. This helps ensure employee payslips and payroll calculations stay accurate and aligned with the latest local tax requirements.
Original PR description
Tax brackets for pakistan localization has been updated to include the new values for 2026. Forward-Port-Of: odoo/enterprise#98345
This update refreshes the QR-code links sent to Avalara when issuing Brazil NFC-e invoices. It helps prevent invoice errors caused by outdated or invalid links, ensuring tax calculations and invoice submission continue to work correctly.
Original PR description
In This PR:
- Several states have updated their NFC-e QR-code URLs, which caused errors when issuing invoices due to invalid or outdated links. This commit updates the 'nfceQrCode' parameter in Avalara requests ('calculate-tax' and 'submit-invoice-goods') to ensure the correct QR-code links are used.
task- 5115845
Forward-Port-Of: odoo/enterprise#95726Messages that include a rating are now treated as non-empty in portal views. This prevents rated feedback from being overlooked and improves the accuracy of customer interactions shown to users.
Original PR description
*: portal, portal_rating, rating, website_slides task-5016995 Forward-Port-Of: odoo/odoo#234059 Forward-Port-Of: odoo/odoo#223515
This update keeps Raspberry Pi and IoT device setup working with newer Python and related system libraries. It also fixes where Wi‑Fi settings are saved, helping ensure network configuration is applied correctly on recent device images.
Original PR description
To ensure compatibility with python 3.13+, we updated the method to generate the rpi's password to avoid using the removed `crypt` lib.
In addition, we ensure that Wi-Fi configuration is saved to the right path, nmcli saving path changed in latest versions. (see: https://github.com/raspberrypi/trixie-feedback/issues/3).
Finally, we ensure compatibility with old `cryptography` versions, by using `not_valid_after_utc` or `not_valid_after` depending on on image version.
Forward-Port-Of: odoo/odoo#234014
Forward-Port-Of: odoo/odoo#233423This update prepares the POS and blackbox integration for a more reliable communication flow by introducing a new action to the connected device. It is the first step toward a queue-based mechanism that will help transactions between the POS and blackbox run more smoothly in the next update.
Original PR description
This commit is the first of two which will introduce a queue mechanism in the communication between the POS and the blackbox. This commit adds an action to the iot and invites users to update their iot to be prepared for the next commit which will effectively add the queue mechanism and use the new action. Second part: https://github.com/odoo/enterprise/pull/90747 Forward-Port-Of: odoo/enterprise#96904 Forward-Port-Of: odoo/enterprise#96639
The Iyzico payment provider now supports webhooks, allowing Odoo to receive payment updates automatically from Iyzico. This improves payment status tracking and makes the integration more reliable for customers and the business.
Original PR description
This commit adds webhook support for the Iyzico payment provider. task-5067754
This update improves how user mentions are detected and validated while composing messages. It also moves part of the message preparation work into a dedicated component, paving the way for a more accurate “what you see is what you get” experience in the composer.
Original PR description
This commit introduces a new MentionPlugin to handle user mentions in the mail composer. The MentionPlugin is responsible for detecting and validating mentions. It listens to selection changes and processes mention elements accordingly. This commit also moves part of the prepareMessageBody logic to the MentionPlugin, so that we can finally get rid of the prepareMessageBody in the future and get what you see is what you get in the composer. task-5137057 backport - https://github.com/odoo/odoo/pull/232538 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Attachment content is now prepared in a way that helps AI find and understand information more accurately. PDFs are indexed more directly, and tabular files are reformatted into a clearer text structure so retrieval results are more relevant.
Original PR description
### Summary
This improvement refines how attachments are indexed to enhance retrieval quality and RAG comprehension.
### Key Changes
- **PDF Indexation:**
- Moved the PDF attachment indexation logic from the previous implementation to the main `_index` method in the `attachment_indexation` module [COM PR].
- PDFs are now indexed directly and their content is stored into `index_content` to be used directly.
- **Tabular File Indexation:**
- In alignment with the community PR that indexes tabular files as CSV text, this update introduces a new helper method:
- `_process_csv_text`: Converts CSV content into a **header–dictionary-style text**, improving semantic understanding for RAG.
---
**Task:** 5045336This update adds extra IGIC tax data for the Canary Islands and splits purchase taxes into goods and services. It helps Odoo apply the correct tax mappings based on the type of purchase, improving compliance and reducing manual adjustments.
Original PR description
We have splitted purchase taxes in goods and services because there are different mappings according to the scope. It has a similar functionality with spanish mainland taxes @jco-odoo There are doubts with the fiscal position `fp_nacional_canary_ns` as it is applied automatically to spanish non canarian partners but it should be similar to non-EU partners IMO. However, I think that the opinion fo some canary people would be nice to clarify it @Christian-RB --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230964 Forward-Port-Of: odoo/odoo#228667
This change greatly speeds up the contract template update process when preparing a new job offer. It reduces unnecessary data processing and database work, which cuts waiting time from minutes to a fraction of a second in large databases.
Original PR description
Description ----------- - Fix performance regressions due to breaking the prefetcher via `[0]` indexing of `hr.version` and batch `write`. - Evaluate only the current employees contracts in `_get_contract_versions` for an *onchange* context, else the `hr. version` for all employees are fetched and evaluated, leading to significant overhead downstream. - Add missing index for `_remove_work_entries` Benchmark --------- On a database in 19.0, with ~10k employees, ~30k versions and ~5M work-entries, the onchange triggered when changing the contract template on a pending offer for a new lambda employee took: | | Before | After | |-------------|--------|--------| | Query Count | 107k | 349 | | Time | 2.9min | ~300ms | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234202