Daily updates from Odoo
Monday, August 3, 2026
23 changes
2 changes
Enhancements to existing features
The Chilean F29 tax report has been optimized to calculate all report lines in one operation, making report generation faster and more reliable. The update also refines the six-column layout, tax credit and withholding calculations, and preserves upgrade compatibility for existing installations.
Original PR description
This commit optimizes the F29 report by using just one big query to compute the data for all the report lines at once. task-4329648 Forward-Port-Of: odoo/enterprise#106701
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#279925 Forward-Port-Of: odoo/odoo#278633
Original PR description
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#279925 Forward-Port-Of: odoo/odoo#278633
2 changes
Enhancements to existing features
The Chilean F29 tax report has been optimized to calculate all report lines in a single process, improving performance and reliability. The update also refines the six-column layout, tax credit handling, withholding sections, and submission flow so businesses can review and file tax information more accurately.
Original PR description
This commit optimizes the F29 report by using just one big query to compute the data for all the report lines at once. task-4329648 Forward-Port-Of: odoo/enterprise#106701
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#278633
Original PR description
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#278633
3 changes
Enhancements to existing features
The Chilean F29 tax report has been updated to use a clearer six-column layout and calculate all report lines more efficiently in one step. This improves performance, accuracy, and usability for companies preparing Chilean tax submissions.
Original PR description
This commit optimizes the F29 report by using just one big query to compute the data for all the report lines at once. task-4329648 Forward-Port-Of: odoo/enterprise#106701
Payroll runs now avoid repeating unnecessary work when preparing payslips, making large payroll batches complete much faster. This improves processing time for HR and payroll teams, especially when handling many employees at once, without changing payroll results.
Original PR description
Backport of https://github.com/odoo/enterprise/pull/124776 without the populate blueprint.
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#278633
Original PR description
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#278633
3 changes
Enhancements to existing features
The Chilean F29 tax report has been optimized to calculate all report lines in one pass, improving performance and reliability for users preparing tax declarations. The update also refines the six-column report layout, tax credit handling, withholding sections, and related submission flow to better match reporting needs.
Original PR description
This commit optimizes the F29 report by using just one big query to compute the data for all the report lines at once. task-4329648 Forward-Port-Of: odoo/enterprise#106701
Payment export files now include building numbers in structured addresses for ISO 20022 formats. This prepares businesses for upcoming banking requirements that make this information mandatory from November 2026.
Original PR description
This commit adds the <BldgNb> node in the iso20022 XML files, as it will be mandatory starting November 2026. Linked: https://github.com/odoo/odoo/pull/271855 task-6317758 Forward-Port-Of: odoo/enterprise#126377 Forward-Port-Of: odoo/enterprise#121674
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#278633
Original PR description
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#278633
2 changes
Enhancements to existing features
SEPA direct debit batch validation has been optimized to handle large payment batches more efficiently. Businesses processing hundreds or thousands of direct debit payments should see noticeably faster validation and notification steps, reducing delays and timeouts.
Original PR description
- Replace the `id:recordset` aggregation in `_get_expiry_date_per_mandate()` with `date:max` to compute the latest payment date directly in SQL. - Render `email_from` for all payments in batch and cache the computed authors by sender email to avoid repeated partner lookups during SDD pre-notification. This reduces ORM/cache overhead when validating large SEPA batches containing thousands of payments. Measured on a production-sized database: | metric | before | after | factor | |--------|-------:|------:|-------:| | `_get_expiry_date_per_mandate` (500 payments) | 564 ms | 111 ms | ~5x | | `_send_after_validation` notification (500 payments) | 92.9 s | 55.7 s | ~1.7x | | `_get_expiry_date_per_mandate` (1000 payments) | 890 ms | 178 ms | ~5x | | `_send_after_validation` notification (1000 payments) | timed out (>159 s) | 108.9 s | completed | OPW-6377340 Forward-Port-Of: odoo/enterprise#125439
Forward-Port-Of: odoo/odoo#278655
Original PR description
Forward-Port-Of: odoo/odoo#278655
8 changes
Enhancements to existing features
The Chilean F29 tax report has been optimized to calculate all report lines in a single process, improving performance and consistency. The update also refines the six-column report layout, tax calculations, withholding sections, and submission flow to better support Chilean tax reporting needs.
Original PR description
This commit optimizes the F29 report by using just one big query to compute the data for all the report lines at once. task-4329648 Forward-Port-Of: odoo/enterprise#106701
Spreadsheet date fields now use Odoo’s standard date picker in calendar buttons. This makes choosing dates in conditional formatting and data validation panels more consistent and easier for users.
Original PR description
DateTimePickerPopover from Odoo is now used in the CalendarButton component of spreadsheet (CF and DV side panels) Task: 5395190
Clicking an unlocated record in the map side panel now opens its form in a dialog instead of taking over the full screen. This keeps users in the map context while they review or edit the record, making Planning map workflows smoother.
Original PR description
Before this commit, clicking on an unlocated record opens the form in fullscreen, which leads to a loss of context. To avoid this behavior, now when a user clicks an unlocated record in the side panel, it's open the form record inside a dialog. Steps to reproduce: - Open Planning - Open the menu Maps > By Resource - Click on an unlocated item on the side panel. task-6369589
The Executive Summary report’s cash row now opens the new cashflow analysis, helping users move directly from headline cash figures to deeper cashflow details. Bank reconciliation labels were also clarified from deposits and payments to cash in and cash out, making the wording easier to understand.
Original PR description
This commit makes the cash row action, of the executive summary report, redirect to the newly added cashflow analysis. task-6373692
The appointment scheduling module was adjusted to stay aligned with related changes in the community version. This helps keep the enterprise feature consistent and easier to maintain, with minimal expected impact for users.
Original PR description
Adjust override definition based on community PR. task-6349421
New appointment types will now automatically use a standard email reminder sent 3 hours before the appointment. This removes manual default reminder configuration, simplifying setup while ensuring external participants still receive reminders.
Original PR description
Removing the possibility to choose the alarm(s) set by default on new appointment types. Using a field on the alarm model for that has been considered a bit weird and overkill. Simplifying things and alarm form by always setting the "email 3 hours" alarm as default for every new appointment types. Using an alarm of type "email" to make sure external users also get the reminder. Also removing the alarm value from the "_prepare_calendar_event_values" method on appointment type to let the compute handle the propagation. Task-6209598
VoIP activity scheduling was simplified behind the scenes so related contacts, leads, tickets, employees, tasks, sales orders, and subscriptions stay aligned more reliably. This reduces maintenance complexity and helps keep the scheduling experience consistent across VoIP-connected business apps.
Original PR description
… fields Remove all @api.onchange in favor of compute/inverse fields for MailActivitySchedule wizards across voip and voip_* modules. Key changes: · Rename res_model_field_selection → res_model_selection, use pure model name keys (e.g. "crm.lead") instead of "model/field" format · Rename _get_res_model_field_selection → _selection_res_model · Convert contact_id, lead_id, ticket_id, employee_id, task_id, sale_order_id, and subscription_id to compute + inverse fields · Replace all onchange logic with compute (default values) and inverse (res_ids sync) methods
Bank statement reconciliation now includes opening balance entries in the reconciliation chain, helping balances stay consistent from the start. The statement error experience has also been improved so accounting users can more easily understand and resolve issues.
Original PR description
This task improves the consistency of the bank statements by adding the opening balance move to the reconciliation chain as well as improving the UX of the statement errors Task ID: 5435413
1 change
Enhancements to existing features
The Chilean F29 tax report has been optimized to calculate all report lines in a single process, improving performance and reliability. The update also refines the six-column layout and related submission/reporting logic so businesses can review tax information more efficiently.
Original PR description
This commit optimizes the F29 report by using just one big query to compute the data for all the report lines at once. task-4329648
2 changes
Enhancements to existing features
Before this commit, contains() and its variants gave the client 3 seconds, and the bus helpers 2 seconds. The problem is that the first wait after openDiscuss pays for the whole mount, /mail/data and /discuss/channel/messages. Measured from openDiscuss resolving to the message being in the DOM: - 250 to 460ms on an idle machine; - 867 to 5258ms over 10 runs with the CPU throttled 4x, which is what a busy runbot looks like, 3 of the 10 over 2 seconds; - 1474 to 6912ms with the CPU throttl
Original PR description
Before this commit, contains() and its variants gave the client 3 seconds, and the bus helpers 2 seconds. The problem is that the first wait after openDiscuss pays for the whole mount, /mail/data and…
Before this commit, contains() and its variants gave the client 3 seconds, and the bus helpers 2 seconds. The problem is that the first wait after openDiscuss pays for the whole mount, /mail/data and /discuss/channel/messages. Measured from openDiscuss resolving to the message being in the DOM:
- 250 to 460ms on an idle machine;
- 867 to 5258ms over 10 runs with the CPU throttled 4x, which is what a
busy runbot looks like, 3 of the 10 over 2 seconds;
- 1474 to 6912ms with the CPU throttled 6x, 5 of 6 over 3 seconds.
"Reactions are ordered by id" fails 1 run in 60 at 4x for that reason.
Note that a longer timeout costs nothing on a green build: the timer is cleared as soon as the element is there, so it only delays the report of a test that was going to fail anyway.
This commit raises both to 10 seconds, the delay a tour step already gets in macro.js. test_js.py runs the presets with timeout=15000, so hoot fails the test itself at 15 seconds and 10 leaves room for the rest of the test.
This should also close most of the open runbot errors shaped like:
Failed to find x of "..." (Timeout of 3 seconds). Found 0 instead.
The element does show up in those, just after the wait gave up.
https://runbot.odoo.com/odoo/error/944188
web companion https://github.com/odoo/odoo/pull/279984Slovak entities are identified by three separate numbers: the company registry number (IČO), the income tax ID (DIČ) and the VAT number (IČ DPH). Odoo already stores IČO in company_registry and IČ DPH in vat, both on res.partner. DIČ is only defined on res.company, so it cannot be recorded for customers or vendors at all. This becomes a problem for the upcoming Peppol support in Slovakia. Slovak participants are identified on the network by EAS scheme 0245, which carries the DIČ. A field that
Original PR description
Slovak entities are identified by three separate numbers: the company registry number (IČO), the income tax ID (DIČ) and the VAT number (IČ DPH). Odoo already stores IČO in company_registry and IČ DPH in vat, both on res.partner. DIČ is only defined on res.company, so it cannot be recorded for customers or vendors at all. This becomes a problem for the upcoming Peppol support in Slovakia. Slovak participants are identified on the network by EAS scheme 0245, which carries the DIČ. A field that only exists on res.company therefore cannot be used for it, neither for the sender nor for the recipient. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr