Daily updates from Odoo
Wednesday, November 5, 2025
7 changes · master
Enhancements to existing features
Accounting users can now enter deferred start and end dates through a clearer date range control. When only one date is needed, the system automatically reuses the start date as the end date and no longer warns when both dates are the same, supporting accrual entries with less manual input.
Original PR description
* use the widget `daterange` on `deferred_start_date` and `deferred_end_date` * auto fill `deferred_end_date` when it is empty to `deferred_start_date` to avoid double encoding of the same value, and avoid raising an error * remove the warning `has_abnormal_deferred_dates` when the date is the same, this can be used to do an accrual entry. task-5207293 Forward-Port-Of: odoo/enterprise#98794
Attachments are now indexed in a way that makes their content easier for AI features to understand and retrieve. PDF content is stored more directly, and spreadsheet-like files are converted into clearer text so AI answers can better reflect the original information.
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:** 5045336
Forward-Port-Of: odoo/enterprise#96596Payroll salary structures now require a journal to be set, improving accounting data consistency and reducing configuration errors. Belgian payroll calculations were also improved to account for time credit entries when calculating working schedule rates and prorated monthly wages.
Original PR description
`journal_id ` field on hr_payroll_account module modified to be required field and no need for required attribute on the UI attribute, and that's ensures the database consistency
Point of Sale now better supports turning individual order lines into a combo product in one action. This keeps preparation displays aligned with the updated order structure, helping kitchen and service teams avoid confusion when combos are created.
Original PR description
This commit adapts the preparation display logic to handle the conversion of lines into a combo product. Task-id: 5180846
ESG carbon emission values now keep more decimal precision, improving the accuracy of emissions reporting and analytics. Users can also open emission records in a full form view from the list, making review and edits easier.
Original PR description
- **Add more digits to carbon emission values + small imp** This commit adds more digits to ESG fields showing emission values to have more precision. This commit also moves a demo data in real data and update some views. - **Add form view in Emissions to define action** Before this commit, the user can only edit in multi_edit the emitted emissions and cannot see the form view of those records because the action does not have the form. This commit adds the form view in that action to make sure the user can open that view when he clicks on a record in the list view. Task [link](https://www.odoo.com/odoo/project.task/5219931) task-5219931
The Estonia VAT report now processes large export data in batches instead of repeating the same calculations line by line. This prevents timeouts on very large monthly datasets and makes XML export more reliable for businesses with high transaction volumes.
Original PR description
Behavior before: When exporting the VAT report to XML, each newly added line triggered a fresh _compute_expression_totals_for_each_column_group call. With large volumes of journal items, this…
Behavior before: When exporting the VAT report to XML, each newly added line triggered a fresh _compute_expression_totals_for_each_column_group call. With large volumes of journal items, this resulted in excessive repeated queries and, for big datasets, timeout errors. Behavior after: Introduced _custom_unfold_all_batch_data_generator, which batches the computation of expression totals for all lines. Now, journal items are resolved in bulk and mapped back to their respective moves, significantly reducing redundant queries. The VAT XML export completes successfully, even on months with very large datasets. Root cause: The Estonia VAT report was missing a batch unfold method (_custom_unfold_all_batch_data_generator). Without it, the system executed totals computation for each line individually instead of in batch, causing major performance degradation. Benchmark: | Period size (journal items) | Before patch | After patch | |----------------------------------------|----------------------|--------------------| | ~15k | 7s | 5s | | ~200k+ | Timeout error| 21s | opw-5046077 Forward-Port-Of: odoo/enterprise#97660 Forward-Port-Of: odoo/enterprise#95047
The Pakistan payroll localization has been updated with the latest 2026 tax bracket values. This helps businesses calculate employee payroll taxes according to the new rules and reduces the risk of incorrect payslips.
Original PR description
Tax brackets for pakistan localization has been updated to include the new values for 2026. Forward-Port-Of: odoo/enterprise#98636 Forward-Port-Of: odoo/enterprise#98345