Wednesday, February 12, 2025
20 changes · saas-17.4
Miscellaneous changes
Steps to reproduce ================== - Install web_studio,mrp - Go to Manufacturing > Operations > Manufacturing Orders - Open studio - Add a related field - Select Product > Image - Change the widget to the ImageField - Exit studio - Open any record - Go to the product - Edit the image - Go back to the list view => The old image is still displayed Cause of the issue ================== We add a unique parameter in the image url with the last record update. In the case of a
Original PR description
Steps to reproduce ================== - Install web_studio,mrp - Go to Manufacturing > Operations > Manufacturing Orders - Open studio - Add a related field - Select Product > Image - Change the widget to the ImageField - Exit studio - Open any record - Go to the product - Edit the image - Go back to the list view => The old image is still displayed Cause of the issue ================== We add a unique parameter in the image url with the last record update. In the case of a related field, the record has not been updated even if the image has changed. Solution ======== We still need to pass a unique value in the URL because browser will not fetch twice the same URL in the same session. In that case, we can simply pass a random value opw-4378605 Forward-Port-Of: odoo/odoo#196843 Forward-Port-Of: odoo/odoo#192036
**Current behavior:** In the product catalog, a search Panel is displayed. The user can check filters to find their products. When a category or another filter is checked, the attributes filters are not updated accordingly, even if they are no longer present in the products of the selected category. **Expected behavior:** The attributes that do not have a positive count should disappear from the Search Panel. **Steps to reproduce:** 1. On a blank database, create two products:
Original PR description
**Current behavior:** In the product catalog, a search Panel is displayed. The user can check filters to find their products. When a category or another filter is checked, the attributes filters are…
**Current behavior:**
In the product catalog, a search Panel is displayed. The user can check filters to find their products. When a category or another filter is checked, the attributes filters are not updated accordingly, even if they are no longer present in the products of the selected category.
**Expected behavior:**
The attributes that do not have a positive count should disappear from the Search Panel.
**Steps to reproduce:**
1. On a blank database, create two products:
1.1 Product A, with category CA and attributes A1 and A2.
1.2 Product B, with category CB and attributes B1 and B2.
3. Go to Sales Order, create a new one and open the product catalog
4. The left search Panel should display the categories CA and CB, and the attributes A1, A2, B1, and B2.
5. Check the category CB.
6. Attributes A1 and A2 are still present.
**Cause of the issue:**
The search Panel JS script is modified by the `product` model, to add the Attributes section. However, the attributes are not filtered based on the selected category, and are always displayed.
**Fix:**
- Add a filtering condition in the `product` model to only display the attributes that have a positive `count`.


opw-4516166
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#197116Versions -------- - 16.0+ Steps ----- 1. Set up a company located in United Arab Emirates; 2. go to Payment Providers / Stripe; 3. click the Connect Stripe button; Issue ----- > **Validation Error** > Stripe Proxy error: an error occurred while setting up your Stripe account. > Stripe gave us the following information: 'individual' is not a supported business type in the country AE. Cause ----- The initial payload sent to Stripe to connect in live mode is with `business_type
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Set up a company located in United Arab Emirates; 2. go to Payment Providers / Stripe; 3. click the Connect Stripe button; Issue ----- > **Validation Error** > Stripe Proxy error: an error occurred while setting up your Stripe account. > Stripe gave us the following information: 'individual' is not a supported business type in the country AE. Cause ----- The initial payload sent to Stripe to connect in live mode is with `business_type: individual`. This default works for most locales, but for some, e.g. `l10n_ae`, a "registered business" is required. Solution -------- Connect to Stripe using `business_type: company`. This value can still be changed later _after_ entering live mode via `connect.stripe.com`. opw-4545565 Forward-Port-Of: odoo/odoo#197367 Forward-Port-Of: odoo/odoo#197222
The installation of the demo data of module `industry_fsm_sale` module triggered the sending of an SMS. Now, the SMS API is unavailable during module installation. Forward-Port-Of: odoo/odoo#197356 Forward-Port-Of: odoo/odoo#196671
Original PR description
The installation of the demo data of module `industry_fsm_sale` module triggered the sending of an SMS. Now, the SMS API is unavailable during module installation. Forward-Port-Of: odoo/odoo#197356 Forward-Port-Of: odoo/odoo#196671
Versions -------- - 17.0+ Steps ----- 1. Add 5+ lines to a product's eCommerce description; 2. add this product to your wishlist; 3. open wishlist. Issue ----- The table's border is broken, left of the image. Cause ----- Commit 196f34c6b5271 added the Bootstrap classes `d-none d-md-block` to the table row, in order to hide the image on small devices. The `d-md-block` class cancels out its existing `align-middle` class, which only affects `inline` or `table-cell` elements, not
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Add 5+ lines to a product's eCommerce description; 2. add this product to your wishlist; 3. open wishlist. Issue ----- The table's border is broken, left of the image. Cause ----- Commit 196f34c6b5271 added the Bootstrap classes `d-none d-md-block` to the table row, in order to hide the image on small devices. The `d-md-block` class cancels out its existing `align-middle` class, which only affects `inline` or `table-cell` elements, not `block` elements. Consequently, the `vertical-align: middle` CSS rule is ignored, leaving the image unaligned on top of the table. Solution -------- Replace `d-md-block` with `d-md-table-cell`. opw-4260090 Forward-Port-Of: odoo/odoo#197304
Version: 16.0 to master Browser: Firefox only Steps to Reproduce: 1. Open website in edit mode (In Desktop) 2. Open inspect element, switch to mobile view (Inspector mobile view) 3. Click burger menu to open 4. Traceback occurs Reason for Change: In Firefox, when the inspector's mobile view is used, it simulates touch events. Clicking the burger menu returns undefined, causing an error. This PR ensures that the page does not crash by handling the undefined case. task-398098
Original PR description
Version: 16.0 to master Browser: Firefox only Steps to Reproduce: 1. Open website in edit mode (In Desktop) 2. Open inspect element, switch to mobile view (Inspector mobile view) 3. Click burger menu to open 4. Traceback occurs Reason for Change: In Firefox, when the inspector's mobile view is used, it simulates touch events. Clicking the burger menu returns undefined, causing an error. This PR ensures that the page does not crash by handling the undefined case. task-3980983 Forward-Port-Of: odoo/odoo#173785
This error occurs when a user does not enter a Webhook Secret. As a result, when processing the payment, the missing secret causes the verification to fail, leading to a payment failure. - Install the `eCommerce` module without demo data and with Indian localization. - Install `Razorpay payment provider` and activate `developer mode`. - Add `Key ID` and `Key Secret` in Razorpay payment `provider`. - Set up webhook in Razorpay dashboard with a random `Webhook Secret`. - Go to the `website`
Original PR description
This error occurs when a user does not enter a Webhook Secret. As a result, when processing the payment, the missing secret causes the verification to fail, leading to a payment failure. - Install…
This error occurs when a user does not enter a Webhook Secret. As a result, when processing the payment, the missing secret causes the verification to fail, leading to a payment failure. - Install the `eCommerce` module without demo data and with Indian localization. - Install `Razorpay payment provider` and activate `developer mode`. - Add `Key ID` and `Key Secret` in Razorpay payment `provider`. - Set up webhook in Razorpay dashboard with a random `Webhook Secret`. - Go to the `website`, add the product to the cart, and proceed to payment using `UPI`.` `Error: 'bool' object has no attribute 'encode'` This issue occurs because the Webhook Secret is missing, returning False and causing payment verification to fail. This commit solves the error by handling missing `Webhook Secret` values by logging a warning and skipping the signature check instead of returning a False. Sentry: 6208134651 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196125
When having other modules that depend on the module, if they make an inheritance of the method `_cart_update` like it is on the original method from module `website_sale` (with parameters and then `kwargs`) the inheritance of this module fails, because neither `product_id` nor `set_qty` came on the `kwargs` values instead they came in the `args`.   the inheritance of this module fails, because neither `product_id` nor `set_qty` came on the `kwargs` values instead they came in the `args`.   By inheriting the way the original method is set, it will avoid having to check on the `args` or `kwargs` for the `product_id` and `set_qty` values and use the parameters instead. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197290 Forward-Port-Of: odoo/odoo#197032
**Current behaviour before PR:** When single cell is selected in a table, trying to apply color closes color palette and color is not getting applied on it. This happens because applying color on single cell changes selection and cell gets deselected in `_onSelectionChange`. **Desired behaviour after PR:** Now, it is possible to apply color on a single cell. task-3433784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Por
Original PR description
**Current behaviour before PR:** When single cell is selected in a table, trying to apply color closes color palette and color is not getting applied on it. This happens because applying color on single cell changes selection and cell gets deselected in `_onSelectionChange`. **Desired behaviour after PR:** Now, it is possible to apply color on a single cell. task-3433784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196255 Forward-Port-Of: odoo/odoo#173845
**Current behavior:** Changing the `delay` field on a `product.supplierinfo` then looking at the replenishment report will not have updated the qty fields of the orderpoint which were affected by the increase in delay (delivery lead time in the 'Purchase' tab on Product form). **Expected behavior:** The `qty_forecast` and `qty_to_order` fields update to reflect moves which should be captured according to JiT forecasting. **Steps to reproduce:** 1. Create some productA with a vendor
Original PR description
**Current behavior:** Changing the `delay` field on a `product.supplierinfo` then looking at the replenishment report will not have updated the qty fields of the orderpoint which were affected by the…
**Current behavior:** Changing the `delay` field on a `product.supplierinfo` then looking at the replenishment report will not have updated the qty fields of the orderpoint which were affected by the increase in delay (delivery lead time in the 'Purchase' tab on Product form). **Expected behavior:** The `qty_forecast` and `qty_to_order` fields update to reflect moves which should be captured according to JiT forecasting. **Steps to reproduce:** 1. Create some productA with a vendor that has some lead time 2. Create a sale order for that product, edit the sale order `commitment_date` field (Sale Order -> Other Info -> Delivery Date) to some future date such that the delay would not necessitate any replenishment at the current date (i.e., today + delay + 1 day) 3. Create an orderpoint for the productA, see that the `qty_to_order` is 0 -> this makes sense 4. Increase the delay for the vendor on productA enough that a purchase order would be required to fulfill the sale order on time 5. Go back to the replenishment report -> qty to order still 0 **Cause of the issue:** `qty_to_order` is stored and computed, in this sequence none of its dependencies are modified and so it remains 0 after `delay` on the supplier info record is changed. **Fix:** Add `product_id.seller_ids.delay` to the dependency list of `_compute_qty` (From 17.4+ `_compute_qty_to_order()` is OK) opw-4333016 Forward-Port-Of: odoo/odoo#195657 Forward-Port-Of: odoo/odoo#189427
As of January 2025, E-Faktur submission is on a new system called Coretax, which requires different file format and content. This commit backports the refactor we did for `l10n_id_efaktur` on 18.0. 4416314 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197171 Forward-Port-Of: odoo/odoo#194791
Original PR description
As of January 2025, E-Faktur submission is on a new system called Coretax, which requires different file format and content. This commit backports the refactor we did for `l10n_id_efaktur` on 18.0. 4416314 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197171 Forward-Port-Of: odoo/odoo#194791
Steps to Reproduce: * Go to Website --> Edit Mode. * Drag and drop the form snippet. * Click inside the submit button such that the entire label "Submit" is selected. * Press the right arrow key. * The website will become unresponsive. **Changes made:** Assign `previousSelection` with the following properties: `anchorNode: selection.anchorNode` `anchorOffset: selection.anchorOffset` `focusNode: selection.focusNode` `focusOffset: selection.focusOffset` **Reason:**
Original PR description
Steps to Reproduce: * Go to Website --> Edit Mode. * Drag and drop the form snippet. * Click inside the submit button such that the entire label "Submit" is selected. * Press the right arrow key. *…
Steps to Reproduce:
* Go to Website --> Edit Mode.
* Drag and drop the form snippet.
* Click inside the submit button such that the entire label "Submit" is
selected.
* Press the right arrow key.
* The website will become unresponsive.
**Changes made:**
Assign `previousSelection` with the following properties:
`anchorNode: selection.anchorNode`
`anchorOffset: selection.anchorOffset`
`focusNode: selection.focusNode`
`focusOffset: selection.focusOffset`
**Reason:**
The original code attempted to spread the Selection object into previousSelection using **{...selection}**, which is incorrect since **the Selection object is not iterable**. As a result, `previousSelection` was never updated correctly, potentially causing the while loop to run indefinitely.
This fix manually extracts key properties—anchorNode, anchorOffset, focusNode, and focusOffset—from the Selection object and stores them in a plain object. This ensures that previousSelection updates properly, allowing the `hasSelectionChanged` function to function as expected.
By implementing this change, we prevent infinite loops and ensure accurate selection tracking, improving the stability and functionality of the text editor.
task-4471656
Forward-Port-Of: odoo/odoo#197010
Forward-Port-Of: odoo/odoo#194061In Chile localization it is possible to add a Related Document when creating an Invoice Document. These documents info are then added to the Electronic Invoice sent to the government. Currently, when creating a Boleta Electronica and adding a Cross Reference Document, the EDI system will not validate correctly the xml, with error `Error en Schema [0] LSX-00204: extra data at end of complex element` This occurs because the system first creates a dte from a common xml schema, then wrap
Original PR description
In Chile localization it is possible to add a Related Document when creating an Invoice Document. These documents info are then added to the Electronic Invoice sent to the government. Currently, when…
In Chile localization it is possible to add a Related Document when creating an Invoice Document. These documents info are then added to the Electronic Invoice sent to the government. Currently, when creating a Boleta Electronica and adding a Cross Reference Document, the EDI system will not validate correctly the xml, with error `Error en Schema [0] LSX-00204: extra data at end of complex element` This occurs because the system first creates a dte from a common xml schema, then wrap it with the appropriate envelope. However the schema of Boletas slighly differs[1], as it doesn't have the field FchRef, so it gets rejected by SII A solution is to modify the code of dte_subtemplate to make sure that FchRef only appears if the Schema corresponds to http://www.sii.cl/SiiDte EnvioDTE_v10.xsd, and not to http://www.sii.cl/SiiDte EnvioBOLETA_v11.xsd [1] https://www.sii.cl/factura_electronica/factura_mercado/formato_boletas_elec_202412.pdf opw-4433202 Forward-Port-Of: odoo/enterprise#78177
### Issue: The barcode relies heavily on the data fetched in its LazyCache to work properly (in order to avoid rpc call's each time records data's are needed). However, some of these data's are loaded using search methods that ignore archived records by default. This leads to the creation of a cache that do not contains records that are expected to be there and hence will lead to tracebacks. ### Steps to reproduce: - In the settings enable "Multi-Step Routes" - Inventory > Configuratio
Original PR description
### Issue: The barcode relies heavily on the data fetched in its LazyCache to work properly (in order to avoid rpc call's each time records data's are needed). However, some of these data's are…
### Issue: The barcode relies heavily on the data fetched in its LazyCache to work properly (in order to avoid rpc call's each time records data's are needed). However, some of these data's are loaded using search methods that ignore archived records by default. This leads to the creation of a cache that do not contains records that are expected to be there and hence will lead to tracebacks. ### Steps to reproduce: - In the settings enable "Multi-Step Routes" - Inventory > Configuration > Warehouse Management > Locations - Create a new location WH/Stock/Love and a children location WH/Stock/Love/Layer - Create and confirm an internal transfer from WH/Stock to WH/Stock/Love for 1 unit of any storable product in stock - Change the location dest of the move line to WH/Stock/Love/Layer. - Archive the location WH/Stock/Love - Open your internal transfer in the barcode App. #### > Traceback: An error occured in the owl lifecycle... Record stock.location with id=... doesn't exist in the cache, it should return by the server at LazyBarcodeCache.getRecord. ### Cause of the issue: When entering the barcode man component, a call of the `get_barcode_data` is launched to fetch and populate the barcode data's and data are added to the barcode lazy cache in order to retreive record values without additional rpc calls: https://github.com/odoo/enterprise/blob/cc21959226e0bdb6b840f5023f08b2fdc0590023/stock_barcode/static/src/components/main.js#L76-L93 https://github.com/odoo/enterprise/blob/cc21959226e0bdb6b840f5023f08b2fdc0590023/stock_barcode/static/src/models/barcode_model.js#L32-L34 For instance, when redering the picking template, the location dest id will be retreived from the cache: https://github.com/odoo/enterprise/blob/cc21959226e0bdb6b840f5023f08b2fdc0590023/stock_barcode/static/src/components/line.js#L7-L9 https://github.com/odoo/enterprise/blob/cc21959226e0bdb6b840f5023f08b2fdc0590023/stock_barcode/static/src/models/barcode_picking_model.js#L1077-L1079 The traceback occurs because the record was actually never added to the data's and hence never added to the cache because part of the `get_barcode_data` call is performed with searchs that ignore completely the archived records (unless the 'active_test' key is in the context): https://github.com/odoo/enterprise/blob/cc21959226e0bdb6b840f5023f08b2fdc0590023/stock_barcode/models/stock_picking.py#L102-L106 opw-4423110 Forward-Port-Of: odoo/enterprise#78297
Different countries have different attendance rules and therefore customizing the attendance entries might be relevant. In order to be able to properly filter we introduce a domain retrieval method which can be properly inherited. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#78195
Original PR description
Different countries have different attendance rules and therefore customizing the attendance entries might be relevant. In order to be able to properly filter we introduce a domain retrieval method which can be properly inherited. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#78195
Previously, the database view generated for the meal vouchers report in the Belgian localization didn't have an id which caused an error on the runbot. This commit fixes this issue by generating the id. task-4463505 Forward-Port-Of: odoo/enterprise#76735
Original PR description
Previously, the database view generated for the meal vouchers report in the Belgian localization didn't have an id which caused an error on the runbot. This commit fixes this issue by generating the id. task-4463505 Forward-Port-Of: odoo/enterprise#76735
Forward-Port-Of: odoo/enterprise#79083
Original PR description
Forward-Port-Of: odoo/enterprise#79083
ADHOC ticket 85864 Forward-Port-Of: odoo/enterprise#76488
Original PR description
ADHOC ticket 85864 Forward-Port-Of: odoo/enterprise#76488
This commit fixes the following issues of the module l10n_cz_reports_2025: 1. The `tax_office_name` was changed to `name` but that change was dropped in _rec_names_search of the tax office. 2. The readonly attribute was duplicated in account move view. 3. The account_move_line supplies code compute method was different from that of the transaction code (although the logic is identical). Forward-Port-Of: odoo/enterprise#78960
Original PR description
This commit fixes the following issues of the module l10n_cz_reports_2025: 1. The `tax_office_name` was changed to `name` but that change was dropped in _rec_names_search of the tax office. 2. The readonly attribute was duplicated in account move view. 3. The account_move_line supplies code compute method was different from that of the transaction code (although the logic is identical). Forward-Port-Of: odoo/enterprise#78960
The taxonomy for the Dutch tax reports was updated from [NT18 to NT19][1]. There were only changes in the namespaces. [1]: https://www.sbr-nl.nl/sites/default/files/bestanden/taxonomie/NT19_BD_20241211%20Versioning_rpt-from_NT18_20231213_to_NT19_20241211.zip [task-4373106](https://www.odoo.com/odoo/project.task/4373106) Forward-Port-Of: odoo/enterprise#78540
Original PR description
The taxonomy for the Dutch tax reports was updated from [NT18 to NT19][1]. There were only changes in the namespaces. [1]: https://www.sbr-nl.nl/sites/default/files/bestanden/taxonomie/NT19_BD_20241211%20Versioning_rpt-from_NT18_20231213_to_NT19_20241211.zip [task-4373106](https://www.odoo.com/odoo/project.task/4373106) Forward-Port-Of: odoo/enterprise#78540