Thursday, June 19, 2025
23 changes · master
Enhancements to existing features
The related spreadsheet, documents, and Studio tests were updated to reflect a broader availability of the “in” filter option. This helps ensure these business features remain reliable after the underlying domain selector behavior changed.
Original PR description
We adapt the tests in documents_spreadsheet, spreadsheet_edition and web_studio to the changes brought by https://github.com/odoo/odoo/pull/208592. Task ID: 4610804
Web Studio’s automated tests were adjusted to reflect that ID values are now required. This helps keep internal quality checks aligned with current behavior and reduces the risk of test failures during development.
Original PR description
Id becomes required, adapt test of web_studio
Address changes for partners no longer trigger a separate step to clear saved map coordinates. This simplifies the map functionality because partner locations are now refreshed automatically by the geolocation system when an address changes.
Original PR description
Before this commit: The partner coordinates were cleared when the address fields changed, using an onchange method. After this commit: This is no longer needed, as coordinates are now automatically recomputed in the `base_geolocalize` module when the address is updated. Task-4812621
The barcode app now labels the button as "Print Product Labels" instead of "Print Barcodes." This makes the action clearer for users who are printing labels for products.
Original PR description
"Print Barcodes" => "Print Products Labels" task-3959326 Community PR: odoo/odoo#178236
Resolved issues and error corrections
The payroll system now shows the out-of-contract warning more accurately when reviewing payslips. This helps payroll teams avoid unnecessary confusion and better identify payslips that may need attention before processing.
Miscellaneous changes
Description ----------- Changes introduced: - Replaced `filtered` linear search with direct `search_fetch` using partner's id in the domain when computing `user_permission` in `_get_permission_without_token` function. This optimizes querying document access permissions. - Implemented batch processing for `_get_permission_without_token` to consolidate documents' access permissions into a single database query. Benchmark --------- `_compute_user_permission` for 1.4k documents for reques
Original PR description
Description ----------- Changes introduced: - Replaced `filtered` linear search with direct `search_fetch` using partner's id in the domain when computing `user_permission` in `_get_permission_without_token` function. This optimizes querying document access permissions. - Implemented batch processing for `_get_permission_without_token` to consolidate documents' access permissions into a single database query. Benchmark --------- `_compute_user_permission` for 1.4k documents for request `search_panel_select_range` (called when opening the Documents app) takes: | Before | After | Speed-up | |--------|-------|----------| | 6.86s | 52ms | 131.9x | Reference --------- task-4873406 Forward-Port-Of: odoo/enterprise#87737
Before this PR: - IRN number was also copied when a record was duplicated or while creating a debit/credit note for purchase document. - This caused the same IRN to appear on multiple records. After this PR: - Now, when a record is duplicated or a debit/credit note is created, the IRN number will be empty to prevent duplication. Task Id: 4854568 Forward-Port-Of: odoo/enterprise#87945 Forward-Port-Of: odoo/enterprise#87468
Original PR description
Before this PR: - IRN number was also copied when a record was duplicated or while creating a debit/credit note for purchase document. - This caused the same IRN to appear on multiple records. After this PR: - Now, when a record is duplicated or a debit/credit note is created, the IRN number will be empty to prevent duplication. Task Id: 4854568 Forward-Port-Of: odoo/enterprise#87945 Forward-Port-Of: odoo/enterprise#87468
The `_compute_show_method` relied on the context key `l10n_it_xml_export_monthly_tax_report_options` that may not be present during generic field tests (e.g. `model.new()`). This caused a Runbot failure in `test_computed_fields_without_dependencies`. This fix ensures the compute method exits safely if the required context is missing. [runbot-162081](https://runbot.odoo.com/odoo/error/162081) Forward-Port-Of: odoo/enterprise#87671 Forward-Port-Of: odoo/enterprise#87086
Original PR description
The `_compute_show_method` relied on the context key `l10n_it_xml_export_monthly_tax_report_options` that may not be present during generic field tests (e.g. `model.new()`). This caused a Runbot failure in `test_computed_fields_without_dependencies`. This fix ensures the compute method exits safely if the required context is missing. [runbot-162081](https://runbot.odoo.com/odoo/error/162081) Forward-Port-Of: odoo/enterprise#87671 Forward-Port-Of: odoo/enterprise#87086
Removing MISC journal from the dashboard of the Enterprise Invoicing App. Two cases need to be covered for it to be shown in the Enterprise Accounting App: 1) existing companies -> installing accountant : the show_on_dashboard field is set to True in the post_init of the accountant module. 2) accountant installed -> creating new companies : the show_on_dashboard field is set to True in the _post_load_data of the account chart template. task-4730184 Forward-Port-Of: odoo/enterprise#87
Original PR description
Removing MISC journal from the dashboard of the Enterprise Invoicing App. Two cases need to be covered for it to be shown in the Enterprise Accounting App: 1) existing companies -> installing accountant : the show_on_dashboard field is set to True in the post_init of the accountant module. 2) accountant installed -> creating new companies : the show_on_dashboard field is set to True in the _post_load_data of the account chart template. task-4730184 Forward-Port-Of: odoo/enterprise#87020 Forward-Port-Of: odoo/enterprise#83620
Sync zh_TW po files for easier testing of zh_HK support zh_hk po files were very old/mostly not translated => delete them
Original PR description
Sync zh_TW po files for easier testing of zh_HK support zh_hk po files were very old/mostly not translated => delete them
**Steps to reproduce:** 1. Install hr_payroll. 2. Create a salary rule (with a structure where country_id is null) and set `View on Payroll Reporting?` is checked for a custom field (x_l10n_xx_%). 3. Add the custom field to the payroll report's pivot view using Studio. **Issue:** - The pivot view fails to open, resulting in a traceback. ``` UncaughtPromiseError > OwlError Uncaught Promise > The following error occurred in onWillStart: "Cannot read properties of undefined (reading
Original PR description
**Steps to reproduce:** 1. Install hr_payroll. 2. Create a salary rule (with a structure where country_id is null) and set `View on Payroll Reporting?` is checked for a custom field (x_l10n_xx_%). 3.…
**Steps to reproduce:** 1. Install hr_payroll. 2. Create a salary rule (with a structure where country_id is null) and set `View on Payroll Reporting?` is checked for a custom field (x_l10n_xx_%). 3. Add the custom field to the payroll report's pivot view using Studio. **Issue:** - The pivot view fails to open, resulting in a traceback. ``` UncaughtPromiseError > OwlError Uncaught Promise > The following error occurred in onWillStart: "Cannot read properties of undefined (reading 'string')" ``` **Cause:** - Custom field that not start with `l10n_<country_code>` or `x_l10n_<country_code>` are removed, causing undefined fields in the pivot view. https://github.com/odoo/enterprise/blob/ccb5ed4779db4bdf6944f43eb2e4a7aa978b9272/hr_payroll/static/src/js/hr_payroll_report_pivot_model.js#L13-L15 **Solution:** - Allow to add custom fields created from salary rules without a country code to be used as custom measures in the pivot view. opw-4688376 Forward-Port-Of: odoo/enterprise#84881
We did not send an `ACK` after asking for blackbox status, leading in BlackBox sending it again. This lead to situations where we sent requests to the BlackBox, and received the status instead of the actual response. In addition, the repeated status responses were missing the leading `ACK`, resulting in our log: `sent 1 NACKS without receiving response, giving up.` More, if we sent a command too soon to the BlackBox (before it finished instanciating), we were receiving its `certified ref` in
Original PR description
We did not send an `ACK` after asking for blackbox status, leading in BlackBox sending it again. This lead to situations where we sent requests to the BlackBox, and received the status instead of the actual response. In addition, the repeated status responses were missing the leading `ACK`, resulting in our log: `sent 1 NACKS without receiving response, giving up.` More, if we sent a command too soon to the BlackBox (before it finished instanciating), we were receiving its `certified ref` instead of the actual response, due to the `_push_status` method called from the `run` method of the BlackBox Driver parent class. This `run` method is now overridden by the BlackBox driver Task: 4750435 Forward-Port-Of: odoo/enterprise#87659
Current Behavior: When validating a SEPA Direct Debit batch payment, Odoo automatically attempts to send a pre-notification email using the email template account_sepa_direct_debit.email_template_sdd_pre_notification. If this template is missing (e.g. deleted or unlinked), the process fails with a ValueError: External ID not found, and the batch cannot be validated. Expected Behavior: If the template is missing, no pre-notification email should be sent, but the batch validation shoul
Original PR description
Current Behavior: When validating a SEPA Direct Debit batch payment, Odoo automatically attempts to send a pre-notification email using the email template account_sepa_direct_debit.email_template_sdd_pre_notification. If this template is missing (e.g. deleted or unlinked), the process fails with a ValueError: External ID not found, and the batch cannot be validated. Expected Behavior: If the template is missing, no pre-notification email should be sent, but the batch validation should still proceed without error. The process must not raise a traceback or prevent validation. task-4815699 Forward-Port-Of: odoo/enterprise#86278
Since https://github.com/odoo/odoo/pull/205922, the highlighting system for settings search results was changed and although undesired tags are removed with https://github.com/odoo/odoo/pull/211832, there are still spacing issues that are addressed here. Forward-Port-Of: odoo/enterprise#86508
Original PR description
Since https://github.com/odoo/odoo/pull/205922, the highlighting system for settings search results was changed and although undesired tags are removed with https://github.com/odoo/odoo/pull/211832, there are still spacing issues that are addressed here. Forward-Port-Of: odoo/enterprise#86508
Steps: - Create an employee with marital status is married - Keep the spouse name empty - Try to export ird reports with a confirmed payslip Current behavior: - Error raised Expected behavior: - Should be able to export the report even spouse name is empty Forward-Port-Of: odoo/enterprise#87926 Forward-Port-Of: odoo/enterprise#86270
Original PR description
Steps: - Create an employee with marital status is married - Keep the spouse name empty - Try to export ird reports with a confirmed payslip Current behavior: - Error raised Expected behavior: - Should be able to export the report even spouse name is empty Forward-Port-Of: odoo/enterprise#87926 Forward-Port-Of: odoo/enterprise#86270
- Before this commit, when a POS order was created with an urban piper delivery method, the blackbox data was not saved to the database. - Now we explicitly save the bbox data to ensure this info is displayed on the receipt. task-id: 4781945 Forward-Port-Of: odoo/enterprise#87841
Original PR description
- Before this commit, when a POS order was created with an urban piper delivery method, the blackbox data was not saved to the database. - Now we explicitly save the bbox data to ensure this info is displayed on the receipt. task-id: 4781945 Forward-Port-Of: odoo/enterprise#87841
- Enabled editing of reconciled entries in mobile view on-click. - Foreign-currency values are now omitted from the mobile display. Task ID: 4749337 Forward-Port-Of: odoo/enterprise#84691
Original PR description
- Enabled editing of reconciled entries in mobile view on-click. - Foreign-currency values are now omitted from the mobile display. Task ID: 4749337 Forward-Port-Of: odoo/enterprise#84691
Currently, an error is produced when the payslip start date is not set, but the end date is provided. **Steps to reproduce:** - Install `hr_payroll` module(with demo). - Create new **Payslip** for employee **Anita Oliver**. - Clear both the start and end dates under the "Period" section. - Set only the end date. **Error:** `TypeError: '<' not supported between instances of 'bool' and 'datetime.date'` **Cause:** The `_compute_warning_message` method performs a comparison between `s
Original PR description
Currently, an error is produced when the payslip start date is not set, but the end date is provided. **Steps to reproduce:** - Install `hr_payroll` module(with demo). - Create new **Payslip** for…
Currently, an error is produced when the payslip start date is not set, but the end date is provided. **Steps to reproduce:** - Install `hr_payroll` module(with demo). - Create new **Payslip** for employee **Anita Oliver**. - Clear both the start and end dates under the "Period" section. - Set only the end date. **Error:** `TypeError: '<' not supported between instances of 'bool' and 'datetime.date'` **Cause:** The `_compute_warning_message` method performs a comparison between `slip.date_from` and `contract_id.date_start` without verifying if `date_from` is set. When `date_from` is `False`, the comparison `False < datetime.date(...)` - [1], raises a `TypeError`. [1] - https://github.com/odoo/enterprise/blob/a65314702b99df97c778d4f12f943191a19dafd1/hr_payroll/models/hr_payslip.py#L1029-L1031 This commit adds checks to ensure that start and end date is defined before performing date comparisons in warning message computation, preventing the error. Sentry - 6618275041 Forward-Port-Of: odoo/enterprise#86091
This commit fixes the alignment of the "back" button of the transfer view. It also removes the label from small "Transfer" buttons to remain consistent with the other buttons of the same type. task-4875960 | Before | After | |--------|--------| |  |  |  | |  |  | Forward-Port-Of: odoo/enterprise#87838
Commit 687e237 introduced auto-creation of reconciliation models based on user behavior, primarily analyzing the last 5 statement lines. However, it did not account for lines without a payment_ref. Since the payment_ref is used to build the matching key, we now restrict the logic to only fetch statement lines that have one. opw-4846098 Forward-Port-Of: odoo/enterprise#87832
Original PR description
Commit 687e237 introduced auto-creation of reconciliation models based on user behavior, primarily analyzing the last 5 statement lines. However, it did not account for lines without a payment_ref. Since the payment_ref is used to build the matching key, we now restrict the logic to only fetch statement lines that have one. opw-4846098 Forward-Port-Of: odoo/enterprise#87832
Forward-Port-Of: odoo/enterprise#83860
Original PR description
Forward-Port-Of: odoo/enterprise#83860
Before this commit, in Chrome, when the first item was placed on second page or later, clicking on "Click to start" to automatically scroll to the first sign item would stop earlier. As a result, the user would have to click again on the navigator to focus it and to fill the automatic value. task-id-4854650 Forward-Port-Of: odoo/enterprise#87748
Original PR description
Before this commit, in Chrome, when the first item was placed on second page or later, clicking on "Click to start" to automatically scroll to the first sign item would stop earlier. As a result, the user would have to click again on the navigator to focus it and to fill the automatic value. task-id-4854650 Forward-Port-Of: odoo/enterprise#87748
opw-4772870 opw-4664501 Forward-Port-Of: odoo/enterprise#87944 Forward-Port-Of: odoo/enterprise#86891
Original PR description
opw-4772870 opw-4664501 Forward-Port-Of: odoo/enterprise#87944 Forward-Port-Of: odoo/enterprise#86891