Sunday, May 11, 2025
38 changes · master
Enhancements to existing features
The Velocity Analysis report now labels the metric as "Average Days in Stage" instead of "Days in Stage." This makes it clearer that the report shows an average duration, helping users interpret recruitment pipeline timing more accurately.
Original PR description
Rename the metric on the Velocity Analysis report from `Days in Stage` to `Average Days in Stage` to clarify the data presented. task-4756951
Subscription invoice checks were updated to match the new invoicing behavior: section or note lines without any product are no longer added to invoices. This helps keep subscription invoices cleaner and aligned with the standard sales flow.
Original PR description
Sections with notes but no product are not added to invoices anymore. task-4614770
Miscellaneous changes
Integrate whatsapp into marketing automation test tools and flow. Module marketing_automation_whatsapp has been added but is still not integrated into global marketing automation tests. Cover more activity types and scenarios, notably to spot corner cases currently badly covered. Added tests: whatsapp / sms types, opposite triggers (aka: cancel mail not open when mail is opened), rescheduling, scheduling for new participants / new activities, ... Add long awaited performance tests
Original PR description
Integrate whatsapp into marketing automation test tools and flow. Module marketing_automation_whatsapp has been added but is still not integrated into global marketing automation tests. Cover more…
Integrate whatsapp into marketing automation test tools and flow. Module marketing_automation_whatsapp has been added but is still not integrated into global marketing automation tests. Cover more activity types and scenarios, notably to spot corner cases currently badly covered. Added tests: whatsapp / sms types, opposite triggers (aka: cancel mail not open when mail is opened), rescheduling, scheduling for new participants / new activities, ... Add long awaited performance tests for marketing automation. As it may be quite a time consuming module by generating participants, traces for millions of records, better start with some performance tests in order to prepare work for some optimizations. Finally, fix various issues in marketing automation detected when writing tests. Task-4066243: [marketing_automation] Rescheduling issues Task-4224145: [marketing_automation] Improve test coverage Task-4759343: [marketing_automation] Integrate Whatsapp into MA test suite Prepares Task-4224152: [marketing_automation] Performance / Scalability Forward-Port-Of: odoo/enterprise#85242 Forward-Port-Of: odoo/enterprise#84848
Task-4781564 Forward-Port-Of: odoo/enterprise#85243 Forward-Port-Of: odoo/enterprise#85149
Original PR description
Task-4781564 Forward-Port-Of: odoo/enterprise#85243 Forward-Port-Of: odoo/enterprise#85149
A previous commit 9b133b2cd03a726d330c87a1227903fc925b0ed5 restricted the view and actions we had on the accounting dashboard for a bank journal from a branch company, if the journal belongs to the parent company. In Odoo 17 the fix made sense, but in Odoo 18, the dashboard data added conflicts with another one, resulting in no data being displayed at all when the journal is connected to an online account. This PR adapts the initial fix to use the existing data (deprecate `show_bank_connec
Original PR description
A previous commit 9b133b2cd03a726d330c87a1227903fc925b0ed5 restricted the view and actions we had on the accounting dashboard for a bank journal from a branch company, if the journal belongs to the parent company. In Odoo 17 the fix made sense, but in Odoo 18, the dashboard data added conflicts with another one, resulting in no data being displayed at all when the journal is connected to an online account. This PR adapts the initial fix to use the existing data (deprecate `show_bank_connect` in favor of `display_connect_bank_in_dashboard`) and adds the 'credit' type journal in the condition for `show_sync_action` to be used by the dashboard data. Forward-Port-Of: odoo/enterprise#84976
In the access rights section, referrals group was labelled "Recruitment". The security group has been renamed to "Referrals". Task: 4771561 Forward-Port-Of: odoo/enterprise#84856
Original PR description
In the access rights section, referrals group was labelled "Recruitment". The security group has been renamed to "Referrals". Task: 4771561 Forward-Port-Of: odoo/enterprise#84856
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 Forward-Port-Of: odoo/enterprise#84120
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 Forward-Port-Of: odoo/enterprise#84120
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 Forward-Port-Of: odoo/enterprise#85091
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 Forward-Port-Of: odoo/enterprise#85091
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
In this commit we put back the search view of the reconciled lines that we removed wrongly during this commit: https://github.com/odoo/enterprise/pull/80787/commits/04a304d58a56c7d2eeb70429340eb048fa9f2be6 Upgrade PR: https://github.com/odoo/upgrade/pull/7662 no task id Forward-Port-Of: odoo/enterprise#85093
Original PR description
In this commit we put back the search view of the reconciled lines that we removed wrongly during this commit: https://github.com/odoo/enterprise/pull/80787/commits/04a304d58a56c7d2eeb70429340eb048fa9f2be6 Upgrade PR: https://github.com/odoo/upgrade/pull/7662 no task id Forward-Port-Of: odoo/enterprise#85093
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#85134 Forward-Port-Of: odoo/enterprise#84970
**Steps to reproduce:** - Install Accounting and l10n_lu_reports - Switch to a Luxembourgish company (e.g. LU Company) - Go to "Accounting / Reporting / Statement Reports / Profit and Loss" - Set custom date from "01/01/2025" to "31/12/2025" - Export XML **Issue:** In the exported XML, for "CA_BILAN" declaration section, the start date is set to "01/12/2025" instead of "01/01/2025". **Cause:** When generating the report values of that section, the options are recomputed with the co
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_lu_reports - Switch to a Luxembourgish company (e.g. LU Company) - Go to "Accounting / Reporting / Statement Reports / Profit and Loss" - Set custom date from "01/01/2025" to "31/12/2025" - Export XML **Issue:** In the exported XML, for "CA_BILAN" declaration section, the start date is set to "01/12/2025" instead of "01/01/2025". **Cause:** When generating the report values of that section, the options are recomputed with the comparison filter. This section is based on "Balance Sheet" report and recomputing the options of that report provides a different "from date" coming from "_init_options_date" method. **Solution:** Force the "from date" of the original options when using a custom range date. opw-4737810 Forward-Port-Of: odoo/enterprise#85025 Forward-Port-Of: odoo/enterprise#84672
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
Task-4448873 https://github.com/odoo/odoo/pull/204723 Forward-Port-Of: odoo/enterprise#83240
Original PR description
Task-4448873 https://github.com/odoo/odoo/pull/204723 Forward-Port-Of: odoo/enterprise#83240
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
**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) Forward-Port-Of: odoo/enterprise#84418
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) Forward-Port-Of: odoo/enterprise#84418
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
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. Forward-Port-Of: odoo/enterprise#84779
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. Forward-Port-Of: odoo/enterprise#84779
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
Description of the issue this commit addresses: Zero balance lines are creating friction when reconciling lines. They will never need a renconciliation but they still impair the user's ability to reconcile other lines together if selected. --- Desired behavior after this commit is merged: When reconciling lines, the zero balance ones are simply ignored and the reconciliation proceeds as if they were not selected. --- task-4723956 Forward-Port-Of: odoo/enterprise#84944 Forward-
Original PR description
Description of the issue this commit addresses: Zero balance lines are creating friction when reconciling lines. They will never need a renconciliation but they still impair the user's ability to reconcile other lines together if selected. --- Desired behavior after this commit is merged: When reconciling lines, the zero balance ones are simply ignored and the reconciliation proceeds as if they were not selected. --- task-4723956 Forward-Port-Of: odoo/enterprise#84944 Forward-Port-Of: odoo/enterprise#84851
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
The incoterm code of a line in the intrastat report is the incoterm code from the move or if there is no incoterm code on the move, the one from the company. When creating the request when unfolding report lines, the incoterm code was always checked on the move and not on the company. This would not return lines without incoterm code. This commit changes the incoterm domain to also check the incoterm code of the move company when no incoterm code is set on the move. Steps to reproduce: - F
Original PR description
The incoterm code of a line in the intrastat report is the incoterm code from the move or if there is no incoterm code on the move, the one from the company. When creating the request when unfolding report lines, the incoterm code was always checked on the move and not on the company. This would not return lines without incoterm code. This commit changes the incoterm domain to also check the incoterm code of the move company when no incoterm code is set on the move. Steps to reproduce: - From an EU company, create an invoice to a company in another EU country - Do not set an incoterm on the invoice - In settings, set a default incoterm on the company - Display the intrastat report for the time period of the invoice - Try to unfold the line corresponding to the invoice opw-4642781 Forward-Port-Of: odoo/enterprise#84922 Forward-Port-Of: odoo/enterprise#84734
Steps to reproduce the issue: - Create a quality check with any parameters - Add a future activity - Click on the activity icon in the top bar - The activity summary shows: - 0 Late, 0 Today, 1 Future - Click on "Late" Issue: No filter is applied and all quality checks are displayed. Solution: Added predefined filters for activity deadlines (Late, Today, Future) in the search view of the quality.check model, to align with other models using mail.activity.mixin. opw-4727840
Original PR description
Steps to reproduce the issue:
- Create a quality check with any parameters
- Add a future activity
- Click on the activity icon in the top bar
- The activity summary shows:
- 0 Late, 0 Today, 1 Future
- Click on "Late"
Issue:
No filter is applied and all quality checks are displayed.
Solution:
Added predefined filters for activity deadlines (Late, Today, Future) in the search view of the quality.check model, to align with other models using mail.activity.mixin.
opw-4727840
Forward-Port-Of: odoo/enterprise#84523Prior to this commit, digits in a partner name would be converted to an x, preventing you from searching for digits in a T9 name search. After this commit, the digits remain as they are, so they can be searched for in a T9 name search. Forward-Port-Of: odoo/enterprise#84393
Original PR description
Prior to this commit, digits in a partner name would be converted to an x, preventing you from searching for digits in a T9 name search. After this commit, the digits remain as they are, so they can be searched for in a T9 name search. Forward-Port-Of: odoo/enterprise#84393
In the bank reco widget, applicable models are visible for statement lines. We should limit the ones visible to ones that are manual and which have counterparts that can actually work to produce an entry, so with an account (and a label that can be matched). Also filter on the company. task-4749345 Forward-Port-Of: odoo/enterprise#84139
Original PR description
In the bank reco widget, applicable models are visible for statement lines. We should limit the ones visible to ones that are manual and which have counterparts that can actually work to produce an entry, so with an account (and a label that can be matched). Also filter on the company. task-4749345 Forward-Port-Of: odoo/enterprise#84139