Tuesday, June 17, 2025
5 changes · 17.0
Resolved issues and error corrections
Romanian stock EDI exports now use the EU-required country code “EL” for Greece instead of “GR”. This helps ensure exported EDI documents are formatted correctly for partners or authorities that expect the EU VAT code.
Original PR description
Mapped the VAT code "GR" to the EU-specific code "EL" in EDI files. This ensures correct formatting of country codes for Greece in EDI exports where required. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Romanian stock EDI processing now skips internal warehouse transfers. This avoids unnecessary electronic document checks and prevents misleading errors for normal internal stock movements.
Original PR description
Description of the issue/feature this PR addresses: Currently, the l10n_ro_edi_stock_enable flag may be set for all stock pickings, including internal transfers. This leads to unnecessary EDI…
Description of the issue/feature this PR addresses:
Currently, the l10n_ro_edi_stock_enable flag may be set for all stock pickings, including internal transfers. This leads to unnecessary EDI processing for pickings that are not relevant for EDI (e.g., internal movements within the company).
Current behavior before PR:
The system does not explicitly exclude pickings of type 'internal' from EDI logic. As a result, internal transfers may trigger EDI processing even though they are not intended for such flows.
Additionally, at line 508, the existing match-case logic processes only 'outgoing' and 'incoming' types:
```
match data['picking_type_id'].code:
case 'outgoing':
partner = data['picking_type_id'].warehouse_id.partner_id if location == 'start' else data['partner_id']
case 'incoming':
partner = data['picking_type_id'].warehouse_id.partner_id if location == 'end' else data['partner_id']
case _other:
errors.append(_("Invalid picking type %(type_code)s", type_code=_other))
continue
```
Since 'internal' is not handled explicitly, it is treated as an invalid type, resulting in misleading error messages and unnecessary processing.
Desired behavior after PR is merged:
The PR introduces a condition to exclude pickings with picking_type_code = 'internal' from EDI processing. This prevents the l10n_ro_edi_stock_enable flag from being set for irrelevant pickings and avoids the generation of errors for valid internal movements.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes an issue where nested dropdown menus in CRM pivot views could appear in the wrong position after being opened more than once. Users should now see submenu options appear where expected, making navigation more reliable.
Original PR description
Exemple of steps: - Install `crm` - Open crm with pivot view - Click on '+' on a stage, exemple: "Proposition" There is a dropdown with other sub-dropdown, If we go to a sub-dropdown for the first time it is displayed correctly but the second time it is displayed with a wrong position (on the parent dropdown). The problem occurs because the `batchedUpdate` function doesn't wait for the element to be displayed before updating its position. In our case, the dropdown didn't have time to have its position adjusted because the batch was called too early. opw-4493236
The Product Expiry module now includes its missing app icon, so it appears correctly in Odoo's app listings. This small visual fix helps users identify the module more easily and keeps the app catalog presentation consistent.
Original PR description
task-4100027
This fix ensures an automated quality worksheet test has the right manufacturing permission when demo data is not installed. It prevents false test failures and helps keep manufacturing quality workflows reliable across different deployment setups.
Original PR description
The tour in `test_worksheet_quality_check` expects the "Select Work Centers" dialog to open automatically on load.
This only happens if:
- `localStorage` has no previous selection, and
- the user has `group_mrp_routings`
As seen [Here](https://github.com/odoo-dev/enterprise/blob/df3c6642cae9b40700b0b17e0335cec00ce23d3e/mrp_workorder/static/src/mrp_display/mrp_display.js#L124) in `MrpDisplay.onWillStart()`:
`if (localStorage === null && this.group_mrp_routings) {
this.toggleWorkcenterDialog(false);
}`
When running with `--without-demo=all`, the admin user does not have this group, so the dialog does not show and the test fails.
We fix this by explicitly assigning the group:
`self.env.ref("base.user_admin").groups_id += self.env.ref('mrp.group_mrp_routings')`
[runbot-161194](https://runbot.odoo.com/odoo/error/161194)