Daily updates from Odoo
Tuesday, June 3, 2025
18 changes · master
Enhancements to existing features
This update improves how several Odoo apps handle files by making sure opened files are properly closed after use. This helps reduce resource leaks and supports more stable performance, especially in systems processing many documents or integrations.
Original PR description
odoo/odoo#211823
Payroll administrators can now translate the names of payslip input types. This improves localization for companies operating in multiple languages, helping payroll screens and records appear in each user's preferred language.
Original PR description
In this PR, we enabled the translate setting for the name attribute within the hr_payslip_input_type model. Before:  After:    This work is related to the task: [4840358](https://www.odoo.com/odoo/project/1251/tasks/4840358).
Barcode-related tools now load a supporting barcode/reporting component only when it is actually needed. This reduces unnecessary startup work and helps keep barcode operations lighter without changing user-facing behavior.
Original PR description
Delay importing of reportlab until it is needed. Use the functions exposed in odoo.tools.barcode for rendering. odoo/odoo#212406
Resolved issues and error corrections
The document unlock confirmation dialog now shows the name of the person who locked the document instead of displaying “undefined.” This makes the prompt clearer for users and helps them make informed decisions when unlocking documents.
Original PR description
Steps to reproduce =================== - Lock a document. - Attempt to unlock the document. - Notice that the name of the user who locked the document is missing in the confirmation dialog; instead, it shows `undefined`. Technical ========== Recently, here: https://github.com/odoo/odoo/pull/205486/commits/70224f3ae75b65516f87aa3a1c6f8c988926760a, We replaced the many2one value from an array to an object, so the properties at indices 0 and 1 are no longer available. This PR adapts the above changes by using the object keys instead of the array's index. Task-4821976
Code cleanup and technical improvements
The pull request simplifies automated test scripts by removing now-unnecessary waiting instructions. This keeps internal test maintenance lighter without changing product behavior for users.
Original PR description
From d69767c59cd9600, waitFor trigger is the natural behavior of trigger searching in tours. There is no longer a need to explicitly use waitFor in run functions if it is a condition for proceeding to the next step.
Miscellaneous changes
When selecting an attribute value in the Rental Search snippet, the generated URL incorrectly uses the `attrib` parameter. However, the `/shop` route expects the parameter to be named `attribute_value`. As a result, the filter is not applied, and the search results are not correctly filtered. This fix ensures consistency between the snippet and the `/shop` route by replacing `attrib` with `attribute_value`, so the attribute filter works as expected. The change improves the user experience
Original PR description
When selecting an attribute value in the Rental Search snippet, the generated URL incorrectly uses the `attrib` parameter. However, the `/shop` route expects the parameter to be named `attribute_value`. As a result, the filter is not applied, and the search results are not correctly filtered. This fix ensures consistency between the snippet and the `/shop` route by replacing `attrib` with `attribute_value`, so the attribute filter works as expected. The change improves the user experience by ensuring that search filters behave consistently across the website. Steps to reproduce: - Add the "Rental Search" snippet to a website page. - Configure it by selecting an attribute value. - Observe the resulting URL using `attrib`, which fails to filter results on the `/shop` page. Forward-Port-Of: odoo/enterprise#86792
Forward-Port-Of: odoo/enterprise#86749
Original PR description
Forward-Port-Of: odoo/enterprise#86749
Related to https://github.com/odoo/odoo/pull/211714 Forward-Port-Of: odoo/enterprise#86467 Forward-Port-Of: odoo/enterprise#86440
Original PR description
Related to https://github.com/odoo/odoo/pull/211714 Forward-Port-Of: odoo/enterprise#86467 Forward-Port-Of: odoo/enterprise#86440
Fix the possibility to enter an empty document name when editing a file or folder name from the side panel. If the name is empty, a danger notification should be displayed and the previous name should be restored. Task-4794447 Forward-Port-Of: odoo/enterprise#85500
Original PR description
Fix the possibility to enter an empty document name when editing a file or folder name from the side panel. If the name is empty, a danger notification should be displayed and the previous name should be restored. Task-4794447 Forward-Port-Of: odoo/enterprise#85500
Before this commit: - Select any document. - Click the SERVER ACTIONS cog menu. - You will find the menus --> `Export` and `Insert in spreadsheet` Issue: - These are not required here. Reason: - A recent PR (https://github.com/odoo/enterprise/pull/77329) changed how certain server actions are displayed when a document is selected. Fix: - We override the function returning the Dropdown Items to display and simply pop the ones we don't need. Task-4743029 Forward-Port-Of: odoo/en
Original PR description
Before this commit: - Select any document. - Click the SERVER ACTIONS cog menu. - You will find the menus --> `Export` and `Insert in spreadsheet` Issue: - These are not required here. Reason: - A recent PR (https://github.com/odoo/enterprise/pull/77329) changed how certain server actions are displayed when a document is selected. Fix: - We override the function returning the Dropdown Items to display and simply pop the ones we don't need. Task-4743029 Forward-Port-Of: odoo/enterprise#84519
…n values. A small error was been made in https://github.com/odoo/enterprise/pull/76079 (`_search_last_access_date_group`): the SQL string contains a %s without an argument, resulting in a "TypeError: not enough arguments for format string." Fix it. A test will be added later to the master branch in a later PR that found the issue https://github.com/odoo/odoo/pull/133224. https://github.com/odoo/odoo/pull/212115 Forward-Port-Of: odoo/enterprise#86626
Original PR description
…n values. A small error was been made in https://github.com/odoo/enterprise/pull/76079 (`_search_last_access_date_group`): the SQL string contains a %s without an argument, resulting in a "TypeError: not enough arguments for format string." Fix it. A test will be added later to the master branch in a later PR that found the issue https://github.com/odoo/odoo/pull/133224. https://github.com/odoo/odoo/pull/212115 Forward-Port-Of: odoo/enterprise#86626
Currently, An Error occurs on removing the **Date To** or **Date From** value from a payslip's period. **Steps to Reproduce** 1) Install **l10n_id_hr_payroll module**. 2) Create a new **Pay-Slip**. 3) Remove **Date** from **Period** **Error:** `AttributeError: 'bool' object has no attribute 'month'` **Root Cause:** The `_compute_l10n_id_include_pkp_ptkp` method at [1] assumes that `date_to` and `contract_id.date_end` are always set and valid. If either of them is missing (False), a
Original PR description
Currently, An Error occurs on removing the **Date To** or **Date From** value from a payslip's period. **Steps to Reproduce** 1) Install **l10n_id_hr_payroll module**. 2) Create a new **Pay-Slip**.…
Currently, An Error occurs on removing the **Date To** or **Date From** value from a payslip's period. **Steps to Reproduce** 1) Install **l10n_id_hr_payroll module**. 2) Create a new **Pay-Slip**. 3) Remove **Date** from **Period** **Error:** `AttributeError: 'bool' object has no attribute 'month'` **Root Cause:** The `_compute_l10n_id_include_pkp_ptkp` method at [1] assumes that `date_to` and `contract_id.date_end` are always set and valid. If either of them is missing (False), accessing `.month` or `.year` causes an error. [1] - https://github.com/odoo/enterprise/blob/34aa0ffb82c1bd7c90b4cb161ea515f2cad8e65f/l10n_id_hr_payroll/models/hr_payslip.py#L87 **Solution:** This commit prevents the computation from failing when `slip.date_to` and `slip.contract_id.date_end` fields are unset by adding a conditional check to ensure that both fields are valid date objects before accessing their `.month` and `.year` attributes. sentry-6608982173 Forward-Port-Of: odoo/enterprise#85701
## opw-4812933 feedback > When attachments were exported from Studio Export, they got exported in descending order by id (from highest id to lowest id). This caused a problem during import: if an attachment referred to an earlier one using a "Resource ID" (meaning it depended on a previously created attachment), the dependent attachment would try to import before the one it needed. This led to an error because the referenced attachment didn't exist yet. ## found issue The exported data
Original PR description
## opw-4812933 feedback > When attachments were exported from Studio Export, they got exported in descending order by id (from highest id to lowest id). This caused a problem during import: if an attachment referred to an earlier one using a "Resource ID" (meaning it depended on a previously created attachment), the dependent attachment would try to import before the one it needed. This led to an error because the referenced attachment didn't exist yet. ## found issue The exported data is sorted to ensure import order is correct, but for inter-record dependencies on a same model many2one_reference fields are not taken into account. This PR fixes that. Also while analyzing this issue another small issue was spotted regarding base.automation.url field. See commits. Forward-Port-Of: odoo/enterprise#86407 Forward-Port-Of: odoo/enterprise#86204
Before this commit, when the user creates more than one fsm project, the default fsm project selected once a fsm task is created if the one with the lowest sequence and lowest id which could be confusing for the user since the default order displayed in the list view of projects is `sequence, name, id`. This commit makes sure the default fsm project fetched is the first one displayed in the list view of projects. opw-4791468 Forward-Port-Of: odoo/enterprise#86554
Original PR description
Before this commit, when the user creates more than one fsm project, the default fsm project selected once a fsm task is created if the one with the lowest sequence and lowest id which could be confusing for the user since the default order displayed in the list view of projects is `sequence, name, id`. This commit makes sure the default fsm project fetched is the first one displayed in the list view of projects. opw-4791468 Forward-Port-Of: odoo/enterprise#86554
The current implementation to handle the rate for multi-currency entries in CAMT creates problems when fetching the source rate from the file: the source rate can be taken from the SrcCcy or the TrgtCcy node, which should be compared with the source currency and target currency respectively. It is not done that way and is too restrictive (when the SrcCcy is found, it is always compared to the target currency, which leads to an incorrect transaction amount). Moreover, when the currency convers
Original PR description
The current implementation to handle the rate for multi-currency entries in CAMT creates problems when fetching the source rate from the file: the source rate can be taken from the SrcCcy or the TrgtCcy node, which should be compared with the source currency and target currency respectively. It is not done that way and is too restrictive (when the SrcCcy is found, it is always compared to the target currency, which leads to an incorrect transaction amount). Moreover, when the currency conversion introduces a exchange loss/gain, it is put back on the largest transaction of the entry. Backport of https://github.com/odoo/enterprise/pull/76828 and https://github.com/odoo/enterprise/pull/42763 opw-4672283 Forward-Port-Of: odoo/enterprise#84775 Forward-Port-Of: odoo/enterprise#83131
In this commit: --------------- - Corrected the label from `Is Alchoholic` to `is Alcoholic`. task- 4826438 Forward-Port-Of: odoo/enterprise#86587
Original PR description
In this commit: --------------- - Corrected the label from `Is Alchoholic` to `is Alcoholic`. task- 4826438 Forward-Port-Of: odoo/enterprise#86587
Changed translations to use the legal term used in Mexico. This is done because "Cada dos semanas" and "Quincenal" don't have exactly the same meaning Forward-Port-Of: odoo/enterprise#86445 Forward-Port-Of: odoo/enterprise#83982
Original PR description
Changed translations to use the legal term used in Mexico. This is done because "Cada dos semanas" and "Quincenal" don't have exactly the same meaning Forward-Port-Of: odoo/enterprise#86445 Forward-Port-Of: odoo/enterprise#83982
…tion_reg_payslip_lines This argument causes several issues and do not make sense as there is already a default_partner_id. For example, you click on payslip lines from the contact Abigail Peterson, and it filters everything with a search on partner_id = 1, which doesn't make sense. It also causes issues if the partner with id 1 doesn't exists. opw-4516239 Forward-Port-Of: odoo/enterprise#78287
Original PR description
…tion_reg_payslip_lines This argument causes several issues and do not make sense as there is already a default_partner_id. For example, you click on payslip lines from the contact Abigail Peterson, and it filters everything with a search on partner_id = 1, which doesn't make sense. It also causes issues if the partner with id 1 doesn't exists. opw-4516239 Forward-Port-Of: odoo/enterprise#78287