Daily updates from Odoo
Thursday, May 28, 2026
16 changes · master
Resolved issues and error corrections
This update fixes an issue where long text in m2m tags avatar fields would overflow and get cut off. By adding a 'truncate' class, text is now automatically shortened with an ellipsis when it exceeds the available space, creating a cleaner and more readable display.
Original PR description
Currently, the m2m tags avatar field does not have the truncate class for the spans. When the text is too long, it overflows and the rest is cut off. This commit adds the truncate class to the spans of the m2m tags so that the text is truncated with an ellipsis when it exceeds the available space. task-4809319 https://github.com/odoo/odoo/pull/256817 Forward-Port-Of: odoo/enterprise#118211 Forward-Port-Of: odoo/enterprise#112590
This update corrects a bug that allowed portal users to unintentionally delete documents they shouldn't have. The fix ensures that portal users can only delete their own records, preventing data loss during the standard cron archiving process. This improves data integrity and aligns with intended user permissions.
Original PR description
Reproduce: with rpc call as portal user, you can archive documents you have access to. This is not desired as this may lead to records being deleted when the cron collects the trash, but we only wanted to support portal users deleting only records they own. What we did when calling toggle_active should be done for all calls to `write` with `active`. It also removes the need for `_raise_if_unauthorized_archive` and `_unlink_except_unauthorized`. Task-6205627 Forward-Port-Of: odoo/enterprise#118194 Forward-Port-Of: odoo/enterprise#116886
This update resolves a test failure related to importing partner and bank account data for Italian reporting. The change restores a necessary data state within the test file, ensuring the tests now pass correctly. This prevents disruptions to the Italian reporting functionality.
Original PR description
The related PR brings a data change in a test file that is used here. We bring back the state of that data in the test class, so that the tests don't fail anymore. Community PR: odoo/odoo#254505 Task [link](https://www.odoo.com/odoo/project.task/6046189) task-6046189 Forward-Port-Of: odoo/enterprise#117514 Forward-Port-Of: odoo/enterprise#112794
This update resolves an issue where report totals were incorrectly duplicated in headers when comparison mode was enabled. Now, values only appear in the line item when the section is expanded, improving the clarity and accuracy of financial reports. This ensures consistent and reliable reporting.
Original PR description
Right now when you expland a section in comparison mode like in the Balance Sheet and P&L, if "Add total below sections" is enabled in the report then it shows in both the header and totals sections. This commit clears up that by only showing the value in the line when it's unexpanded, but once it is expanded it is hidden. task-6190986 Forward-Port-Of: odoo/enterprise#118413 Forward-Port-Of: odoo/enterprise#116479
This update resolves an issue where invoices with excessively long item descriptions were being rejected by the eTIMS system. The fix truncates the description to meet the 200-character limit specified by eTIMS, ensuring successful invoice submission and compliance. This prevents delays in customs processing.
Original PR description
The eTIMs specification limit the `itemNm` to 200 characters, so truncate the invoice line description to that limit to ensure that the invoice can be correctly submitted eTIMS server. Otherwise it will be rejected with: ``` Error sending to the KRA: - Request parameter error[<ItemList><itemNm>: length must be between 0 and 200] ``` Task-Id: 5220129 Forward-Port-Of: odoo/enterprise#118152
This update resolves a validation error that occurred when freezing or converting spreadsheets with group-based access. The fix ensures group permissions are correctly applied during these operations, preventing failures and improving the spreadsheet sharing process. This enhances the reliability of our enterprise document management.
Original PR description
Current behavior before PR: - Freezing a spreadsheet or converting it to XLSX with group-based access in the sharing list triggered a validation error. - The group_id was not properly propagated when creating the new document, resulting in invalid access records and failed operations. Desired behavior after PR is merged: - Group-based access is correctly handled and propagated to the newly created document during freeze and conversion. - This prevents the validation error and ensures the operation completes successfully. Note: - Group access can still be modified independently after sharing. Since both flows are independent, this commit does not enforce full consistency but removes the unnecessary validation error. Task: [6146248](https://www.odoo.com/odoo/project/2328/tasks/6146248) Forward-Port-Of: odoo/enterprise#115404
This update fixes an issue where users could order unlimited quantities of rental products through the website. The change ensures the system limits product availability based on rental schedules, preventing over-ordering and ensuring accurate resource allocation. This improves the reliability of rental orders.
Original PR description
It is possible to order as many products as we want of a rental product that synchronizes shifts depending on a specific service Steps to reproduce: 1. Install website_sale_renting_planning module 2.…
It is possible to order as many products as we want of a rental product that synchronizes shifts depending on a specific service Steps to reproduce: 1. Install website_sale_renting_planning module 2. Go to Rental > Products and create a new product "test" with Sales enabled, Product Type "Service", Plan Services enabled as "Developer", in the Sales tab, enable Is Published and in the Rental prices tab, create a pricing for Daily period 3. In the General Information tab, click on the internal link to "Developer" 4. Enable Sync Shifts and Rental Orders 5. Go to the eCommerce website and search for product "test" 6. You can add as many quantity of the product to your cart Issue: We don't limit the maximum quantity of the product Solution: Look through the renting availabilities of the product and set the maximum quantity to the minimum of the availabilities relevant to the renting dates selected opw-6009928 Forward-Port-Of: odoo/enterprise#118332 Forward-Port-Of: odoo/enterprise#111793
This update simplifies the Belgian payslip by removing employment bonus rows when the calculated total is zero. Previously, these rows were displayed even with zero values, which could confuse employees. This change improves the clarity and user experience of the payslip.
Original PR description
Currently, employment bonus salary rules (EmpBonus.A, EmpBonus.B, EmpBonus.1) are displayed on the printed Belgian payslip even when their calculated totals equal zero. This can be confusing or uninteresting for employees. This commit updates the report template to conditionally render these specific bonus rows only if their final total is non-zero. Task: 6189602
This update removes a previous requirement to immediately provide a bank account number when adding a bank journal through the Odoofin iframe. Previously, this forced users to complete a setup wizard, even if they planned to sync the account number later. Now, the system automatically creates the bank journal if all required data is available, simplifying the process for users.
Original PR description
Previously, when adding a bank journal via the Odoofin iframe, the bank account number was strictly required. Starting from version 19.2, bank journals can no longer be created from the standard form view. This change forces users to provide an account number immediately via the iframe, even if they intended to synchronize it later. While the form view restriction is a 19.2 change, this improvement is applied to 17.0 because the Odoofin iframe is shared across versions. This is resolved across both environments with the: - Odoofin commit: The account number requirement is removed from the iframe. - Enterprise commit: If the account number is missing, the system no longer returns a setup wizard. It creates the bank directly if all required data is available; otherwise, it creates the journal without an account number. task-6072798 OdooFin PR: https://github.com/odoo/odoofin/pull/539 Forward-Port-Of: odoo/enterprise#112506
This update fixes an issue where the quantity to produce was incorrectly reset to zero after generating a lot from a work order. The fix ensures the quantity remains as intended, preventing confusion and ensuring accurate production tracking. This improves the reliability of the manufacturing process.
Original PR description
Step to reproduce: - Create a MO with a lot tracked product (enable it in settings) and a work center - Put the quantity to produce to more than 1 - Confirm the MO - Use the smart button to go to the Shop floor - Click on the three dots and click on "Register production / serial" - Put the quantity to produce to 1 and click on "Generate lot" - The quantity to produce is updated to 0, which is not correct, it should stay to 1 Cause: The quantity to produce was not saved before generating the lot, so after the reload triggered by the generation of the lot, the quantity to produce was reset to the last saved value, which is 0. Task-6158833 Forward-Port-Of: odoo/enterprise#118355 Forward-Port-Of: odoo/enterprise#117067
This update fixes a technical issue impacting the GSTR2B report generated in India. The report now correctly identifies non-GST supplies, ensuring accurate reporting and compliance with tax regulations. This change improves the reliability of the report data.
Original PR description
Before this commit, the domain of the non-GST supplies report line in GSTR2B used the GSTR section `purchase_nongst`, while the actual section key is `purchase_non_gst_supplies`. This commit fixes the domain by using the correct GSTR section key. task-6239820 Forward-Port-Of: odoo/enterprise#118313
This update prevents a crash in the sign template process when the template body is unloaded. The issue stemmed from a change in how Odoo handles props, specifically related to Owl 3. This fix ensures the template remains stable and reliable.
Original PR description
Attempting to assign `this.props.iframe = null` during the `onWillUnmount` hook of `SignTemplateBody` causes a strict mode crash: "TypeError: Cannot set property iframe of [object Object] which has only a getter". I think its due to the owl 3 new changes on props that makes them readonly proxys task: 6253728
This update fixes an issue where CodaBox statements were sometimes incorrectly routed to the wrong bank journal due to currency differences. The system now prioritizes journals with explicit currency IDs, ensuring statements are accurately assigned to the correct currency-specific account. This improves the reliability of financial data integration with CodaBox.
Original PR description
When several journals share the same IBAN but use different currencies, a CODA could land on the wrong journal instead of the currency-specific one. Split the lookup in two passes: first a journal with an explicit currency_id matching the CODA, then fall back to the no-currency journal (qualified by the company currency). Steps to reproduce: - Create 2 bank journals sharing the same IBAN; one without currency and one with USD. - Setup CodaBox connection and retrieve USD statements. - Before this fix: may land on the EUR journal. opw-6048931 Forward-Port-Of: odoo/enterprise#117711 Forward-Port-Of: odoo/enterprise#114590
This update resolves an issue where constant fields within signing documents would become empty during the signing process, leading to signing failures. The fix ensures that default field values are preserved when auto-field calculations result in empty strings, preventing the 'Some required items are not filled' error.
Original PR description
Version: - saas-18.4 Steps to reproduce: - Create sign template. - Add a sign item with read only true and linked model and auto_value field set. - Send document for signing. - Try to sign the document. Issue: - Signing fails with "Some required items are not filled". - Constant readonly fields become empty during signing flow. Cause: - In `_populate_constant_items()`, the default field value was always replaced by `_get_auto_field_value()`. - When no reference document was set, `_get_auto_field_value() `returned an empty string. - This caused an empty value to be stored in `sign.request.item.value`. Solution: - Keep the default field value when auto-field resolution returns an empty string. - Only replace the value when a valid auto-field value is found. task-6229776 Forward-Port-Of: odoo/enterprise#118308 Forward-Port-Of: odoo/enterprise#117880
This update fixes a technical error that occurred when users reviewed eMPF contribution reports in the Hong Kong module. Specifically, the system was attempting to access employee information that wasn't available, causing a system error. The fix ensures a user-friendly error message is displayed, guiding users to correctly populate the necessary employee details.
Original PR description
Currently, an error occurs when the user checks the report line errors. **Steps to Reproduce:** - Install the `l10n_hk_hr_payroll_empf` module with demo data. - Switch to the `Hong Kong` company. -…
Currently, an error occurs when the user checks the report line errors. **Steps to Reproduce:** - Install the `l10n_hk_hr_payroll_empf` module with demo data. - Switch to the `Hong Kong` company. - Go to `Payroll` > `Reporting` > `Hong Kong` > `eMPF Contributions`. - Create a record by setting the `Scheme` and adding a `contribution line`. - Ensure that the employee and payslip fields are empty in the contribution line. - Click on `Validate`, then click on the `error icon` on the report line. `ValueError: Expected singleton: hr.version()` This error occurs when the user manually adds a line and checks the errors on it.. The system attempts to open the employee record from the version [1], but the version is not set [2] on the line because there is no employee. And it raise the error [3]. This commit ensures that when checking errors, if the version is not set on the line, a UserError is raised, prompting the user to set the employee on the line. It also corrects a typo in the status message. [1]- https://github.com/odoo/enterprise/blob/7889b2b0b3d13b32e6e36e616e20379d8c8f8812/l10n_hk_hr_payroll_empf/model/l10n_hk_empf_contribution_report_line.py#L219 [2]- https://github.com/odoo/enterprise/blob/7889b2b0b3d13b32e6e36e616e20379d8c8f8812/l10n_hk_hr_payroll_empf/model/l10n_hk_empf_contribution_report_line.py#L142-L156 [3]: https://github.com/odoo/odoo/blob/98855c6b70df24500babe6027109aa9e17431ec1/addons/hr/models/hr_version.py#L609-L611 Forward-Port-Of: odoo/enterprise#118414 Forward-Port-Of: odoo/enterprise#116607
This update addresses a warning message displayed in the Odoo Enterprise application related to the DMFA certificate. Closing the browser tab triggered this warning, which has now been resolved. This ensures a smoother user experience for employees using the payroll module.
Original PR description
task-6233555