Thursday, April 30, 2026
9 changes · 18.0
Resolved issues and error corrections
This update resolves a technical issue where long descriptions in related image fields caused website errors (502 errors). The fix truncates filenames to prevent exceeding server buffer limits, ensuring images load correctly for users. This improves the overall user experience and prevents potential website downtime.
Original PR description
## Problem: When generating a filename for a related studio image field, if the `name` is excessively long, the response header may exceed nginx's buffer size of 4kb, causing the request to fail. ## Solution: We will truncate the assigned filename for binary streams to the first 255 characters of whatever the assigned name would have been. ## Steps to reproduce (Runbot 18): 1. Open Studio editor on a Sales Order 2. Edit List View on Sale Order Lines 3. + Related Field, Product > Image, image widget 4. Make the description very long (close to 4000 characters) 5. Note the image will not load for that SOL, and the network tab shows a 502 error opw-5360952
This update resolves a minor issue in the invoice grouping test, ensuring that users can correctly ungroup lines even after an invoice has been imported, grouped, and posted. This enhancement improves the reliability of the testing process and ensures proper invoice handling within the system. This change is relevant for users managing invoices and tax calculations.
Original PR description
[FIX] account_edi_ubl_cii: fix group lines test Fix the test `test_import_invoice_group_lines_by_tax` to cover the case where an invoice was imported, grouped and posted, the next one will be grouped but the user still can ungroup lines up to 18.3, an other PR will be opened for 18.4+ no-task
This update resolves an issue where a delay in website menu transitions could cause navigation elements to behave unexpectedly. Specifically, a dropdown menu might close prematurely when combined with other actions. This ensures a smoother and more reliable user experience for website visitors.
Original PR description
[FIX] website: wait for extra menu to fully render before continuing When clicking on the extra menu item, a Bootstrap dropdown is displayed with a transition. Because this transition takes time, it can lead to undeterministic behavior especially in tests. For example, if a tour clicks on the extra menu item and then clicks on the "Site" button in the navbar, the dropdown transition may still be in progress. This can cause the "Site" dropdown to close prematurely. runbot-240955 Forward-Port-Of: odoo/odoo#261179
The customer list view was displaying incorrect totals due to a missing currency field. This update ensures accurate calculations for 'Total Due' and 'Total Overdue' columns, resolving the issue of empty dashes appearing in the totals section. This improves the reliability of financial reporting within the system.
Original PR description
In the partner list view, enabling the "Total Due" and "Total Overdue" columns results in empty aggregates (—) at the bottom of the list. Steps to reproduce: - Navigate to Accounting -> Customers -> Customers - Add columns 'Total Due' and 'Total Overdue'. - Check the computed totals. Issue: The totals displays dashes (—) instead of the numbers. Analysis: The web client list renderer requires a currency field to be present in the view to correctly format and display aggregate sums for monetary fields, otherwise empty dashes are shown as fallback. opw-6169513
This update fixes a rounding issue that occurred when converting quantities between the same units of measure. Specifically, a discrepancy in the invoice line quantity was causing it to be rounded incorrectly, leading to an inaccurate billed amount. This ensures consistent and correct quantity calculations during import processes.
Original PR description
This function is meant to compute the quantity from one UoM to another UoM, the rounding method parameter is meant to be used in that context. If both UoM are the same, it should use the usual…
This function is meant to compute the quantity from one UoM to another UoM, the rounding method parameter is meant to be used in that context. If both UoM are the same, it should use the usual HALF-UP rounding method. Explanations regarding the bug occurring in the related ticket: - The OCR was matching a purchase order for which one of the lines had a quantity of exactly 6. - When this PO was matched and imported on the vendor bill, the quantity of the related invoice line was rounded to 6.00000000000001. Under normal circumstances, the value would have stayed at 6 after rounding, but because the OCR runs within the context of a `_disable_discount_precision`, this kind of rounding discrepancy is possible. - The billed quantity is then computed based on the quantity on the invoice line, 6.00000000000001. As it is rounded upwards to the nearest two decimals places, the final value is 6.01 instead of the expected 6. opw-[6113387](https://www.odoo.com/odoo/my-support-tasks/6113387)
This update resolves an issue where discounts weren't correctly applied to vendor bills with products priced at $0.00, even when charges and allowances were present. The fix adjusts the discount calculation to accommodate zero prices, ensuring accurate totals and preventing discrepancies between the imported XML data and Odoo's calculations. This ensures proper financial reporting.
Original PR description
Allowances for Product with price as 0.00 aren't applied Step to reproduce: - import vendor bill from an XML having a product: - price: 0.00 - charge: any positive amount - allowance: any positive amount Current behavior: - allowance isn't apply resulting in a difference between the XML total and Odoo total Cause of the issue: Before this commit the discount was applied as a percent of price only. Having a price as 0 prevent doing so. opw-5499525 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update corrects a visual issue where the Tax ID (DIČ) was incorrectly duplicated on Czech customer invoices. The fix removes a redundant VAT entry from the invoice template, ensuring accurate and professional invoice presentation for Czech businesses. This improves the user experience and compliance with Czech regulations.
Original PR description
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in…
**Steps to reproduce:** * Install the **l10n_cz** module. * Create a customer invoice for a Czech company. * Print the invoice. **Observed behavior:** * The **Tax ID (DIČ)** is displayed **twice** in the invoice header in default layout. * **VAT** is displayed **twice** in the invoice headed in folder layout. **Cause:** * The `registry_vat_external_layout` template adds `company.vat` to `company_address_list`. * Base external layouts already include `company.vat` in the same list. * This results in duplicated DIČ rendering. **Fix:** * Remove the redundant VAT `<li>` from `registry_vat_external_layout`. * Keep only the Czech-specific **Company ID** (`company_registry`) entry, which is not provided by base layouts. Before: <img width="900" height="261" alt="image" src="https://github.com/user-attachments/assets/9b5b81aa-a79d-4c93-8109-3c97d79356f4" /> After: <img width="804" height="221" alt="image" src="https://github.com/user-attachments/assets/4b62eddc-6117-4f52-a8fb-2b03812aad8b" /> opw-6125766
This update resolves an error preventing certain users (specifically those without full project access) from viewing project details within the timesheet interface. The fix uses `sudo()` to grant necessary permissions, ensuring these users can access project information as intended. This improves usability for a wider range of users.
Original PR description
### Steps to reproduce: - Download 'Sales', 'Project', 'Employees', and 'Timesheets' apps - Create an employee and link them to a user that doesn't have any access rights except to 'Timesheets =…
### Steps to reproduce:
- Download 'Sales', 'Project', 'Employees', and 'Timesheets' apps
- Create an employee and link them to a user that doesn't have any access rights except to 'Timesheets = User:own timesheets'
- In Sales, create a service with the following specifications:
- 'Create on Order' is 'Project'
- 'Invoicing Policy' is 'Based on Timesheets'
- Create a new quotation that requests this service and click 'Confirm'
- In 'Project' > 'Configuration' > 'Projects', choose the newly created project and add a line that has the new employee in the 'Invoicing' tab
- Log in as that employee and go to 'Timesheets'
- Create a new entry for the newly created project
- Click the project's name
> Access Error: You are not allowed to access 'Collaborators in project shared'
(project.collaborator) records.
### Cause of Issue:
This happens because the user doesn't have access rights to the 'Project' app, hence they don't have access to `collaborator_ids` which are retrieved here. https://github.com/odoo/odoo/blob/3dfb2849acd899ccbf4048f2a15dff3c74aed96d/addons/project/models/project_project.py#L1113-L1120
### Fix:
Since an access to the 'Projects' app isn't necessary to view a project assigned to you, `sudo()` is necessary for hr_timesheet users without project access rights.
opw-6074833This update resolves a technical issue where a duplicate XML ID was being used for a key component of the Kenyan payroll configuration. This duplication caused potential errors and inconsistencies. The fix ensures data integrity and stability for payroll processing within the Odoo Enterprise system.
Original PR description
This commit avoids duplicated xml_id for `hr.salary.rule` model. In commit https://github.com/odoo/enterprise/commit/a7d51fa2ee8b1af0e807b3e9cb6e313d8885ff67, key `l10n_ke_employees_salary_pension_contribution` (sequence 72) was deleted and added key `l10n_ke_employees_salary_pension_contribution` (sequence 35). In commit https://github.com/odoo/enterprise/commit/c23243be9ca833acea7089defadbe0eaf869051d, key `l10n_ke_employees_salary_pension_contribution` (sequence 72) was added again. Forward-Port-Of: odoo/enterprise#85723