Wednesday, August 12, 2026
11 changes · master
Resolved issues and error corrections
Opening Bank Matching from a working file now works even when no bank journal is selected. This prevents an error that interrupted users handling unreconciled bank statement lines and returns.
Original PR description
When accessing the reconciliation widget from the working file check, there is no journal to be selected, hence no journal in the context. This was tracebacking since we were trying to send a read query to the server with an undefined id. To reproduce: * create a bank statement line without reconciling * set up the return on the misc journal * open the return, then "Bank Matching" Forward-Port-Of: odoo/enterprise#127421
This fixes an internal test so it correctly accounts for archived call activity records before deleting an activity type. The change helps prevent false test failures and keeps quality checks stable without affecting day-to-day user functionality.
Original PR description
test_create_call_activity attempts to delete any 'phonecall' activity types. This is so it can test the functionality of create_call_activity when there is no existing 'phonecall' activity type. However, demo data inside voip creates an archived activity with the type mail_activity_data_call. https://github.com/odoo/enterprise/blob/cc4456ac16aeee59830db08505a27877e149f3a7/voip/demo/voip_call.xml#L4-L13 When searching for phonecall_activities the test only gets active activities. We need to alter this to fetch all. Otherwise, the test will then try to delete the activity type when there are still records using the type. opw-6443475 runbot-242850 Forward-Port-Of: odoo/enterprise#126540
The Timesheets Assistant now ignores the current user's own email address when matching Gmail emails to customers. This prevents irrelevant task or project suggestions when the user's own contact is listed as a customer.
Original PR description
Before this commit, the Timesheets Assistant resolved every address found in a read or composed email to a partner, then matched the event to a task or project having that partner as its customer. The current user is a recipient of every email they receive, so their own address is present in the "To" or "Cc" fields of every `reading_email` event. As a result, any task whose customer was the current user could be suggested for those emails. This commit excludes the current user's partner from that lookup. task-6438374 Forward-Port-Of: odoo/enterprise#127422 Forward-Port-Of: odoo/enterprise#126448
Products created through Barcode Lookup now correctly show the image returned by the service. This helps users verify newly created products visually and avoids manual image updates after scanning or entering barcodes.
Original PR description
Issue before this commit: ========================= When creating a product by adding a barcode using the Barcode Lookup service, the product image was fetched properly but was not displayed in the…
Issue before this commit: ========================= When creating a product by adding a barcode using the Barcode Lookup service, the product image was fetched properly but was not displayed in the UI. Steps to Reproduce: ========================= - Install the stock module. - Enable the Stock Barcode Database. - Add a valid API key for the Barcode Database. - Create a product by adding a barcode available in the Barcode Lookup API. - Notice that the product image is not displayed. Cause of the issue: ========================= This issue was introduced by this [PR](https://github.com/odoo/odoo/pull/244421), which improved the behaviour of **fields.Binary**. As a result, the image returned by the Barcode Lookup API was not converted to the expected binary format, preventing it from being displayed in the UI. With This Commit: ========================= With this commit, convert the fetched image to the expected binary format before assigning it to the product, ensuring that it is displayed correctly in the UI. opw-6434478 Forward-Port-Of: odoo/enterprise#126314
This update fixes a payroll-related issue by removing outdated or unnecessary behavior covered by the payroll run test flow. It helps keep payroll processes reliable and reduces the chance of confusion from obsolete steps.
Original PR description
task-6455499
This fix ensures vendor price list entries always include a unit of measure, preventing incomplete purchasing data. It helps avoid downstream errors or confusion when products are planned, ordered, or priced using supplier information.
Several older icon references were replaced with their supported Material Symbols equivalents across affected apps. This prevents icons from disappearing when the legacy compatibility layer is removed and keeps the product aligned with current quality checks.
Original PR description
__Problem__ A few `fa`/`fa-*` icons survived the migration to Material Symbols. They still render today thanks to the compatibility mapping between the two sets, but will stop doing so once it is removed. They are also caught by the new `test_lint` icons check. __Quick fix__ Replace them by their Material Symbols equivalent, set through the `data-icon` attribute, the sizing and filling classes being kept through their `oi` counterparts (`fa-lg` → `oi-lg`, `fa-fw` → `oi-fw`, ...). Community PR: odoo/odoo#279361
Preparation tickets in self-ordering now follow the language set for the default self-order user. This helps kitchen or preparation staff receive tickets in the expected language, reducing confusion in multilingual setups.
Original PR description
Before this commit the preparation ticket wasn't using the lang of the default pos_self_order user. Now it will use it. Forward-Port-Of: odoo/enterprise#127113 Forward-Port-Of: odoo/enterprise#126903
Creating an employee in Belgian payroll with a subtype but no active contract no longer triggers an error. This prevents interruptions during employee setup and makes public holiday allocation handling more reliable.
Original PR description
Step to reproduce: -> Go to employee -> Create an employee with a sub type but without a running contract You will have a traceback Reason: We will take the minimum start date between all versions but version without contract date start are not supported. task-6455669
Payroll users can now send several payslips to off-cycle processing at once without encountering an error. This makes bulk payroll corrections smoother and avoids interruptions when working from the payslip list.
Original PR description
Steps to reproduce: - Open payslip list view - Select multiple payslips - Select "Send to Off-cycle" action Issue: A traceback occurs with ValueError: Expected singleton when the action is executed on multiple payslips. Reason: - 'action_move_to_off_cycle()' assumes a singleton and directly accesses self.version_id.id - When multiple payslips are selected from list view then self contains several payslips and self.version_id returns multiple versions, causing the singleton error. Solution: - Iterate over each payslip individually when processing the off-cycle action and use the corresponding version for each record, allowing the action to work correctly in multi-record mode task-6320059 Forward-Port-Of: odoo/enterprise#125284
A new test verifies that India GSTR-1 reporting selects the correct tax rate group when GST and CESS taxes are combined. This helps reduce the risk of incorrect tax reporting for Indian businesses using these tax combinations.
Original PR description
This PR adds a test case to ensure that the correct tax rate group is selected in the GSTR-1 report when a combination of GST and CESS taxes is used. Community PR - https://github.com/odoo/odoo/pull/280571 Forward-Port-Of: odoo/enterprise#126770