Friday, May 9, 2025
70 changes
Enhancements to existing features
The bank reconciliation account search now filters by account type instead of a broader internal grouping. This prevents unrelated other income and other expense accounts from appearing, helping users choose the correct account more easily.
Original PR description
This commit will change the current filter to use account type instead of internal_group to avoid including "other income" and "other expense" task: 4749344
VoIP contact search now handles names containing joined letters such as IJ, œ, or æ when converting them for keypad dialing. This makes it easier for users to find and call contacts with international or special-character names.
Original PR description
Expand ligatures (IJ, œ, æ...) to their constituent letters, so that they can be converted to T9.
This update adds missing checks to make sure the return period filter behaves correctly in financial reports. It helps reduce the risk of reporting inconsistencies when the return period matches a standard date filter.
Original PR description
Added missing tests for the return period filter. Mainly testing the fallback to normal filter in case it is aligned to a normal date filter.
Resolved issues and error corrections
This fixes outdated wording shown in validation checks for EC Sales List returns. The change helps users see the intended messages and avoids confusion caused by an earlier merge issue.
Original PR description
A bad conflict management in https://github.com/odoo/enterprise/commit/689bfdcb40c0d57a3d941f32322986a0a7e7d2f5 caused some old phrasing of the checks to be used instead of the one we wanted.
Miscellaneous changes
Steps to reproduce: - Raise Product Price Accuracy to 6 - Set Global Rounding - Fetch latest currency rate for USD from Bank of Mexico - Create a [TEST] Product with: - UNSPSC Category: 12141502 Magnesium Mg - UMT Aduana: kg - Make an Invoice as follows: - Customer: Deco Addict - Currency USD - Product: [TEST] - Price: 3,114.515000 - Qty UMT: 11 - Incoterm: EX WORKS - External Trade: Definitive - Confirm Invoice - Send CFDI Issue: Validation will fail with er
Original PR description
Steps to reproduce: - Raise Product Price Accuracy to 6 - Set Global Rounding - Fetch latest currency rate for USD from Bank of Mexico - Create a [TEST] Product with: - UNSPSC Category: 12141502…
Steps to reproduce: - Raise Product Price Accuracy to 6 - Set Global Rounding - Fetch latest currency rate for USD from Bank of Mexico - Create a [TEST] Product with: - UNSPSC Category: 12141502 Magnesium Mg - UMT Aduana: kg - Make an Invoice as follows: - Customer: Deco Addict - Currency USD - Product: [TEST] - Price: 3,114.515000 - Qty UMT: 11 - Incoterm: EX WORKS - External Trade: Definitive - Confirm Invoice - Send CFDI Issue: Validation will fail with error """ Code : CCE122 Message : El atributo cce20:ComercioExterior:TotalUSD no coincide con la suma de ValorDolares de las mercancías. """ In the xml, the ValorDolares for the sold item will be 3114.5150 but the attribute TotalUSD will be 3114.52 This occurs because ValorDolares are emitted as unrounded amount, but TotalUSD is rounded to 2 decimals. When working with 3+ digits the amounts might not add up correctly. Note: Before version 18, ValorDolares (`product_values['total']`) amount was already rounded according to the currency decimals (2) and there was no issue opw-4662692 opw-4686226 Forward-Port-Of: odoo/enterprise#84027
This fix keeps the number of bank reconciliation items per customer or vendor up to date, including when the last item for a partner is cleared. It helps accounting users see accurate reconciliation queues after deleting or completing reconciled lines.
Original PR description
The aim of this commit is making sure that we update the reconcileCountPerPartnerId properly. Before this commit, the code was only updating partner id who still have line to reconcile. It was wrong as we want to update a partner who doesn't have a line to reconcile anymore. In the meantime, we're now calling the function who reloads the count when we delete a reconciled line. task-4782264
This fixes an automated test in the barcode picking workflow so it waits for the final screen to finish loading before the browser closes. The change helps prevent false test failures, improving confidence in delivery checks without changing user-facing behavior.
Original PR description
In this commit we fix the tour test_open_picking_dont_override_assigned_user. At the end of tour, we don't wait until kanban is fully rendered. If the browser is closed before this view is rendered, the error onWillStart: "Component is destroyed" can occurs error-runbot-id~190611
The access rights label for the Referrals app has been corrected from “Recruitment” to “Referrals.” This makes user permissions clearer for administrators and avoids confusion when assigning access.
Original PR description
In the access rights section, referrals group was labelled "Recruitment". The security group has been renamed to "Referrals". Task: 4771561
Users can now enter chat commands such as "/who" in chats or channels without causing a crash. This keeps conversation tools reliable and prevents interruptions when using built-in command shortcuts.
Original PR description
**purpose of this PR:** Entering commands such as "/who" or similar in a chat or channel previously caused a crash. the issue has been resolved by updating the message posting flow to ensure that commands are processed correctly. community: https://github.com/odoo/odoo/pull/209064 task-[4759888](https://www.odoo.com/odoo/project/1519/tasks/4759888)
Small visual refinements were made to the manufacturing work order display, including clearer onboarding imagery, cleaner worksheet dialogs, and less confusing operator styling. These changes improve day-to-day usability for shop floor teams without changing core manufacturing workflows.
Original PR description
- review the onboarding image & annotations - review the start button to avoid double primary - worksheet instruction dialog uses default dialog header - removed the lock operator styling follow-up task-4346172
Knowledge articles can store embedded views and saved filters inside their content. This fix updates those stored settings during upgrades so shared favorite filters continue to work correctly after the underlying filter field changed.
Original PR description
[This commit] modified the `ir.filters` `user_id` field into `user_ids`. In Knowledge embedded views (and links), the `SearchModel` state and some custom favorite filters are stored inside a html attribute of the body of an article, therefore they are not properly upgraded with the standard python script. This commit introduces a JS upgrade script to modify these values. `user_id` is converted to `user_ids` with an empty array as a value (which means that the filters are always "shared with everyone"). The field has to be modified both in the custom favorites and in the stored `SearchModel` state. [This commit]: https://github.com/odoo/odoo/commit/414e55cf7c3971a7ba0a7c96855db4c23e77a5c4 task-4718129
In some cases, it's not possible for customers to trim the description of an invoice line to the accepted length (e.g. for traceability or completeness). It turns out that Avalara will trim and transform the descriptions on our behalf to make them compatible with the government's API. As part of that process, they translate `\n` characters to ` | ` before sending it to the government. Unfortunately, there seems to be a bug with that process on their side. When a '\n' character is included
Original PR description
In some cases, it's not possible for customers to trim the description of an invoice line to the accepted length (e.g. for traceability or completeness). It turns out that Avalara will trim and transform the descriptions on our behalf to make them compatible with the government's API. As part of that process, they translate `\n` characters to ` | ` before sending it to the government. Unfortunately, there seems to be a bug with that process on their side. When a '\n' character is included in the description, they don't trim the description they send to the government sufficiently. Perhaps they trim before the '\n' to ' | ' translation, or perhaps they have some other bug. We sidestep the issue by doing that same translation on our side and sending them that. It doesn't result in any change on the EDI PDF or XML, and this way we can avoid hardcoding these limits on our side. task-4726372 Forward-Port-Of: odoo/enterprise#84841 Forward-Port-Of: odoo/enterprise#84700
Issue: Syntax error is raised when applying period comparison on partner ledger report. Purpose of this PR: Group queries with the parentheses. Steps to Reproduce in Runbot: - install accounting - add period comparison to Partner Ledger Report - try to apply period comparison opw-4730435 Forward-Port-Of: odoo/enterprise#85074 Forward-Port-Of: odoo/enterprise#83652
Original PR description
Issue: Syntax error is raised when applying period comparison on partner ledger report. Purpose of this PR: Group queries with the parentheses. Steps to Reproduce in Runbot: - install accounting - add period comparison to Partner Ledger Report - try to apply period comparison opw-4730435 Forward-Port-Of: odoo/enterprise#85074 Forward-Port-Of: odoo/enterprise#83652
Before this commit, when rescheduling call activities, this could lead to the following crash: ``` Caused by: TypeError: Cannot read properties of undefined (reading 'avatarUrl') at ActivityListPopoverItem.template ``` This error state that the activity has no related persona in order to display its avatar in the popover. The persona data must be returned with activity data, and this is a required field therefore any activity should necessarily have a persona in their data. The reas
Original PR description
Before this commit, when rescheduling call activities, this could lead to the following crash: ``` Caused by: TypeError: Cannot read properties of undefined (reading 'avatarUrl') at ActivityListPopoverItem.template ``` This error state that the activity has no related persona in order to display its avatar in the popover. The persona data must be returned with activity data, and this is a required field therefore any activity should necessarily have a persona in their data. The reason of crash comes from voip method `_format_call_activities` that returns custom activity data that do not pass `persona`. This commit fixes the issue by passing `persona` data like in the usual `_to_store` of activity. The crash occurs since https://github.com/odoo/odoo/pull/190161 opw-4586756 Forward-Port-Of: odoo/enterprise#84970
### Description: By default, it is impossible to change the default limit of card displayed on shop floor. This PR aim to change that by adding a "limit" in the `context` field of the action. ### Reference: opw-4707551 Forward-Port-Of: odoo/enterprise#83296
Original PR description
### Description: By default, it is impossible to change the default limit of card displayed on shop floor. This PR aim to change that by adding a "limit" in the `context` field of the action. ### Reference: opw-4707551 Forward-Port-Of: odoo/enterprise#83296
**Problem:** When having multiple quants for a product with the same lot but different packages in the same location. Not all quants are visible in the barcode app inventory. **Steps to reproduce:** - In settings activate the following settings : Packages, Storage Locations, Count Entire Locations - Open Inventory/Products - Create a new product - Check the "track inventory" field and select "By Lot" - Go to Inventory/Operations/Physical Inventory and create a new line for your product
Original PR description
**Problem:** When having multiple quants for a product with the same lot but different packages in the same location. Not all quants are visible in the barcode app inventory. **Steps to reproduce:**…
**Problem:** When having multiple quants for a product with the same lot but different packages in the same location. Not all quants are visible in the barcode app inventory. **Steps to reproduce:** - In settings activate the following settings : Packages, Storage Locations, Count Entire Locations - Open Inventory/Products - Create a new product - Check the "track inventory" field and select "By Lot" - Go to Inventory/Operations/Physical Inventory and create a new line for your product - As Location put WH/Stock/Shelf 1 - Write Lot1 for the Lot and Pack1 for the Package - Set a quantity of 5 - Save and Apply - Do the same for another line put but Pack2 for the Package - Open the barcode app and select inventory adjustments - Click on the barcode icon on the top right of the screen - Write SHELF1 and click on apply **Current behavior:** Only 5 unit of your product are displayed (those for Pack1) **Expected behavior:** 10 units should be displayed. The 5 from Pack1 and the 5 from Pack2 **Cause of the issue:** When checking if the line already exists, the package is not taken into account https://github.com/odoo/enterprise/blob/7a132639d6c05ef96d43a48ea34ff11711539fc7/stock_barcode/static/src/models/barcode_quant_model.js#L563-L564 so if a line already exists for the same lot "!currentLine" will be false and the code inside the if statement will not be run https://github.com/odoo/enterprise/blob/7a132639d6c05ef96d43a48ea34ff11711539fc7/stock_barcode/static/src/models/barcode_quant_model.js#L565 resulting in the new line not being added in the barcode app opw-4640303 Forward-Port-Of: odoo/enterprise#84709 Forward-Port-Of: odoo/enterprise#83384
It's possible to have a 0 purchase order line with a negative invoiced qty if there is only a credit note linked to the PO. When the budget report process this order line, it will trigger a traceback. This commit aims to handle this case so the report can be open without issue. opw-4749480 Forward-Port-Of: odoo/enterprise#84812
Original PR description
It's possible to have a 0 purchase order line with a negative invoiced qty if there is only a credit note linked to the PO. When the budget report process this order line, it will trigger a traceback. This commit aims to handle this case so the report can be open without issue. opw-4749480 Forward-Port-Of: odoo/enterprise#84812
Issue ===== Scanning a product while beeing in the stock move line Barcode form view or in the quand Barcode form view can cause a traceback and the impossibility to exit a Barcode operation. How to reproduce ================ 1. Create two products with a barcode; 2. Open the Barcode app and create an operation; 3. Scan a product then click on the edit button to open the form view; 4. Update the product quantity field; 5. While still in the form view, scan another barcode -> You can s
Original PR description
Issue ===== Scanning a product while beeing in the stock move line Barcode form view or in the quand Barcode form view can cause a traceback and the impossibility to exit a Barcode operation. How to…
Issue ===== Scanning a product while beeing in the stock move line Barcode form view or in the quand Barcode form view can cause a traceback and the impossibility to exit a Barcode operation. How to reproduce ================ 1. Create two products with a barcode; 2. Open the Barcode app and create an operation; 3. Scan a product then click on the edit button to open the form view; 4. Update the product quantity field; 5. While still in the form view, scan another barcode -> You can see the quantity was reset; 6. Update again the quantity and save; 7. Try to exit the operation -> Bim badaboum, traceback 💥! Cause of the issue ================== When a barcode is scanned, the app doesn't check where is the current state and process the barcode anyway which lead to strange behavior and inconsistencies between the current lines and the lines to save. Solution ======== Disable the scan while somewhere else that in the barcode line view. Miscellaneous ============= Remove an old forgotten `console.warn` 😬 [OPW-4567723](https://www.odoo.com/odoo/project/49/tasks/4567723) Forward-Port-Of: odoo/enterprise#82484 Forward-Port-Of: odoo/enterprise#81512
Before, the feature was not usable because HMRC would only accept whole pounds for the total payments made and the materials cost. The fix was to round the values on the report to whoule pounds for those two columns. This way, it would become valid for HMRC as the return is based on those report values. opw-4686819 Forward-Port-Of: odoo/enterprise#83829
Original PR description
Before, the feature was not usable because HMRC would only accept whole pounds for the total payments made and the materials cost. The fix was to round the values on the report to whoule pounds for those two columns. This way, it would become valid for HMRC as the return is based on those report values. opw-4686819 Forward-Port-Of: odoo/enterprise#83829
**Steps to reproduce:** - Install Accounting - Install a module that adds a button to tax report (e.g. l10n_ar) - Switch to an Argentinian company (e.g. (AR) Responsable Inscripto) - Go to "Accounting / Reporting / Statements Reports / Tax Return" (i.e. Tax Report) - Select "Argentinean VAT Book (AR)" as report - A cog button should appear after the report name with "VAT Book (ZIP)" option - With browser debug feature, switch to a responsive display and reduce the width or - Repeate
Original PR description
**Steps to reproduce:** - Install Accounting - Install a module that adds a button to tax report (e.g. l10n_ar) - Switch to an Argentinian company (e.g. (AR) Responsable Inscripto) - Go to…
**Steps to reproduce:** - Install Accounting - Install a module that adds a button to tax report (e.g. l10n_ar) - Switch to an Argentinian company (e.g. (AR) Responsable Inscripto) - Go to "Accounting / Reporting / Statements Reports / Tax Return" (i.e. Tax Report) - Select "Argentinean VAT Book (AR)" as report - A cog button should appear after the report name with "VAT Book (ZIP)" option - With browser debug feature, switch to a responsive display and reduce the width or - Repeatedly increase the zoom to increase the size of the button **Issue:** For a certain range of width the cog button is not visible. **Cause:** ".o_control_panel_breadcrumbs" element that contains the buttons has a min-width of 200px, hiding all elements that are after these 200px when reducing the width. **Solution:** Increase the min-width to 350px. The value is arbitrary but it covers well this use case. With a lower value, the cog button could still be hidden in the case of the Argentinian Tax Report in Spanish language. opw-4747697 Forward-Port-Of: odoo/enterprise#84432
Forward-Port-Of: odoo/enterprise#83758 Forward-Port-Of: odoo/enterprise#83747
Original PR description
Forward-Port-Of: odoo/enterprise#83758 Forward-Port-Of: odoo/enterprise#83747
Commit baa934898f184b10ae4c5c51e26fabe4e0178a86 updated the body for ongoing process responses when checking the status of a report submitted through SBR. The variable `error_description` it tries to assign is not defined in that scope of the function, resulting in an error. This PR reverts the value assigned to be the status description, as it was prior to the above commit. opw-4775345 Forward-Port-Of: odoo/enterprise#84749
Original PR description
Commit baa934898f184b10ae4c5c51e26fabe4e0178a86 updated the body for ongoing process responses when checking the status of a report submitted through SBR. The variable `error_description` it tries to assign is not defined in that scope of the function, resulting in an error. This PR reverts the value assigned to be the status description, as it was prior to the above commit. opw-4775345 Forward-Port-Of: odoo/enterprise#84749
This is a useful option that is hard to know about unless you read the code or are told it exists. It should be visible in the report options. In the context of: task-4734528 Forward-Port-Of: odoo/enterprise#83556
Original PR description
This is a useful option that is hard to know about unless you read the code or are told it exists. It should be visible in the report options. In the context of: task-4734528 Forward-Port-Of: odoo/enterprise#83556
Forward-Port-Of: odoo/enterprise#83960 Forward-Port-Of: odoo/enterprise#81174
Original PR description
Forward-Port-Of: odoo/enterprise#83960 Forward-Port-Of: odoo/enterprise#81174
This commit removes the demo data for portal user as a portal user cannot be assigned to tasks. taskid:3703637 Forward-Port-Of: odoo/enterprise#81826 Forward-Port-Of: odoo/enterprise#56588
Original PR description
This commit removes the demo data for portal user as a portal user cannot be assigned to tasks. taskid:3703637 Forward-Port-Of: odoo/enterprise#81826 Forward-Port-Of: odoo/enterprise#56588