Friday, July 26, 2024
30 changes · saas-17.4
Resolved issues and error corrections
This fix prevents an error when users create stock pickings with packages while only the Inventory app is installed. It ensures package weight information is available in the stock module, so warehouse operations can continue without requiring the Delivery module.
Original PR description
Usecase: - Install only stock - Create a picking with some packages It crashes since the shipping weight is zero then it fallback on weight but this field only exists in `stock_delivery` Share the compute code and we will move the field in master Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Budget cell audits in the Profit and Loss report no longer fail with an error. This ensures users can review budget-related report details without interruptions.
Original PR description
Steps to reproduce: - Open the Profit & Loss report - Create a budget using the budget filter - Audit a cell of the report Issue: A traceback occurs, indicating a string or bytes-like object error. Cause: In the previous commit https://github.com/odoo/enterprise/commit/8f19af2335d4199a306d9db489cbac1db656a0cb, the markup of line IDs was modified to include dictionaries for groupby information. However, one 'groupby' was overlooked, causing a traceback due to the system expecting a string instead of a dictionary. Fix: This commit corrects the missing 'groupby' case to handle dictionaries properly,preventing the traceback. Additional Changes: Updated a related comment to reflect the new markup handling for consistency. task-3791247
Miscellaneous changes
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.3.0 These releases contain small improvements v2.3.0 -- * [IMP] compiler: add support for the .translate suffix Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174621
Original PR description
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.3.0 These releases contain small improvements v2.3.0 -- * [IMP] compiler: add support for the .translate suffix Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174621
Description of the issue/feature this PR addresses: - Updated the condition of groups for shipping_field as suggested in the previous PR https://github.com/odoo/odoo/pull/173162#discussion_r1686292899 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr opw - [4044861](https://www.odoo.com/odoo/project.task/4044861?cids=2) Forward-Port-Of: odoo/odoo#174072 Forward-Port-Of: odoo/odoo#174031
Original PR description
Description of the issue/feature this PR addresses: - Updated the condition of groups for shipping_field as suggested in the previous PR https://github.com/odoo/odoo/pull/173162#discussion_r1686292899 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr opw - [4044861](https://www.odoo.com/odoo/project.task/4044861?cids=2) Forward-Port-Of: odoo/odoo#174072 Forward-Port-Of: odoo/odoo#174031
Due to introduction of downpayment mechanism, if downpayment was made, Sale Order would no longer be in "has to be payed" state and it would prevent client from further payments. opw-3891128 Forward-Port-Of: odoo/odoo#163178
Original PR description
Due to introduction of downpayment mechanism, if downpayment was made, Sale Order would no longer be in "has to be payed" state and it would prevent client from further payments. opw-3891128 Forward-Port-Of: odoo/odoo#163178
accounts and group from syscebnl taxes adapted for these accounts for each country --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166211
Original PR description
accounts and group from syscebnl taxes adapted for these accounts for each country --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166211
Problem: Partner address is never display in the partner list and the search doesn't work with the address Steps to reproduce: - Install "point_of_sale" app - Start a shop session - Click on "Customer" - The address is not displayed for any partner Cause: The address field of a partner got lost during refactoring in v17.1 opw-4032931 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174413 Forward-Port-Of: od
Original PR description
Problem: Partner address is never display in the partner list and the search doesn't work with the address Steps to reproduce: - Install "point_of_sale" app - Start a shop session - Click on "Customer" - The address is not displayed for any partner Cause: The address field of a partner got lost during refactoring in v17.1 opw-4032931 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174413 Forward-Port-Of: odoo/odoo#172386
This commit ensures that the `isInDOM` helper function in Hoot actually checks that the given target is connected to a document. The previous implementation was naïve and only relied on the presence of a parent element. This was incomplete as there are some cases where a node is connected to a document element without having a `parentNode`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174487
Original PR description
This commit ensures that the `isInDOM` helper function in Hoot actually checks that the given target is connected to a document. The previous implementation was naïve and only relied on the presence of a parent element. This was incomplete as there are some cases where a node is connected to a document element without having a `parentNode`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174487
Current behavior before PR: I. Inserting text into an empty paragraph tag with a `br` does not remove the `br`. II. When pasting single or multiple block elements the start and end block would unwrap causing inconsistency while pasting. III. Unwrapping the firstChild and the lastChild when pasting empty blocks resulted in the addition of br's to the block. Desired behavior after PR is merged: I. Inserting text into an empty node with a `br` should result in the removal of that `br`
Original PR description
Current behavior before PR: I. Inserting text into an empty paragraph tag with a `br` does not remove the `br`. II. When pasting single or multiple block elements the start and end block would unwrap causing inconsistency while pasting. III. Unwrapping the firstChild and the lastChild when pasting empty blocks resulted in the addition of br's to the block. Desired behavior after PR is merged: I. Inserting text into an empty node with a `br` should result in the removal of that `br`. II. Make sure if the node to start or end with is the same node we want to paste into; unwrap it, otherwise split the node. III. Empty blocks are no longer unwrapped when pasting. IV. This PR also addresses issues with testcases that includes `p` tag without a `br`. task-3630662 Forward-Port-Of: odoo/odoo#174378 Forward-Port-Of: odoo/odoo#160345
Was always failing because of an invalid signature Forward-Port-Of: odoo/odoo#174217
Original PR description
Was always failing because of an invalid signature Forward-Port-Of: odoo/odoo#174217
Before this commit, the map could be wrongly centered if the longitude and latitude were unknown and localized on the fly using the JavaScript Geocoder API, as we did not wait for the result. Now, the code is reorganized as an async function, and we await all the promises before computing the map options. Forward-Port-Of: odoo/odoo#174257
Original PR description
Before this commit, the map could be wrongly centered if the longitude and latitude were unknown and localized on the fly using the JavaScript Geocoder API, as we did not wait for the result. Now, the code is reorganized as an async function, and we await all the promises before computing the map options. Forward-Port-Of: odoo/odoo#174257
Avoid extra redirect, use slug directly instead. Forward-Port-Of: odoo/odoo#174032
Original PR description
Avoid extra redirect, use slug directly instead. Forward-Port-Of: odoo/odoo#174032
Steps to reproduce: - Edit any product's 'Description for delivery orders' (inventory tab) - Create a delivery for this product (or confirm sale order to create one automatically) - Print delivery slip (Correct formatting) - Validate delivery - Print delivery slip once more (Description loses linebreaks) This is only for looks, but it's a document the end user will see so there are concerns about it looking unprofessional. This formatting error is due to us not being able to use a fie
Original PR description
Steps to reproduce: - Edit any product's 'Description for delivery orders' (inventory tab) - Create a delivery for this product (or confirm sale order to create one automatically) - Print delivery slip (Correct formatting) - Validate delivery - Print delivery slip once more (Description loses linebreaks) This is only for looks, but it's a document the end user will see so there are concerns about it looking unprofessional. This formatting error is due to us not being able to use a field element after remaking the order lines to group related products in python. opw-4040127 Forward-Port-Of: odoo/odoo#174495 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
`stdnum` library incorrectly sets `zeep` `Transport` timeout, resulting in some requests hanging for 15 minutes. With this monkeypatch the timeout will be set correctly. The monkeypatch is a full copy of the original code except for adding `operational_timeout` to the `Transport` initialization. The monkeypatch can be removed when https://github.com/arthurdejong/python-stdnum/issues/444 is resolved and the version is upgraded. Related zeep github issue: https://github.com/mvantellingen/
Original PR description
`stdnum` library incorrectly sets `zeep` `Transport` timeout, resulting in some requests hanging for 15 minutes. With this monkeypatch the timeout will be set correctly. The monkeypatch is a full…
`stdnum` library incorrectly sets `zeep` `Transport` timeout, resulting in some requests hanging for 15 minutes. With this monkeypatch the timeout will be set correctly. The monkeypatch is a full copy of the original code except for adding `operational_timeout` to the `Transport` initialization. The monkeypatch can be removed when https://github.com/arthurdejong/python-stdnum/issues/444 is resolved and the version is upgraded. Related zeep github issue: https://github.com/mvantellingen/python-zeep/issues/140 This fix was already merged but reverted due to an unexpected side-effect: Original commit: https://github.com/odoo-dev/odoo/commit/11062f6f77ed1292c6db9d64985dddeb46d354c8 Revert: https://github.com/odoo-dev/odoo/commit/de9df2ba5c15d399d6906ef54f3e4ac9f063a175 The issue originated from a dependency issue in the `zeep` library in [Ubuntu 22.04](https://packages.ubuntu.com/jammy/python3-zeep). The `python3-platformdirs` dependency is missing in there, yet it is used in that version of `zeep`. This missing dependency used to be hidden by the [chains of `try ... except ImporError` of `stdnum`](https://github.com/arthurdejong/python-stdnum/blob/d5666b8bfe379688a38bb0fd6764a8c536dd3c75/stdnum/util.py#L254). That means that it's another import from the chain that was used. So to reduce the possibility of introducing a similar bug and catch such errors, the original code from `get_soap_client` of `stdnum` has been fully copied. opw-3980718 Forward-Port-Of: odoo/odoo#174199 Forward-Port-Of: odoo/odoo#173359
Previously, the amount sent to Mollie always had 2 decimal places. However, Mollie supports 0 decimal places for amounts in ISK and JPY so it failed for payments in those currencies. This fix adjusts the decimal places sent to Mollie according to the currency. opw-4011259 Forward-Port-Of: odoo/odoo#174278 Forward-Port-Of: odoo/odoo#173595
Original PR description
Previously, the amount sent to Mollie always had 2 decimal places. However, Mollie supports 0 decimal places for amounts in ISK and JPY so it failed for payments in those currencies. This fix adjusts the decimal places sent to Mollie according to the currency. opw-4011259 Forward-Port-Of: odoo/odoo#174278 Forward-Port-Of: odoo/odoo#173595
Steps to reproduce: - Create a kit BOM composed of 40kg of storable product X. - Set cost of X as 10$ - Sell 3 kits in POS - Select customer and create an invoice - in accounting check the the invoice lines - Odoo is calculating the COGS as 3kg instead of 120kg. (30$ instead of 120$) Bug: kit quantities not taken into consideration opw-3962665 Forward-Port-Of: odoo/odoo#173853 Forward-Port-Of: odoo/odoo#171277
Original PR description
Steps to reproduce: - Create a kit BOM composed of 40kg of storable product X. - Set cost of X as 10$ - Sell 3 kits in POS - Select customer and create an invoice - in accounting check the the invoice lines - Odoo is calculating the COGS as 3kg instead of 120kg. (30$ instead of 120$) Bug: kit quantities not taken into consideration opw-3962665 Forward-Port-Of: odoo/odoo#173853 Forward-Port-Of: odoo/odoo#171277
Current behaviour: --- Connected as Marc Demo, cannot set the Unique Field of any marketing campaign Steps to reproduce: --- 1. Go to Settings > Users > Marc Demo 2. At Marketing Automation, set User 3. Connect as Marc Demo 4. Go to Marketing Automation 5. Open any campaign 6. Try to set the Unique Field 7. Access Error Cause of the issue: --- unique_field_id is comodel of ir.model.fields Fix: --- Give group_marketing_automation_user the right to read ir.model.fields op
Original PR description
Current behaviour: --- Connected as Marc Demo, cannot set the Unique Field of any marketing campaign Steps to reproduce: --- 1. Go to Settings > Users > Marc Demo 2. At Marketing Automation, set User 3. Connect as Marc Demo 4. Go to Marketing Automation 5. Open any campaign 6. Try to set the Unique Field 7. Access Error Cause of the issue: --- unique_field_id is comodel of ir.model.fields Fix: --- Give group_marketing_automation_user the right to read ir.model.fields opw-4001919 Forward-Port-Of: odoo/enterprise#66690
Before, in a multi company and mutli website setup, booking an appointment used the companies on the organizer for the context. This was leading to issue for appointment type in Website 2 tied to Company 2. Indeed the mails for the booking were sent with the context of Company 1 (value based on the allowed_company_ids of the user). Now, when website_appointment is installed, if a website is linked to the actual request we use the company tied to it. This ensure that we always use the corre
Original PR description
Before, in a multi company and mutli website setup, booking an appointment used the companies on the organizer for the context. This was leading to issue for appointment type in Website 2 tied to Company 2. Indeed the mails for the booking were sent with the context of Company 1 (value based on the allowed_company_ids of the user). Now, when website_appointment is installed, if a website is linked to the actual request we use the company tied to it. This ensure that we always use the correct company of the website for the creation of the event. We target 17.0 to avoid a behavior change in older stable as the multi website was officially supported for appointment type in that version. Could be backported if really necessary. task-3977787 Forward-Port-Of: odoo/enterprise#64144
Steps to reproduce - Display the intrastat report with at least one line - Create a european company - Install intrastat - Create and post an invoice to partner from another european country - Open the intrastat report - Deactivate the "Grouped" filter in the Options - Activate the Comparison filter (with any other date) => Traceback stating that the query has syntax error Cause of the issue: Missing parentheses between the different sections of the UNION ALL statement. task-40
Original PR description
Steps to reproduce - Display the intrastat report with at least one line - Create a european company - Install intrastat - Create and post an invoice to partner from another european country - Open the intrastat report - Deactivate the "Grouped" filter in the Options - Activate the Comparison filter (with any other date) => Traceback stating that the query has syntax error Cause of the issue: Missing parentheses between the different sections of the UNION ALL statement. task-4017165 Forward-Port-Of: odoo/enterprise#67302 Forward-Port-Of: odoo/enterprise#65720
Steps to reproduce: ------------------- - Install `data_merge` and `CRM` module - Go to CRM and create 2 opportunities with same name - Activate debug mode and go to `Scheduled Actions` - Run `Data Merge: Find Duplicate Records` action - Go to Discuss and click on `History` channel Issue: ------ Error: `Record does not exist or has been deleted.`. Cause: ------ When uninstalling a module that have a model that is used as `res_model_id` in a `Deduplication Model`, we do not
Original PR description
Steps to reproduce: ------------------- - Install `data_merge` and `CRM` module - Go to CRM and create 2 opportunities with same name - Activate debug mode and go to `Scheduled Actions` - Run `Data Merge: Find Duplicate Records` action - Go to Discuss and click on `History` channel Issue: ------ Error: `Record does not exist or has been deleted.`. Cause: ------ When uninstalling a module that have a model that is used as `res_model_id` in a `Deduplication Model`, we do not remove message the message linked to the record deleted. Therefore, when opening history channel, we try to access messages linked to records that might have been deleted. Solution: --------- When removing `Deduplication Model`, also remove the messages linked to the record. opw-3906945 Forward-Port-Of: odoo/enterprise#67094 Forward-Port-Of: odoo/enterprise#64906
eBay recently changed the URL they send in the viewitemURL. We found 3 different ways they send it, but there might be more. We shouldn't have relied on this URL to match products in the beginning, but we can't refactor this flow in stable, instead, we try a different way to match the url, and fallback on another eBay call to get the expected variant. opw-3934127 Forward-Port-Of: odoo/enterprise#66924
Original PR description
eBay recently changed the URL they send in the viewitemURL. We found 3 different ways they send it, but there might be more. We shouldn't have relied on this URL to match products in the beginning, but we can't refactor this flow in stable, instead, we try a different way to match the url, and fallback on another eBay call to get the expected variant. opw-3934127 Forward-Port-Of: odoo/enterprise#66924
Instead of calling `env.cr.savepoint()` in a loop, which will create a savepoint at every iteration, we should create a single savepoint and rollback to it at the end of every subtest. In Postgres, the number of sub-transactions that may exist in active transactions has a hard limit of 64 before sub-transactions are stored on disk. It's therefore best practice to limit the number of savepoints we create. See also https://github.com/odoo/odoo/pull/167236 Forward-Port-Of: odoo/enterprise#66
Original PR description
Instead of calling `env.cr.savepoint()` in a loop, which will create a savepoint at every iteration, we should create a single savepoint and rollback to it at the end of every subtest. In Postgres, the number of sub-transactions that may exist in active transactions has a hard limit of 64 before sub-transactions are stored on disk. It's therefore best practice to limit the number of savepoints we create. See also https://github.com/odoo/odoo/pull/167236 Forward-Port-Of: odoo/enterprise#66665 Forward-Port-Of: odoo/enterprise#66322
### Steps to reproduce: - Install hr_holidays_contract_gantt module - Create two employees one with a contract and another without - Create a time off for each employee - Check Time Off -> Overview ### Current behavior before PR: The employee who has a contract will have grey cells on weekend days that are coming after his contract start date but the ones before will be white. The employee who has no contract won't have any grey cells neither for his off days nor the weekend days.
Original PR description
### Steps to reproduce: - Install hr_holidays_contract_gantt module - Create two employees one with a contract and another without - Create a time off for each employee - Check Time Off -> Overview ### Current behavior before PR: The employee who has a contract will have grey cells on weekend days that are coming after his contract start date but the ones before will be white. The employee who has no contract won't have any grey cells neither for his off days nor the weekend days. ### Desired behavior after PR is merged: Both employees should show the grey cells in the gantt view whether they have contract or not because if so we fallback on the employee working hours and then company's working hours 'According to the PO' opw-3961873 Forward-Port-Of: odoo/enterprise#65470
Since odoo/odoo@c853c3b rpc requests doesn't block anymore the UI, so in commit odoo/enterprise@70c7a747a19 the manual rpc bus notifications were removed, thus preventing the loading indicator to show up. As we're not blocking the UI anymore, this commit simply change the "silent" rpc call to normal rpc calls so that the loading indicator shows up again. Forward-Port-Of: odoo/enterprise#67367
Original PR description
Since odoo/odoo@c853c3b rpc requests doesn't block anymore the UI, so in commit odoo/enterprise@70c7a747a19 the manual rpc bus notifications were removed, thus preventing the loading indicator to show up. As we're not blocking the UI anymore, this commit simply change the "silent" rpc call to normal rpc calls so that the loading indicator shows up again. Forward-Port-Of: odoo/enterprise#67367
Adding another report for SYSCEBNL. We need to provide a way to add an availability for children of a COA, so the reports is only available for Associations (and not for Companies). Forward-Port-Of: odoo/enterprise#62883
Original PR description
Adding another report for SYSCEBNL. We need to provide a way to add an availability for children of a COA, so the reports is only available for Associations (and not for Companies). Forward-Port-Of: odoo/enterprise#62883
Where possible, we make the eTIMS-specific fields and buttons invisible unless the company has Kenya as fiscal country. Exceptions to this are: - the buttons on partner and user form views. We don't have a way of showing them only if the currently selected company is Kenyan. However, they are already visible only in debug mode, so this isn't too much of a problem. - the 'Custom Imports' menuitem - we don't have a way of making it conditionally visible. Forward-Port-Of: odoo/enterprise#6690
Original PR description
Where possible, we make the eTIMS-specific fields and buttons invisible unless the company has Kenya as fiscal country. Exceptions to this are: - the buttons on partner and user form views. We don't have a way of showing them only if the currently selected company is Kenyan. However, they are already visible only in debug mode, so this isn't too much of a problem. - the 'Custom Imports' menuitem - we don't have a way of making it conditionally visible. Forward-Port-Of: odoo/enterprise#66905
How to reproduce: ================= - Enable "Storage Locations"; - Create a product with a barcode and add some qty in a sublocation (e.g.: 10 products in Shelf 1); - Create an internal transfer from WH/Stock to WH/Stock for this product for at least 2 qty; - Confirm the internal transfer and open it in the Barcode app; - You can see you have one line, from WH/Stock/Shelf 1 to WH/Stock (if we follow previous example); - Scan one time the product, then scan another location (eg.: shelf2),
Original PR description
How to reproduce: ================= - Enable "Storage Locations"; - Create a product with a barcode and add some qty in a sublocation (e.g.: 10 products in Shelf 1); - Create an internal transfer…
How to reproduce: ================= - Enable "Storage Locations"; - Create a product with a barcode and add some qty in a sublocation (e.g.: 10 products in Shelf 1); - Create an internal transfer from WH/Stock to WH/Stock for this product for at least 2 qty; - Confirm the internal transfer and open it in the Barcode app; - You can see you have one line, from WH/Stock/Shelf 1 to WH/Stock (if we follow previous example); - Scan one time the product, then scan another location (eg.: shelf2), the line will be split. => Issue here: the line for the remaining quantity has WH/Stock as source location instead of Shelf 1. Expected behavior: ================== The source location of the split line doesn't change. Explanation: ============ When a line is split, a new line is created for the remaining quantity. But the issue is, when a new line is created, it uses the picking's source location (or the previous scanned source) as the default location. OPW-4016136 Forward-Port-Of: odoo/enterprise#66360
Description of the issue/feature this PR addresses: 1 - Create a quality.point and add a repair operation type in the 'picking_type_ids' field 2 - Create a repair picking Current behavior before PR: No QC is created. This is expected because of https://github.com/odoo/enterprise/pull/59509 - only available since 17.3 Desired behavior after PR is merged: Exclude “repair” operation types from the domain of the “picking_type_ids” field to avoid confusing the user. opw-4052819 Forw
Original PR description
Description of the issue/feature this PR addresses: 1 - Create a quality.point and add a repair operation type in the 'picking_type_ids' field 2 - Create a repair picking Current behavior before PR: No QC is created. This is expected because of https://github.com/odoo/enterprise/pull/59509 - only available since 17.3 Desired behavior after PR is merged: Exclude “repair” operation types from the domain of the “picking_type_ids” field to avoid confusing the user. opw-4052819 Forward-Port-Of: odoo/enterprise#67257
### Before this PR In WhatsApp Composer, the Sample Values do not update when changing the WhatsApp Template. Instead, it display the sample values from the initially selected template. This issue also occurs with the Button URL as well. ### After this PR The Sample Values for Free Text Fields and Button Dynamic URL will now update based on the selected WhatsApp Template. Task-3996935 Forward-Port-Of: odoo/enterprise#66892
Original PR description
### Before this PR In WhatsApp Composer, the Sample Values do not update when changing the WhatsApp Template. Instead, it display the sample values from the initially selected template. This issue also occurs with the Button URL as well. ### After this PR The Sample Values for Free Text Fields and Button Dynamic URL will now update based on the selected WhatsApp Template. Task-3996935 Forward-Port-Of: odoo/enterprise#66892
We are facing an access error when the planning user tries to access the conflict shift because we have not given the planning user access to the draft shift. Steps to reproduce: - Install the planning app - Go to planning - Create two shifts at the same time (one published and the other in draft) - Create a new planning user - Log in as the planning user - Open the published shift task-3823274 Forward-Port-Of: odoo/enterprise#67346 Forward-Port-Of: odoo/enterprise#66356
Original PR description
We are facing an access error when the planning user tries to access the conflict shift because we have not given the planning user access to the draft shift. Steps to reproduce: - Install the planning app - Go to planning - Create two shifts at the same time (one published and the other in draft) - Create a new planning user - Log in as the planning user - Open the published shift task-3823274 Forward-Port-Of: odoo/enterprise#67346 Forward-Port-Of: odoo/enterprise#66356