Daily updates from Odoo
Wednesday, November 26, 2025
7 changes · saas-18.2
Resolved issues and error corrections
This update resolves a visual glitch in the Gantt view when flexible working hours are enabled. Previously, the system incorrectly estimated working days, leading to random grayed-out days. The fix ensures all days are treated as working days, providing an accurate Gantt view representation.
Original PR description
To reproduce: ============= 1. Activate flexible working hours on the company calendar 2. Go to Project app -> all tasks 3. Switch to Gantt view notice that on the unassigned tasks row, two days are grayed out randomly Problem: ======== When flexible working hours is activated, the unavailability intervals are computed with an estimation: we take the total of working hours per week and we divide it by number of hours per day to get `N` days, so we estimate that from `now` to `now + N` days are working days, and the rest are non-working days. This is wrong because the working hours may not be evenly distributed over the week, and between today and tomorrow we get different unavailability intervals. Solution: ========= When flexible working hours is activated, we consider that all days are working days, so there is no unavailability interval to consider. opw-5257081 Forward-Port-Of: odoo/enterprise#100385
This update resolves an issue where the Fedex delivery method would fail when used with addresses in Hong Kong, specifically those with a 'Hong Kong Island' state. The fix ensures that the system correctly handles state code splitting, preventing a traceback and ensuring reliable delivery processing for this common address type. This improves the overall reliability of the shipping process.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Use Fedex as a Delivery Method 2. On the Website, select a shippable product. Confirm the cart. 3. Ship to a "Hong Kong" address, with "Hong Kong Island" as State. 4. Traceback is raised. Issue ----- Traceback is raised whenever the Fedex Delivery Method is applied to a HK address (be it shipper or receiver) Cause ----- When splitting a state code, there is no check in the `_parse_state_code` function that the result contains at least two elements. Example ----- For a "Hong Kong" address, with "Hong Kong Island" as State: ``` country_code = "HK" state_code = "HK" ``` The method tries to split `state_code` by its hyphen, which returns a single item list. Solution -------- 1. Check for the size of the post-split list before accessing the second item. opw-5257852 Forward-Port-Of: odoo/enterprise#99635
This update fixes an error in the Peru tax return (RVIE Sales 14.4) report that incorrectly included credit note amounts in the VAT columns. The fix ensures accurate reporting according to SUNAT regulations, aligning with how credit notes are handled in tax filings.
Original PR description
How to reproduce the issue: -With l10n_pe localization - Create an invoice for the previous period, generate a credit note for that invoice in the current period. - In the tax return with report VAT Report (RVIE Sales 14.4) (PE), download the txt file. - Columns 15(base_igv), 16(amount_discount), 17(tax_igv) and 18(tax_igv_discount) are wrong: the credit note is included in col 15 and 17 However, according to SUNAT spec the rule should be: - If the NC modifies a document issued in the same period: amounts must be reported in Col. 15 and 17 (with the negative sign already inherent in the NC). - If the NC modifies a document issued in previous periods: amounts must be reported in Col. 16 (Discount BI) and Col. 18 (Discount IGV/IPM) (values must be negative), and not in 15/17 opw-5094466 Forward-Port-Of: odoo/enterprise#96146
This update resolves an issue with how the 'account_no_followup' module interacts with Odoo's core systems. Specifically, it corrects a problem with installing and uninstalling hooks, ensuring smoother operation and preventing potential disruptions. This change enhances the stability and reliability of this module.
Original PR description
- unwrap Markup before applying regex substitution - word-bound search term Forward-Port-Of: odoo/enterprise#100350
This update fixes a bug where the Activity Menu's filtering options (Late, Today, Future) didn't correctly display Approval requests. The fix adds necessary filters to the Approvals search view, ensuring these options work consistently and align with other Odoo modules. This improves the user experience for managing approvals.
Original PR description
Issue: - In the Activity Menu, clicking "Late", "Today", or "Future" did not filter Approval requests and always returned all records. - The Approvals search view lacked the activity filters that these context defaults rely on. Fix: - Added the invisible activity filters (overdue, today, upcoming_all) to the Approvals search view. - Filters use `my_activity_date_deadline` to match Odoo's standard deadline-based activity filtering. Impact: - Activity Menu filtering now works correctly for Approvals and aligns with behavior in other modules. Task: 5261406 Forward-Port-Of: odoo/enterprise#100113 Forward-Port-Of: odoo/enterprise#99632
This update fixes an issue where archived users were incorrectly sending automated follow-up emails for invoices. The code has been updated to ensure that only active users are used as the sender of these emails, preventing misdirected notifications and improving data accuracy. This resolves a potential confusion for users regarding email communications.
Original PR description
### Issue: If an archived user is set as the Sales person on an invoice or as the followup responsible on a partner, it will be the one sending the automatic followups. ### Steps to reproduce: - Create a partner and an overdue invoice for this partner - Change the "Salesperson" of the invoice to another user - Archive this user - Accounting > Customer > Followup Reports - Click on the partner created earlier - Click the actions and "Process Automatic Follow-ups" - [17.0] Traceback - [18.0+] The sent message is from the user that was archived ### Cause: `_get_followup_responsible()` does not check is the users it returns are active or not. ### Solution: Create an iterable with all the possibilities and iterate on it to return the first active user in the list. Fallback on `self.env.user`. opw-5153159 Forward-Port-Of: odoo/enterprise#100324 Forward-Port-Of: odoo/enterprise#98807
This update ensures the Sign app meets legal requirements for U.S. companies by notifying users when a sender is based in the U.S. and offering the option to request a paper copy of signed documents. This compliance update addresses a previous gap and strengthens our legal protections.
Original PR description
Previously, the Sign app did not comply with the ESIGN Act. It now notifies users when the sender company is U.S.-based that they can request a paper copy of a signed document, ensuring ESIGN Act compliance. task-5166918 Forward-Port-Of: odoo/enterprise#100439 Forward-Port-Of: odoo/enterprise#97163