Daily updates from Odoo
Monday, April 28, 2025
22 changes · master
Enhancements to existing features
Studio’s automated checks for form and list editing were updated to a newer testing approach. This helps the team validate Studio changes more reliably without changing day-to-day user functionality.
The VoIP module has been updated to use Odoo’s newer internal domain handling approach, replacing an older component that is being phased out. This helps keep the module aligned with platform changes and reduces future maintenance risk, with no expected direct change for end users.
Original PR description
odoo.osv is on its way to being deprecated. This commit replaces its usage with Domain, along with rewriting some domains with the new super cool syntax.
Printed payslips now follow the payroll structure setting for worked day lines. If worked day details are disabled on the payslip structure, the printed report no longer shows the worked days table, keeping employee documents consistent with the form view.
Original PR description
- If the payslip struct has `use_worked_day_lines = False` the printed payslip should not have worked_days_table Task: 4720429
Social media communications for events with multiple time slots are now limited to one post for the overall event. This avoids duplicate promotional messages for each individual slot, keeping event communication clearer and less repetitive.
Original PR description
Do not consider this PR - closed soon. Used for testing and tests.
Resolved issues and error corrections
The update removes an unrelated point of sale manager permission from shared accounting test setup so permission checks better reflect real usage. Point of sale tests now receive that access only where needed, and product users gain read-only access to Urban Piper status data.
Original PR description
The `group_pos_manager` was previously reintroduced in `AccountTestInvoicingCommon` due to demo data changes. However, this group is unrelated to the `account` module and may mask real permission issues in tests. This commit removes the group from the common test setup and adds it explicitly in the relevant PoS test cases where needed. Grants read-only access to `product.urban.piper.status` for product users. task-id: 4678172 community PR: https://github.com/odoo/odoo/pull/205318
A subscription project helper was renamed to stay aligned with the related sales project update. This prevents a mismatch that could affect revenue item retrieval for subscription projects, with no expected change to day-to-day workflows.
Original PR description
Match the method name from `sale_project` changed in community side PR. opw-4652472
Pivot tables in spreadsheets now generate DATE formulas without unwanted spaces before the day and month values. This prevents formatting issues and makes generated spreadsheet formulas cleaner and more reliable for users.
Original PR description
Removed extra spaces in front of the day and month in DATE function. Task: 4725023
Miscellaneous changes
With this commit we remove the namespaces that are not used in the cdfi document. Steps: - Create an invoice and send the edi document - Look at the xml -> namespace `xmlns:cce20="http://www.sat.gob.mx/ComercioExterior20"` is included but unused opw-4493568 Forward-Port-Of: odoo/enterprise#83838
Original PR description
With this commit we remove the namespaces that are not used in the cdfi document. Steps: - Create an invoice and send the edi document - Look at the xml -> namespace `xmlns:cce20="http://www.sat.gob.mx/ComercioExterior20"` is included but unused opw-4493568 Forward-Port-Of: odoo/enterprise#83838
Avoids unnecessary `/sign/sign_request_items` call after refusal by: - Adding `isRefused` flag to skip RPC when token is invalidated - Preserves normal flow for successful signatures **Benefits:** Reduces network traffic + server load in refusal scenarios. task-4642104 Forward-Port-Of: odoo/enterprise#81248
Original PR description
Avoids unnecessary `/sign/sign_request_items` call after refusal by: - Adding `isRefused` flag to skip RPC when token is invalidated - Preserves normal flow for successful signatures **Benefits:** Reduces network traffic + server load in refusal scenarios. task-4642104 Forward-Port-Of: odoo/enterprise#81248
Change VAT in invoice report if the invoice is set as cfdi to public to use a generic vat for both national and international clients to have more coherence with the xml that is generated for the invoice. task-4588311 Forward-Port-Of: odoo/enterprise#83771 Forward-Port-Of: odoo/enterprise#79775
Original PR description
Change VAT in invoice report if the invoice is set as cfdi to public to use a generic vat for both national and international clients to have more coherence with the xml that is generated for the invoice. task-4588311 Forward-Port-Of: odoo/enterprise#83771 Forward-Port-Of: odoo/enterprise#79775
Creating an SO requires either sudo or some sort of SO group which is not set by default. In this case it looks like sudo-ing for creation during setup then unsudo-ing works fine. So do that to avoid over-accessing. https://runbot.odoo.com/odoo/error/163657 Forward-Port-Of: odoo/enterprise#84272
Original PR description
Creating an SO requires either sudo or some sort of SO group which is not set by default. In this case it looks like sudo-ing for creation during setup then unsudo-ing works fine. So do that to avoid over-accessing. https://runbot.odoo.com/odoo/error/163657 Forward-Port-Of: odoo/enterprise#84272
In this commit: === - Fixed a traceback that occurred during menu synchronization caused by multiple product.template.attribute.value (PTAV) records found, where only one was expected (singleton error). - The issue was due to having both active and inactive PTAV records linked to a product. task-4753173 Forward-Port-Of: odoo/enterprise#84211 Forward-Port-Of: odoo/enterprise#84127
Original PR description
In this commit: === - Fixed a traceback that occurred during menu synchronization caused by multiple product.template.attribute.value (PTAV) records found, where only one was expected (singleton error). - The issue was due to having both active and inactive PTAV records linked to a product. task-4753173 Forward-Port-Of: odoo/enterprise#84211 Forward-Port-Of: odoo/enterprise#84127
The pos.order form view removed the refund button for the inherited view. This can cause issues if other modules depend on that button to add to the arch, so making it invisible would still make the element accessible by xpath. ci error https://runbot.odoo.com/runbot/build/78974416 Forward-Port-Of: odoo/enterprise#84118 Forward-Port-Of: odoo/enterprise#84030
Original PR description
The pos.order form view removed the refund button for the inherited view. This can cause issues if other modules depend on that button to add to the arch, so making it invisible would still make the element accessible by xpath. ci error https://runbot.odoo.com/runbot/build/78974416 Forward-Port-Of: odoo/enterprise#84118 Forward-Port-Of: odoo/enterprise#84030
Removed extra spaces in front of the day and month in DATE function. Task: 4725023 Forward-Port-Of: odoo/enterprise#84121
Original PR description
Removed extra spaces in front of the day and month in DATE function. Task: 4725023 Forward-Port-Of: odoo/enterprise#84121
In this commit: - Updated Table 12 HSN Summary to classify HSN data separately for B2B and B2C as per the latest GST advisory. - Previously, all HSN summary data was pushed into Table 12 without distinction. - Now, HSN summary is categorized into B2B and B2C for accurate reporting. Task ID: 4465102 Forward-Port-Of: odoo/enterprise#84218 Forward-Port-Of: odoo/enterprise#80738
Original PR description
In this commit: - Updated Table 12 HSN Summary to classify HSN data separately for B2B and B2C as per the latest GST advisory. - Previously, all HSN summary data was pushed into Table 12 without distinction. - Now, HSN summary is categorized into B2B and B2C for accurate reporting. Task ID: 4465102 Forward-Port-Of: odoo/enterprise#84218 Forward-Port-Of: odoo/enterprise#80738
In cc759094a32e413cb1b71cbbe7be9dc85ded819f, the follow-up report generation was moved from `_send_email` to `execute_followup`, which is only called during manual follow-up processing. As a result, the report was missing when follow-ups were triggered by the cron. This commit moves the report generation logic to `_execute_followup_partner`, which is called in both manual and automatic (cron) cases. Also, patched `_run_wkhtmltopdf` in `TestAccountFollowupReports` to prevent tests from han
Original PR description
In cc759094a32e413cb1b71cbbe7be9dc85ded819f, the follow-up report generation was moved from `_send_email` to `execute_followup`, which is only called during manual follow-up processing. As a result, the report was missing when follow-ups were triggered by the cron. This commit moves the report generation logic to `_execute_followup_partner`, which is called in both manual and automatic (cron) cases. Also, patched `_run_wkhtmltopdf` in `TestAccountFollowupReports` to prevent tests from hanging, since PDF generation requires multiple workers and tests run with only one. task-4752110 Forward-Port-Of: odoo/enterprise#84114
Currently, an error is raised when the system tries to load non-existent XML files via a scheduled action. **Steps to produce:** - Install `l10n_lu_hr_payroll` module. - Navigate to `Settings > Technical > Scheduled Actions`. - Run action manually for **Payroll: Update data**. - Observe the error. `ValueError: FileNotFoundError('File not found: l10n_lu_hr_payroll/data/hr_salary_rule_data.xml') while evaluating 'model._update_payroll_data()'` Here, `_get_data_files_to_update` method
Original PR description
Currently, an error is raised when the system tries to load non-existent XML files via a scheduled action.
**Steps to produce:**
- Install `l10n_lu_hr_payroll` module.
- Navigate to `Settings > Technical > Scheduled Actions`.
- Run action manually for **Payroll: Update data**.
- Observe the error.
`ValueError: FileNotFoundError('File not found: l10n_lu_hr_payroll/data/hr_salary_rule_data.xml') while evaluating 'model._update_payroll_data()'`
Here, `_get_data_files_to_update` method at [1] attempts to load the `hr_salary_rule_data.xml` and `hr_gratification_rule_data.xml` files, which are not present in the codebase.
[1] - https://github.com/odoo/enterprise/blob/809fda39b439edf6259ade445e396e722c1bb53a/l10n_lu_hr_payroll/models/hr_payslip.py#L219-L220
This commit ensures the removal of invalid file references to prevent errors when executing the scheduled action.
Sentry - 6316151728
Forward-Port-Of: odoo/enterprise#83968
Forward-Port-Of: odoo/enterprise#83893Steps to reproduce: - starting planning_test_tour => error raised Source: - https://github.com/odoo/enterprise/pull/69888 introduced a new method _get_non_working_days_bounds which computes user_tz but the value can be False and also not coherent with user_tz computed in _calculate_start_end_dates (method from wich this new method is called) Fix: user_tz is computed the same way as its computed in the original method, the code is duplicated as signature cannot be changed in stable. For
Original PR description
Steps to reproduce: - starting planning_test_tour => error raised Source: - https://github.com/odoo/enterprise/pull/69888 introduced a new method _get_non_working_days_bounds which computes user_tz but the value can be False and also not coherent with user_tz computed in _calculate_start_end_dates (method from wich this new method is called) Fix: user_tz is computed the same way as its computed in the original method, the code is duplicated as signature cannot be changed in stable. Forward-Port-Of: odoo/enterprise#83955 Forward-Port-Of: odoo/enterprise#83926
**Issue** Menu items starting with helpdesk in their URL were not dispalyed to the public user in some cases. **Steps to reproduce** - Have `website_helpdesk` installed. - Activate the website form for a helpdesk team. - Create a menu item for the website, using a URL starting with helpdesk, e.g. `/helpdesk-123-test` - This menu is always invisible to the public user. **Cause** This issue was fixed in previous versions, but it appears the duplicated `_compute_visible` code present
Original PR description
**Issue** Menu items starting with helpdesk in their URL were not dispalyed to the public user in some cases. **Steps to reproduce** - Have `website_helpdesk` installed. - Activate the website form…
**Issue** Menu items starting with helpdesk in their URL were not dispalyed to the public user in some cases. **Steps to reproduce** - Have `website_helpdesk` installed. - Activate the website form for a helpdesk team. - Create a menu item for the website, using a URL starting with helpdesk, e.g. `/helpdesk-123-test` - This menu is always invisible to the public user. **Cause** This issue was fixed in previous versions, but it appears the duplicated `_compute_visible` code present in `website.py` was not deleted in forward ports of the fix (see enterprise PR 63105). https://github.com/odoo/enterprise/blob/b320390d23d3f009beb809e0334c8fa61c44d824/website_helpdesk/models/website.py#L24-L26 As a result, the menu item starting with `/helpdesk` is matched as a helpdesk menu, but will logically not be part of the helpdesk published menus: https://github.com/odoo/enterprise/blob/b320390d23d3f009beb809e0334c8fa61c44d824/website_helpdesk/models/website.py#L30-L32 opw-4560291 Forward-Port-Of: odoo/enterprise#83863 Forward-Port-Of: odoo/enterprise#82824
Updated test case `test_searching_lot_gs1`. This commit updates the test_searching_lot_gs1 test case to include an assertion ensuring that no lot is returned while searching. Related Community PR: https://github.com/odoo/odoo/pull/206268 Sentry:6544673924 OPW: 4725056 Forward-Port-Of: odoo/enterprise#83920
Original PR description
Updated test case `test_searching_lot_gs1`. This commit updates the test_searching_lot_gs1 test case to include an assertion ensuring that no lot is returned while searching. Related Community PR: https://github.com/odoo/odoo/pull/206268 Sentry:6544673924 OPW: 4725056 Forward-Port-Of: odoo/enterprise#83920
`TestPayslipValidation.setUpClass` tries to create an `hr.leave.type` but that requires hr admin access. So add that. Issue likely became visible from the removal of demo data, though it only popped up on April 1st instead of March 27th or whenever the demo data change was merged. https://runbot.odoo.com/odoo/error/162257 Forward-Port-Of: odoo/enterprise#83667 Forward-Port-Of: odoo/enterprise#83665
Original PR description
`TestPayslipValidation.setUpClass` tries to create an `hr.leave.type` but that requires hr admin access. So add that. Issue likely became visible from the removal of demo data, though it only popped up on April 1st instead of March 27th or whenever the demo data change was merged. https://runbot.odoo.com/odoo/error/162257 Forward-Port-Of: odoo/enterprise#83667 Forward-Port-Of: odoo/enterprise#83665
These tests create sale orders, but `self.env.user` does not necessarily have the right to create one by default. https://runbot.odoo.com/odoo/error/163635 Forward-Port-Of: odoo/enterprise#83676 Forward-Port-Of: odoo/enterprise#83672
Original PR description
These tests create sale orders, but `self.env.user` does not necessarily have the right to create one by default. https://runbot.odoo.com/odoo/error/163635 Forward-Port-Of: odoo/enterprise#83676 Forward-Port-Of: odoo/enterprise#83672