Daily updates from Odoo
Thursday, July 10, 2025
9 changes · master
Resolved issues and error corrections
Users can now open and generate field service task reports from the customer portal without hitting an error when the optional reporting module is not installed. This keeps portal task details accessible and avoids disruption for Field Service workflows.
Original PR description
An error occurs when a user attempts to generate a report from the portal because the `industry_fsm_report` module is not installed. **Steps to reproduce:** * Install `industry_fsm` * Field Service>New Task>log time sheet using `start` button * open portal view( `/my/tasks` )> Your created task> `View details` `AttributeError: 'project.task' object has no attribute '_get_report_base_filename'` **Solution:** * Define `_get_report_base_filename` inside `industry_fsm` instead of `industry_fsm_report`. **Sentry-6685756279** Forward-Port-Of: odoo/enterprise#89615 Forward-Port-Of: odoo/enterprise#87949
Brazilian electronic invoices now automatically choose the appropriate invoice purpose in more common business cases instead of always using the standard purpose. This helps prevent EDI submission failures when the correct purpose depends on the product types, vendor, customer, or operation type.
Original PR description
We hardcoded the standard purpose (finNFe) and goal for invoices, credit notes and debit notes. In certain cases however, the purpose is must be different for EDI to succeed (based on the combination of sold product types, vendor and customer). In master we will likely add some fields on the operation type so the user can choose, but in stable we can already determine some other common cases based on the operation type. Using XML ids was considered but since users can create and edit operation types [1] it's better to use the technical names. [1] Since odoo/enterprise#73198 opw-4832447 Forward-Port-Of: odoo/enterprise#89782
This fixes an issue in the Belgian Intrastat reporting module where an empty view definition could cause errors when other report views depended on it. The change keeps report setup stable and prevents failures during upgrades or module loading.
Original PR description
In l10n_be_intrastat, we have vat_report_export.xml, which contains an empty arch (because it had to be removed in master). But as this view is inherited by other views, it raises an error, because we're trying to merge a string (the inherits) and a None (the empty arch). We will remove the empty arch in 18.4 (as we did in 18.3), and remove totally the view in master, with an upgrade script. Linked:https://github.com/odoo/upgrade/pull/7973 no-task Forward-Port-Of: odoo/enterprise#88647
PDF versions of stock reports now show table headers in bold as intended. This makes printed reports match the on-screen layout and improves readability for users reviewing inventory documents.
Original PR description
Problem: When printing the stock report, table headers are not bold in the generated PDF despite being styled that way in the HTML template. Cause: The bold styling is applied via CSS on the `thead` element, which doesn't render properly in the PDF output. Solution: Use `<strong>` tags inside table headers to apply bold formatting, as done in version 17.0. Also remove `font-weight` rules from CSS for `thead` to avoid conflicts and ensure consistent output. Steps to reproduce: 1. Go to Inventory > Inventory Overview. 2. Select any inventory record. 3. Print the report. → Table headers are not bold as expected, despite formatting. opw-4840380 Forward-Port-Of: odoo/enterprise#89836 Forward-Port-Of: odoo/enterprise#87852
The POS appointments screen now loads the missing illustration used when no bookings are available. This prevents an error when users remove grouping in the bookings Gantt view and keeps the empty state displaying correctly.
Original PR description
Steps to reproduce: ------------------------- - Open pos enabled with bookings. - Open booking tab and in gantt view remove groupby filter. Issue: ------- There will be a traceback. Cause: -------- When there are no bookings available it tries to load no booking svg template, which is not loaded in the assets. Fix --- We have loaded the missing asset file to ensure the SVG displays correctly when there are no bookings. task: 4912389 Forward-Port-Of: odoo/enterprise#89378
Bookkeepers can now open, close, and reset tax return flows without being blocked by administrator-only setup steps. This prevents unnecessary access errors and helps accounting teams complete return-related work more smoothly.
Original PR description
- Trying to open the returns form the dashboard failed for bookkeepers when no opening date was set, since the wizard used to set them is restricted to administrators only. - When closing a tax return, an access error was triggered when trying to set the lock date. - When resetting a tax return, an access error was triggered when trying to set the lock date. Forward-Port-Of: odoo/enterprise#89878 Forward-Port-Of: odoo/enterprise#89610
Odoo Studio can no longer be opened to customize the Bank Reconciliation view. This prevents users from making unsupported changes to a sensitive accounting workflow, reducing the risk of configuration issues.
Original PR description
- Install `web_studio` and `account_accountant` - Open Accounting -> Bank You can open studio on this view but this should not be possible opw-4859464 Forward-Port-Of: odoo/enterprise#89181 Forward-Port-Of: odoo/enterprise#89146
Amazon sales integrations now correctly recognize DPD, Hermes, and updated Royal Mail carrier names for Great Britain shipments. This helps avoid fulfillment or shipping confirmation issues caused by carrier name mismatches from Sendcloud.
Original PR description
For DPD and Hermes (not the others), Sendcloud adds an unnecessary ISO code. In order to keep it should it be necessary (e.g. rml_gb), we map them to the Amazon const instead of stripping the code. While testing, it was also found that royal mail seems to have been renamed and was thus not working. Forward-Port-Of: odoo/enterprise#87745
This fix makes manufacturing shop floor test checks more reliable by avoiding assumptions about exact record counts when demo data may add extra entries. It helps keep automated validation stable and reduces false build failures without changing user-facing behavior.
Original PR description
### Issue: Certain shopfloor tests make assert on the number of records present in the shopfloor: - test_shop_floor_my_wo_filter_with_pin_user - test_automatic_backorder_no_redirect These assert can not be reliable due to demo-data's adding unrelated records e.g. https://github.com/odoo/enterprise/blob/5bfadae317ee47ac34703d4cc222677ac677cc7d/purchase_mrp_workorder_quality/data/purchase_mrp_workorder_quality_demo.xml#L79-L84 runbot-build-error-226734 Forward-Port-Of: odoo/enterprise#89556 Forward-Port-Of: odoo/enterprise#88005