Sunday, May 11, 2025
46 changes
3 changes
Resolved issues and error corrections
This update fixes intermittent test failures in the barcode manufacturing flow by making the automated test click a more stable part of the screen. It helps keep build checks reliable and reduces false alarms during development.
Original PR description
The tests `test_barcode_production_create` and `test_barcode_production_create_tracked_bom` sometime fail. This commit modifies their tour to avoid random fails by clicking on the kanban's article itself instead of one of its div child. runbot build error: [190625](https://runbot.odoo.com/odoo/runbot.build.error/190625) and [190613](https://runbot.odoo.com/odoo/runbot.build.error/190613)
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#85229 Forward-Port-Of: odoo/enterprise#84848
17 changes
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…
5 changes
Resolved issues and error corrections
Updating a parent product in the Manufacturing Planning Schedule now keeps the list of components within the normal page limit. This prevents overly long pages and helps users keep a stable, manageable view when products have many components.
Original PR description
When updating a parent product, the MPS view will load ALL the components on the page even if it breaks the pager limit. Previously, there was a refresh at every change. It was annoying so it was removed. However this refresh made sure to reduce the number of records shown to the pager limit. The solution is to simply slice the received array of lines to the n first records, n being the value of `this.env.config.limit`. opw-4778588
Task-4781564 Forward-Port-Of: odoo/enterprise#85149
Original PR description
Task-4781564 Forward-Port-Of: odoo/enterprise#85149
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
Miscellaneous changes
An error occurs when trying to send a reversed invoice to ZATCA if it included a downpayment that was also reversed. Steps to reproduce: - Install "Sales" and "Saudi Arabia - E-invoicing" apps. - Create a quotation and confirm it. - Create a downpayment and post it to ZATCA. - Create an invoice **A** including the downpayment and post it. - Reverse the downpayment and post it to ZATCA. - Reverse invoice **A** and try posting it to ZATCA. An error will occur: ```python File ".../l10
Original PR description
An error occurs when trying to send a reversed invoice to ZATCA if it included a downpayment that was also reversed. Steps to reproduce: - Install "Sales" and "Saudi Arabia - E-invoicing" apps. -…
An error occurs when trying to send a reversed invoice to ZATCA if it included a downpayment that was also reversed.
Steps to reproduce:
- Install "Sales" and "Saudi Arabia - E-invoicing" apps.
- Create a quotation and confirm it.
- Create a downpayment and post it to ZATCA.
- Create an invoice **A** including the downpayment and post it.
- Reverse the downpayment and post it to ZATCA.
- Reverse invoice **A** and try posting it to ZATCA.
An error will occur:
```python
File ".../l10n_sa_edi/models/account_edi_xml_ubl_21_zatca.py", line 356, in _l10n_sa_get_line_prepayment_vals
'prepayment_id': prepayment_move_id.name,
^^^^^^^^^^^^^^^^^^^^^^^
File ".../odoo/fields.py", line 1154, in __get__
record.ensure_one()
File ".../odoo/models.py", line 5204, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: account.move(190098, 190096)
```
This fix ensures that only the actual downpayment move is used by filtering on the move type.
opw-4567756
Forward-Port-Of: odoo/odoo#208259
Forward-Port-Of: odoo/odoo#201322When a record is pushed directly into db having partial values like missing checkout date will lead to raising validation error. Steps to Reproduce: - In kiosk try to do a login/logout using the same employee having irregular record it raises validation error. Issue: - Unresponsive kiosk system. Reason: - When a validation error is raised from rpc call it directly displays the error dialog and moves and returns thus making the lockScanner reset, thus not allowing next users to us
Original PR description
When a record is pushed directly into db having partial values like missing checkout date will lead to raising validation error. Steps to Reproduce: - In kiosk try to do a login/logout using the same employee having irregular record it raises validation error. Issue: - Unresponsive kiosk system. Reason: - When a validation error is raised from rpc call it directly displays the error dialog and moves and returns thus making the lockScanner reset, thus not allowing next users to use kiosk. Fix: - Catching the error and posting it as notification (dialog can also be done) and letting the whole function execute. task-4760381 Forward-Port-Of: odoo/odoo#209306 Forward-Port-Of: odoo/odoo#207904
If the user deleted some leave types, the payroll app will not be able to function anymore, in this PR we fallback and only browse for the ones that were not deleted Forward-Port-Of: odoo/enterprise#85119
Original PR description
If the user deleted some leave types, the payroll app will not be able to function anymore, in this PR we fallback and only browse for the ones that were not deleted Forward-Port-Of: odoo/enterprise#85119
To ease multi-company usage, we introduce the company_id field on insurance views since one insurance per company has to be created Forward-Port-Of: odoo/enterprise#85129 Forward-Port-Of: odoo/enterprise#84968
Original PR description
To ease multi-company usage, we introduce the company_id field on insurance views since one insurance per company has to be created Forward-Port-Of: odoo/enterprise#85129 Forward-Port-Of: odoo/enterprise#84968