Thursday, April 23, 2026
19 changes · 18.0
Resolved issues and error corrections
This update corrects a technical issue in the French localization of Odoo. A tax tag ('17') was incorrectly applied to service taxes, specifically the '8.5% EU Service' tax. This change ensures that tax tags are accurately assigned to goods and services, aligning with French tax regulations.
Original PR description
**Issue:** In French localization, a tax tag (i.e. "17") was wrongly added on "8.5% EU Service" tax. This tax tag should only be applied on taxes for goods, not service. opw-5871998 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#260641
This update corrects a display issue where the 'Update Payment' button remained visible after processing batch payments for Mexican CFDI invoices. The fix addresses a technical discrepancy in how UUIDs were compared, ensuring the button is correctly hidden when a batch payment is involved. This prevents confusion and ensures accurate payment reconciliation.
Original PR description
backport of f41900a4353ea867b08f71ed64f8702a13411bac - Create one invoice with the PUE payment policy. - Create another invoice with the PDD payment policy. - Send both invoices to the CFDI. - Create a batch payment for both and reconcile. - Click on Update Payment on one of the invoices. The Update Payment button does not disappear. In the method _l10n_mx_edi_cfdi_invoice_get_payments_diff, we compare the current UUIDs and the previous UUIDs to determine if the button should be shown. However, when there is a batch payment, the current UUID list includes the UUIDs of all invoices in the batch, including the PUE payment (which should normally be filtered out by the continue). The previous UUID list includes only the UUID of the PDD payment. opw-6055781 Forward-Port-Of: odoo/enterprise#114440
This update resolves compatibility issues with Python 3.14 and the Ubuntu Resolute operating system. It includes necessary code changes to ensure continued functionality and stability of Odoo, primarily related to internal Python libraries and data handling.
Original PR description
Forward-Port-Of: odoo/odoo#258568
This change updates the email address used to send automated communications related to our IAP (In-App Purchase) service from iap@odoo.com to noreply@odoo.com. This improves email deliverability and reduces the likelihood of clients responding to automated messages, streamlining our communication process.
Original PR description
The current mail address is iap@odoo.com so some client respond to the automatic mail. This fix change it to noreply@odoo.com Task-6086556 Forward-Port-Of: odoo/odoo#259691
This change updates the email address used to send automated support responses from iap@odoo.com to noreply@odoo.com. This improves email deliverability and reduces the likelihood of responses being sent to incorrect addresses, streamlining our support process.
Original PR description
The current mail address is iap@odoo.com so some client respond to the automatic mail. This fix change it to noreply@odoo.com Task-6086556 Forward-Port-Of: odoo/enterprise#114097
This update fixes an issue where the DSO (Days Sales Outstanding) data on the Invoice Dashboard was misaligned. The problem stemmed from a discrepancy in how fiscal years were handled. This change ensures accurate DSO reporting for improved financial insights.
Original PR description
Invoice dashboard data, specifically DSO, was incorrectly aligned due to a mismatch in the fiscal year structure. Task-6049887
This update fixes an issue where the DSO (Days Sales Outstanding) data on the Invoice Dashboard was misaligned. The problem stemmed from a discrepancy in how fiscal years were handled. This change ensures accurate DSO reporting, providing more reliable insights into accounts receivable performance.
Original PR description
Invoice dashboard data, specifically DSO, was incorrectly aligned due to a mismatch in the fiscal year structure. Task-6049887
This update corrects a display issue in the WhatsApp event template within the Odoo Enterprise system. Previously, users would encounter an 'access denied' error when creating WhatsApp templates linked to event registrations. The fix involves updating the demo data to ensure the template status is correctly set to 'approved', resolving this display problem.
Original PR description
This fix is changing the demo data for the fix on https://github.com/odoo/odoo/pull/259683 Original Issue: 1) User goes to Event.event Form -> communication tab -> add line 2) Select whatsapp -> type something -> create and edit -> create new template with any model event.registration -> save ( all the way including the event form) 3) reload page -> whatsapp event.mail displays 'User does not have access to this record'. Issue with the demo data: To be a valid event template it needs be of model 'event.registration', and 'status = "approved"'. Otherwise it displays 'User does not have access to this record' in the event.mail.template.template_ref field. This fixes the readability of the demo data inside the UI. Fix: add '<field name='status'>approved</field>' to the Whatsapp template demo data opw-6037488
This update fixes an issue where upgrade scripts within Odoo modules weren't properly organized, leading to logging problems and unhandled warnings. Now, upgrade scripts are correctly associated with the core Odoo upgrade system, resulting in cleaner logging and improved error handling during module updates. This ensures smoother and more reliable Odoo upgrades.
Original PR description
The resulting modules should be bound to the `odoo.upgrade` package. Side effects: - the loggers created inside the upgrade scripts are now in the `odoo.upgrade` namespace. - warnings raised by bad usages in upgrade scripts are now correctly filtered. Forward-Port-Of: odoo/odoo#258025
This update resolves a bug where multiple users were incorrectly added to WhatsApp notification channels after a message exchange. The fix ensures that only the user who initiated the conversation is added, preventing unnecessary notifications and channel clutter. This improves the user experience and reduces potential confusion.
Original PR description
…ser sends a template message when creating discussion channels after the partner sends a message back. Issue: Currently, When there are multiple users listed under whatsapp.account.notify_user_ids no matter what, when creating a new discuss channel it will add all users in that list. Even when a single user inside that list initiated the conversation with a template. To replicate in runbot add multiple users to whatsapp.account.notify_user_ids, make a partner with a number, send a template, then have the partner send a message back. All users will be notified and added to the channel. There was an unformatted number being passed to a function that required the formatted number. This caused _find_active_channel to find 0 active channels. Fix: Format the number received from the message values inside WhatsAppAccount._process_messages opw-5349138
This update resolves an issue where the 'In a Budget' filter in the Odoo Enterprise accounting module wasn't accurately displaying budget records. The fix ensures the filter correctly identifies records associated with a valid budget analytic ID, improving the accuracy of budget reporting. This ensures users see the correct budget records when using this filter.
Original PR description
"In a budget" Filter is expected to show records with a related budget i.e. `'budget_analytic_id' != False`.
This update fixes an issue where the PDF sign panel was overlapping important elements like the 'Next' button, making it difficult to use. The panel has been moved to the right side of the viewer, improving the overall sign process and user experience. This ensures users can easily navigate the sign workflow.
Original PR description
The PDF sidebar is left-aligned, causing the panel to overlap sign guidance elements like the “Next” button when opened. This commit moves the sidebar to the right of the PDF viewer. task-6065586 Forward-Port-Of: odoo/enterprise#112722
This update fixes a visual issue in the Timesheets section of project shared views. Previously, the Time Remaining value wasn't highlighted in red when the value was negative, making it difficult to quickly identify over-estimated time. This change ensures the value is correctly colored red for negative values, improving clarity and accuracy.
Original PR description
**Steps to reproduce:** - Open project shared form view. - Go to the Timesheets tab. - Observe the Time Remaining value. **Issue:** - The Time Remaining label is red properly but its value does not becomes red even when the value is negative. **Fix:** - Adjusted the logic to ensure the Time Remaining value is highlighted in red when value is negative **Task-id: 5404009** Forward-Port-Of: odoo/odoo#240489
This update corrects a visual bug where the 'Time Remaining' value in project timesheets wasn't consistently displayed in red, even when the value was negative. The fix ensures that both the label and the numerical value are correctly highlighted in red for negative time remaining, improving clarity for users.
Original PR description
**Steps to reproduce:** - Open project shared form view. - Go to the Timesheets tab. - Observe the Time Remaining value. **Issue:** - The Time Remaining label is red properly but its value does not becomes red even when the value is negative. **Fix:** In hr_timesheet, the remaining_hours field has a decoration-danger applied In sale_timesheet_enterprise, this field is overridden as portal_remaining_hours So, Added the corresponding decoration-danger on portal_remaining_hours. task-5404009 Forward-Port-Of: odoo/enterprise#113632
This update resolves an issue where swiping between settings on mobile devices would sometimes cause a blank page. The fix ensures the settings page fully loads before transitioning, providing a smoother and more reliable user experience.
Original PR description
Before this commit, swiping between settings for different apps on mobile devices would often result in a blank page. This occurred because the swipe method did not wait for the target page to render completely before completing the transition. This commit ensures the swipe action waits for the rendering process, preventing the blank state during app navigation. Forward-Port-Of: odoo/odoo#260563
A bug was preventing portal users from accessing timesheets. This update corrects a technical issue where the 'View Timesheets' button was incorrectly displayed to users without the necessary permissions. This ensures all users are presented with the correct access controls.
Original PR description
**Issue:** The 'View Timesheets' button is shown to the portal user even though they don’t have access to view timesheets. Currently, we have added _sale_order_get_page_view_values in the sale module, which is overridden in sale_timesheet. We are using it here. task-4745519 Forward-Port-Of: odoo/enterprise#113481
This update ensures that the TicketBai QR code is correctly generated and displayed when a paid order is reprinted after reloading the POS. Previously, the QR code was missing when historical orders were loaded. This fix improves the accuracy of order printing and streamlines the process for users.
Original PR description
When printing a paid order after reloading the POS, the TicketBai QR code was missing. The QR source (l10n_es_pos_tbai_qrsrc) was only set during _postPushOrderResolve after payment, but not when loading historical orders from the backend. opw-6068076 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a problem where the GSTR vendor invoice fetching cron job failed in multi-company Odoo environments. The fix ensures the cron job retrieves invoices from the correct company within each move, preventing errors and improving data accuracy. This improves reporting reliability.
Original PR description
In a multi-company context, the cron might be run with a user having a default company that is not the same as the target moves companies, maybe raising a `RedirectionWarning` (if the current company is not fully set-up). This commit ensure to fetch the invoice in move's target company. opw-5225553
This update fixes a minor display issue in the Helpdesk dashboard. Previously, the 7-day average rating was shown as a percentage, which was less intuitive for users. Now, the rating is displayed as a score out of 5, making it easier to understand performance.
Original PR description
Steps to reproduce: - Open the Helpdesk app with demo data. - Check the "My Performance" section of the dashboard. Current behavior: - "Avg Last 7 days" is shown as "3.50 %". Expected behavior: - "Avg Last 7 days" is shown as "3.5 / 5". Issue: The backend already computes `7days.rating` as a 0-to-5 average, but the frontend dashboard template appends a "%" suffix. Solution: Update the Helpdesk dashboard template to display the 7-day average as a score out of 5 instead of as a percentage. task-5998903