Monday, August 5, 2024
33 changes · saas-17.4
Enhancements to existing features
Users can now enable a simpler debug mode without turning on the heavier assets debug mode. This gives teams a quicker, lower-cost way to access basic debugging when investigating issues or configuring the system.
Original PR description
Before this commit, you could only enable debug=assets, which incurs extra cost and does not serve the same purpose. Now, you can choose between light mode or the more costly mode.
Resolved issues and error corrections
Gift cards created with a value of zero now retain that price at checkout instead of being reset to the default product price. This prevents incorrect charges when businesses issue or scan zero-value gift cards in Point of Sale.
Original PR description
Problem: For a gift card with 0 points,there price is ignored and is set to the product price Steps to reproduce: - Install "point_of_sale" app and "pos_loyalty" module - Select "Scan existing cards" in the promotions settings - Generate a gift card with a value of 0.00 $ and copy its code - Start a shop session - Select the gift card product and enter the code - The price of the gift card is $50.00 instead of $0.00 Cause: 0 is interpreted as false in conditions Note: Implement a fix for this PR: https://github.com/odoo/odoo/pull/175232 See the PR for the test opw-3909019 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
The "active records" toggle from the domain editor was invisible in darkmode because it has a whit/transparent image over a forces white background. This revision forces a dak background limited to the toggle button so that it becomes visible again. Task-4081249 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-
Original PR description
The "active records" toggle from the domain editor was invisible in darkmode because it has a whit/transparent image over a forces white background. This revision forces a dak background limited to the toggle button so that it becomes visible again. Task-4081249 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#174857
Filtering devices by name fails if `devices_list` is empty. Type check on devices should prevent from trying to get the value of `name` on a string. PR being fixed: [https://github.com/odoo/odoo/pull/175277](https://github.com/odoo/odoo/pull/175277) Forward-Port-Of: odoo/odoo#175434 Forward-Port-Of: odoo/odoo#175356
Original PR description
Filtering devices by name fails if `devices_list` is empty. Type check on devices should prevent from trying to get the value of `name` on a string. PR being fixed: [https://github.com/odoo/odoo/pull/175277](https://github.com/odoo/odoo/pull/175277) Forward-Port-Of: odoo/odoo#175434 Forward-Port-Of: odoo/odoo#175356
Description of the issue/feature this PR addresses: This commit fixes a read access error on the field employee_ids of hr_leave when a user, who is not in group_hr_holidays_user, tries to cancel/refuse a timeoff. The bug only appears when the timeoff crosses a public holiday. Current behavior before PR: An access error pops up when an user , who is not a timeoff officer/admin, tries to cancel a timeoff. The timeoff should cross a public holiday in order for the bug to appear. Desired
Original PR description
Description of the issue/feature this PR addresses: This commit fixes a read access error on the field employee_ids of hr_leave when a user, who is not in group_hr_holidays_user, tries to cancel/refuse a timeoff. The bug only appears when the timeoff crosses a public holiday. Current behavior before PR: An access error pops up when an user , who is not a timeoff officer/admin, tries to cancel a timeoff. The timeoff should cross a public holiday in order for the bug to appear. Desired behavior after PR is merged: The user is able to cancel its timeoff even if he/she is not a timeoff officer/admin. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174682
Before this commit: - There was no option to hide the time part from the datetime widget. After this commit: - A 'show_time' option is added to the datetime widget. When set to false, it hides the time part from the datetime. Enterprise PR: https://github.com/odoo/enterprise/pull/67258 Task-3698841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175257 Forward-Port-Of: odoo/odoo#161705
Original PR description
Before this commit: - There was no option to hide the time part from the datetime widget. After this commit: - A 'show_time' option is added to the datetime widget. When set to false, it hides the time part from the datetime. Enterprise PR: https://github.com/odoo/enterprise/pull/67258 Task-3698841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175257 Forward-Port-Of: odoo/odoo#161705
Steps to reproduce: - Start the project tour - Follow the steps till the tour step comes to selecting Assignee's(user_ids) - Now click on the drop-down and select an user. Issue: - The step is not completed even though we have selected an user. - Now type something the Assignee's the step is completed Fix: - Incorrect trigger causes to generate incorrect consumeEvent (i.e., an input consume type) which is not satisfied by click event we initiate Solution: - Change the tri
Original PR description
Steps to reproduce: - Start the project tour - Follow the steps till the tour step comes to selecting Assignee's(user_ids) - Now click on the drop-down and select an user. Issue: - The step is not…
Steps to reproduce: - Start the project tour - Follow the steps till the tour step comes to selecting Assignee's(user_ids) - Now click on the drop-down and select an user. Issue: - The step is not completed even though we have selected an user. - Now type something the Assignee's the step is completed Fix: - Incorrect trigger causes to generate incorrect consumeEvent (i.e., an input consume type) which is not satisfied by click event we initiate Solution: - Change the trigger and rewrite the run function. ____ [FIX] web: increasing z-index of overlay-item Currently in the code base there is a recurrent problem of different components using z-index as ``` z-index: $zindex-modal + 1(a constant) ``` just so that their components have no obstructions. Due to this there is a problem for overlay service as each overlay-item uses z-index same as zindex-modal. Thus this causes problem in some areas (especially tours). Thus increasing z-index of overlay-item would be good. task-3906723 Forward-Port-Of: odoo/odoo#170247
In this commit: =============== Added config settings for the shiprocket. Task- 3657635 Forward-Port-Of: odoo/odoo#170738 Forward-Port-Of: odoo/odoo#154119
Original PR description
In this commit: =============== Added config settings for the shiprocket. Task- 3657635 Forward-Port-Of: odoo/odoo#170738 Forward-Port-Of: odoo/odoo#154119
Currently, when a loyalty program has a reward of type product and uses `reward_product_tag_id` (set up for at least 2 products), the addition of rewards to the pos order will have mismatched reward lines when adding the second free product (the first product needed to be added first). Steps to reproduce: ------------------- * Go to **Point of Sale** App * Go to **Products** and add a tag (the same) for two products * Under **Products** select `Discount & Loyalty` * Create a new program
Original PR description
Currently, when a loyalty program has a reward of type product and uses `reward_product_tag_id` (set up for at least 2 products), the addition of rewards to the pos order will have mismatched reward…
Currently, when a loyalty program has a reward of type product and uses `reward_product_tag_id` (set up for at least 2 products), the addition of rewards to the pos order will have mismatched reward lines when adding the second free product (the first product needed to be added first).
Steps to reproduce:
-------------------
* Go to **Point of Sale** App
* Go to **Products** and add a tag (the same) for two products
* Under **Products** select `Discount & Loyalty`
* Create a new program of type **Buy X Get Y**
* Rule:
* Min qty: 2 products $0.00
* Among Products: Put all chairs products for example
* Reward:
* Type: Free Product
* Product: None
* Product tag: The tag put on the products previously
* Open shop session
* Add 2 chairs
* Select reward, add the first one
> Everything ok until now
* Add 2 chairs
* Select reward, add the second one
> Observation: Reward computation is wrong we have the following lines:
```
4 Chairs,
Reward 1,
Reward 2,
Free product reward 1
```
> We are missing the free product line related to the second product added and the button to select reward is still highlighted.
Why the fix:
------------
To explain this fix I will use the example given above.
Here are the steps that have been executed already
* Add 2 chairs
* Add the first reward product
* Add 2 chairs
We are currently in the middle of the step "Add second reward product". During that process, we end up in the function `_computeUnclaimedFreeProductQty` while computing values for the reward line. At this very moment in time, the order has the following lines:
* 4 Chairs
* Product 1
* Free product (related to Product 1)
* Product 2
Where Product 1 and Product 2 are the reward products, having the same tag.
Let's focus on this piece of code, with the current example: https://github.com/odoo/odoo/blob/76023820c4d725c81677d2bf3e010c8cee1edd19/addons/pos_loyalty/static/src/js/Loyalty.js#L1464-L1475
Where `product` in this case is `Product 2`. What is happening here at the end is that we have `available = 1` because of line 4 and `claimed = 1` because of line 3. The program considers that we have already claimed the quantity and is the reason why it is not adding the reward line.
The first idea to fix this issue was to write the condition:
```js
if (reward.reward_product_ids.includes(product.id) && reward.reward_product_ids.includes(line.product.id)) {
```
instead of this one
```js
if (line.get_product().id === product.id) {
```
Now both line 2 and 4 are counted toward the `available` quantity. This way the code knows that we have two availaible free product but only 1 was claimed.
While this fixed the original issue, a new issue was created. Now, when we add the second product, the two reward lines were grouped together, using the price of the first free product added. Why was this happening?
Well, once the fist call to the function `_computeUnclaimedFreeProductQty` was done and the reward line was added we had the following order (temporarily)
* 4 Chairs
* Product 1
* Free product (related to Product 1)
* Product 2
* Free product (related to Product 2)
Which is what we expect but we face an issue when the loyalty programs are updated. When the programs update, we go through the function `_updateRewardLines`. In this function we discard the reward lines from the order and then for each claimed reward (Product 1 and Product 2) we re-apply the reward.
While applying the reward for Product 1, we again go through the function `_computeUnclaimedFreeProductQty`. In this case, the order looks like this:
* 4 Chairs
* Product 1
* Product 2
and the function will say that there are 2 available free product and 0 claimed. Were it is technically true, in this case we want to have the available quantity to 1. We want the initial condition:
```js
if (line.get_product().id === product.id) {
```
In the second passage, for product 2, we have `available = 2` and `claimed = 2`.
opw-3587020
Forward-Port-Of: odoo/odoo#175592
Forward-Port-Of: odoo/odoo#173529Add the modelo 130 report for spain localization task-3866238 Linked PR : https://github.com/odoo/enterprise/pull/62197 Forward-Port-Of: odoo/odoo#164946
Original PR description
Add the modelo 130 report for spain localization task-3866238 Linked PR : https://github.com/odoo/enterprise/pull/62197 Forward-Port-Of: odoo/odoo#164946
**Description** - From 16.0, while opening invoices of accounting and clicking on the web studio button, it is showing traceback for French localization of the "l10n_fr" module. As per [this](https://github.com/odoo/odoo/pull/171275) file in V16, module [l10n_fr_invoice_addr] has been optimized to adapt the documents as per new French law. Although, the traceback is showing due to the fact that while performing the "l10n_fr_invoice_addr" module's view, the "shipping_field" has set the groups
Original PR description
**Description** - From 16.0, while opening invoices of accounting and clicking on the web studio button, it is showing traceback for French localization of the "l10n_fr" module. As per…
**Description** - From 16.0, while opening invoices of accounting and clicking on the web studio button, it is showing traceback for French localization of the "l10n_fr" module. As per [this](https://github.com/odoo/odoo/pull/171275) file in V16, module [l10n_fr_invoice_addr] has been optimized to adapt the documents as per new French law. Although, the traceback is showing due to the fact that while performing the "l10n_fr_invoice_addr" module's view, the "shipping_field" has set the groups to null in this [account_move.py](https://github.com/odoo/odoo/pull/171275/files#diff-5125aad1cd2220c7e0c4cfe80ec0541acf5e9f4dbce46fb370e94cd281012b36R17) file which should not be the case. Due to this, as per this [condition](https://github.com/odoo/odoo/blob/16.0/odoo/models.py#L1464), it is trying to find groups in V16.0, which will lead to traceback as the groups are set null here. Whereas in stable version 15.0, it was working due to the fact that previously the groups were set to null through the [account_move.xml](https://github.com/odoo/odoo/blob/15.0/addons/l10n_fr_invoice_addr/views/account_move_views.xml#L9) file. - As a result, to resolve this issue this commit will pop the groups of "shipping_field" instead of setting it to null to bypass the traceback for the invoices of "l10n_fr" localization. **Steps to Reproduce (V16.0)** - Change the language to French. - Install "l10n_fr" module - Get an FR company. - Create an invoice, it's partner(customer) should be of FR , then confirm the invoice. - Open the invoice and then click on the web studio button. **Solution** - To resolve this issue this commit will pop the groups of "shipping_field" instead of setting it to null to bypass the traceback for the invoices of "l10n_fr" localization. **Current behavior before PR:**  --- opw-[4044861](https://www.odoo.com/odoo/project.task/4044861?cids=2) I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173162
Avoid setting default value of zero for Integer/Float fields or False for Boolean fields (those are already the fields default) This avoid triggering write on the related models (on multi-companies database with millions on journal entries this speedup the installation of modules from ~8-9 minutes to ~15 seconds) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175597 Forward-Port-Of: odoo/odoo#175585
Original PR description
Avoid setting default value of zero for Integer/Float fields or False for Boolean fields (those are already the fields default) This avoid triggering write on the related models (on multi-companies database with millions on journal entries this speedup the installation of modules from ~8-9 minutes to ~15 seconds) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175597 Forward-Port-Of: odoo/odoo#175585
Steps to reproduce: - Manufacturing > Products > Bills of Material > New - Add any item as component then the same item as by-product - Confirm - Operations > Manufacturing Order > New - Pick the product associated to your newly created BoM - Confirm > Overview What happens and why: Odoo raises an RPC error due to an inifinite recursion between _get_components_data and _get_replenishment_lines. Both calls are made before the manufacturing order line is flagged as processed so the funct
Original PR description
Steps to reproduce: - Manufacturing > Products > Bills of Material > New - Add any item as component then the same item as by-product - Confirm - Operations > Manufacturing Order > New - Pick the…
Steps to reproduce: - Manufacturing > Products > Bills of Material > New - Add any item as component then the same item as by-product - Confirm - Operations > Manufacturing Order > New - Pick the product associated to your newly created BoM - Confirm > Overview What happens and why: Odoo raises an RPC error due to an inifinite recursion between _get_components_data and _get_replenishment_lines. Both calls are made before the manufacturing order line is flagged as processed so the functions are mutually dependant on the other finishing first. The looping call is conitionally called when document_in and document_out are the same, which seems to be why the stock moves 'move_in' (component) and 'move_out' (by-product) need to be configured this way on the BoM. Why is this an error: This prevents the user from accessing the overview of a valid MO. What this fix does: Moves the flag to before the looping call can be made, so the recursive call does not propagate infiniely. opw-4013371 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172567
Prior to this commit, enabling limited product loading could result in the discount product not being loaded. opw-4057657 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174957 Forward-Port-Of: odoo/odoo#173600
Original PR description
Prior to this commit, enabling limited product loading could result in the discount product not being loaded. opw-4057657 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174957 Forward-Port-Of: odoo/odoo#173600
**Steps to reproduce:** - Install l10n_ar and website_sale - Switch to an Argentinian company - Create a product with a customer tax (e.g. IVA 21%) With a public user or a user without "AFIP Responsibility": - Go to eShop and add the created product to the cart - Go to the cart **Issue:** No tax is applied. **Cause:** There are some fiscal positions from Argentinian localization that map IVA 21% to IVA Exento (i.e. 0%). These fiscal positions are linked to specific "AFIP Respons
Original PR description
**Steps to reproduce:** - Install l10n_ar and website_sale - Switch to an Argentinian company - Create a product with a customer tax (e.g. IVA 21%) With a public user or a user without "AFIP…
**Steps to reproduce:** - Install l10n_ar and website_sale - Switch to an Argentinian company - Create a product with a customer tax (e.g. IVA 21%) With a public user or a user without "AFIP Responsibility": - Go to eShop and add the created product to the cart - Go to the cart **Issue:** No tax is applied. **Cause:** There are some fiscal positions from Argentinian localization that map IVA 21% to IVA Exento (i.e. 0%). These fiscal positions are linked to specific "AFIP Responsibility" types and should only be applied for users having these "AFIP Responsibility" types configured on their contact form. However, when this field is not set, it is ignored in the domain computing the fiscal position and one of these Argentinian fiscal positions satisfies the resulting domain. **Solution:** Filter on "AFIP Responsibility" in the domain computing the fiscal position if "l10n_ar_afip_responsibility_type_id" key is present in the context, no matter what its value. opw-3943108 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#171923
This fix removes the analytic account distribution as a criteria to split down payments lines (like the taxes are) and weight its distribution according to the line amounts and analytic account distributions. opw-4033706 Forward-Port-Of: odoo/odoo#175513 Forward-Port-Of: odoo/odoo#175078
Original PR description
This fix removes the analytic account distribution as a criteria to split down payments lines (like the taxes are) and weight its distribution according to the line amounts and analytic account distributions. opw-4033706 Forward-Port-Of: odoo/odoo#175513 Forward-Port-Of: odoo/odoo#175078
Steps to reproduce the issue: - Debug mode > Settings > Technical > Decimal Precision > Product Price - Set to another number - Purchase > Any Purchase order - Mobile view, puchased item has a decimal precision of 2 Why is this a bug: Kanban view is the only one to disregard Product Price Precision setting What this fix does: Update the display with correct decimal precision opw-3984082 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr F
Original PR description
Steps to reproduce the issue: - Debug mode > Settings > Technical > Decimal Precision > Product Price - Set to another number - Purchase > Any Purchase order - Mobile view, puchased item has a decimal precision of 2 Why is this a bug: Kanban view is the only one to disregard Product Price Precision setting What this fix does: Update the display with correct decimal precision opw-3984082 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172049
Since #169396, the hr_expense_test_tour is failing on community nightly runs as the "save the new report" step does not succeed without demo. runbot-70701 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174476
Original PR description
Since #169396, the hr_expense_test_tour is failing on community nightly runs as the "save the new report" step does not succeed without demo. runbot-70701 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174476
Steps to reproduce the bug: - In Website edit mode. - Drag and drop enough snippets to have a vertical scrollbar. - Scroll the page to the top. - Drag and drop a dynamic snippet (e.g. Products) at the bottom of the viewport. - Bug: The page doesn't scroll to the dynanmic snippet. The bug was due to the fact that we needed to know the top position of the snippet to set the scroll value. However, it wasn't possible to get the offset of the element because the dynamic snippets were set to
Original PR description
Steps to reproduce the bug: - In Website edit mode. - Drag and drop enough snippets to have a vertical scrollbar. - Scroll the page to the top. - Drag and drop a dynamic snippet (e.g. Products) at…
Steps to reproduce the bug: - In Website edit mode. - Drag and drop enough snippets to have a vertical scrollbar. - Scroll the page to the top. - Drag and drop a dynamic snippet (e.g. Products) at the bottom of the viewport. - Bug: The page doesn't scroll to the dynanmic snippet. The bug was due to the fact that we needed to know the top position of the snippet to set the scroll value. However, it wasn't possible to get the offset of the element because the dynamic snippets were set to "display: none" when this calculation was made. It's a bug we had before and fixed with this commit [1]. It worked. But since this other commit [2] where dynamic snippets are no longer hidden with the Bootstrap class "d-none" but with the class "o_dynamic_empty", the fix no longer works. [1]: https://github.com/odoo/odoo/commit/963f0ed02eba929fcbc65fe51bef95c2a1dcf2ea [2]: https://github.com/odoo/odoo/commit/63def9c87305dd7773e0592a28fe19d0b63c0878 task-4072655 Forward-Port-Of: odoo/odoo#175207
Steps to reproduce: 1. Drop a pop-up snippet 2. Change the Shown on: This Page to All Pages 3. Save and Edit again 4. Changing Shown on: All Pages to This Page won't work and Snippet Duplicate and Remove options are not visible. Issue reason: Commit [1] relocates the `#o_search_modal` element to `#o_shared_blocks`. Once the Shown on option of popup is changed to All Pages and Saved then again when you Go to Edit mode it adds `o_editable`and `o_dirty` class to popup even when no change
Original PR description
Steps to reproduce: 1. Drop a pop-up snippet 2. Change the Shown on: This Page to All Pages 3. Save and Edit again 4. Changing Shown on: All Pages to This Page won't work and Snippet Duplicate and…
Steps to reproduce: 1. Drop a pop-up snippet 2. Change the Shown on: This Page to All Pages 3. Save and Edit again 4. Changing Shown on: All Pages to This Page won't work and Snippet Duplicate and Remove options are not visible. Issue reason: Commit [1] relocates the `#o_search_modal` element to `#o_shared_blocks`. Once the Shown on option of popup is changed to All Pages and Saved then again when you Go to Edit mode it adds `o_editable`and `o_dirty` class to popup even when no changes are made. So after changing the option, the observer checks for `o_dirty` and changes get rollbacked. Solution: Instead of adding `#o_search_modal` element to `#o_shared_blocks` it is relocated to the new element `#o_search_block` inside the `main` element. This commit ensures that the popup/newsletter popup Shown on option and Snippet Duplicate and Remove options are visible and working. [1] : https://github.com/odoo/odoo/commit/a1858a task-4011237 Forward-Port-Of: odoo/odoo#175440 Forward-Port-Of: odoo/odoo#173473
Before this commit, exempted fields were being connected upon loading, which could lead to issues. opw-4088809 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175307
Original PR description
Before this commit, exempted fields were being connected upon loading, which could lead to issues. opw-4088809 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175307
Errors returned by Avatax when creating an account are not consistent. Sometimes the 'message' key contains a string with JSON. Other times it's a human-readable string with an error message. And other times it's a non-descript error that we replace with a more user-friendly error to guide users towards the most common fix. Before this fix a traceback appeared when a human-readable error string was returned without 'unhandled error occured': ``` File ".../l10n_br_avatax/models/res_config_
Original PR description
Errors returned by Avatax when creating an account are not consistent. Sometimes the 'message' key contains a string with JSON. Other times it's a human-readable string with an error message. And…
Errors returned by Avatax when creating an account are not consistent. Sometimes the 'message' key contains a string with JSON. Other times it's a human-readable string with an error message. And other times it's a non-descript error that we replace with a more user-friendly error to guide users towards the most common fix.
Before this fix a traceback appeared when a human-readable error string was returned without 'unhandled error occured':
```
File ".../l10n_br_avatax/models/res_config_settings.py", line 85, in create_account
result = json.loads(result['message'])
File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
```
This makes the error handling more robust by first attempting to decode the string as JSON. If that fails we fall back on the other two scenarios.
A new test class is included that provides examples of each type of response.
opw-4067842
Forward-Port-Of: odoo/enterprise#67477The global filter entries of the side panel were not keeping their "light" theme because we relied on the BS class `bg-white` which is adapted when using the dark mode. Task-4081249 Forward-Port-Of: odoo/enterprise#67537
Original PR description
The global filter entries of the side panel were not keeping their "light" theme because we relied on the BS class `bg-white` which is adapted when using the dark mode. Task-4081249 Forward-Port-Of: odoo/enterprise#67537
The week starts (index 0) on Monday python side, and on Sunday Javascript side. To be able to have both function, the part where we add 7 days to `daysToLastWeekWed` or `days_to_last_weekWed` needs to be done the same way on both sides: from Wednesday to Sunday: * index 2 (WE) to 6 (SU) in Python * index 3 (WE) to 6 (SA) and 0 (SU) in Javascript. Forward-Port-Of: odoo/enterprise#66203
Original PR description
The week starts (index 0) on Monday python side, and on Sunday Javascript side. To be able to have both function, the part where we add 7 days to `daysToLastWeekWed` or `days_to_last_weekWed` needs to be done the same way on both sides: from Wednesday to Sunday: * index 2 (WE) to 6 (SU) in Python * index 3 (WE) to 6 (SA) and 0 (SU) in Javascript. Forward-Port-Of: odoo/enterprise#66203
After making changes in community PR: https://github.com/odoo/odoo/pull/161705 The datetime widget was not being applied when we dragged and dropped a datetime field from the studio. Steps to reproduce: - Open the Sales module and toggle Studio. - Drag and drop a datetime field into the list view. - Try to tick and untick the Show time option. Observed behavior: When ticking and unticking the show time option, the time part is not hiding before resetting the widget. Expected be
Original PR description
After making changes in community PR: https://github.com/odoo/odoo/pull/161705 The datetime widget was not being applied when we dragged and dropped a datetime field from the studio. Steps to reproduce: - Open the Sales module and toggle Studio. - Drag and drop a datetime field into the list view. - Try to tick and untick the Show time option. Observed behavior: When ticking and unticking the show time option, the time part is not hiding before resetting the widget. Expected behavior: The time part should be hidden when we tick and untick the show time option without resetting the widget. After this commit, the datetime widget will be applied when we drag and drop a datetime field from the studio and untick the show time boolean. Task-3698841 Forward-Port-Of: odoo/enterprise#67258
In this commit, we had the partner information to the receipt header of the CL PoS when the order is a factura. This is needed in order to be compliant with the CL law. task-id: 3747828 Forward-Port-Of: odoo/enterprise#67553 Forward-Port-Of: odoo/enterprise#67168
Original PR description
In this commit, we had the partner information to the receipt header of the CL PoS when the order is a factura. This is needed in order to be compliant with the CL law. task-id: 3747828 Forward-Port-Of: odoo/enterprise#67553 Forward-Port-Of: odoo/enterprise#67168
This module is for a shiprocket-cash-on-delivery option for e-commerce users. - Payment provider for shiprocket cash on delivery - Payment method for shiprocket cash on delivery Co-authored-by: Jitendra Prajapati <jipr@odoo.com> task - 3657635 related community PR: https://github.com/odoo/odoo/pull/154119 Forward-Port-Of: odoo/enterprise#65436 Forward-Port-Of: odoo/enterprise#56663
Original PR description
This module is for a shiprocket-cash-on-delivery option for e-commerce users. - Payment provider for shiprocket cash on delivery - Payment method for shiprocket cash on delivery Co-authored-by: Jitendra Prajapati <jipr@odoo.com> task - 3657635 related community PR: https://github.com/odoo/odoo/pull/154119 Forward-Port-Of: odoo/enterprise#65436 Forward-Port-Of: odoo/enterprise#56663
To reproduce: Activate Avatax (in Sandbox mode) Create an invoice to a partner from Colorado Put the 0F4000000 code on the Avatax Category of a product Create a line with this product Click on "Compute Taxes" => A tax named "Retail Delivery Fee [08] (29.0000 %)" is created The issue is that if you look on Avatax, it's supposed a fixed 0.29 tax. opw-4036105 Forward-Port-Of: odoo/enterprise#67882 Forward-Port-Of: odoo/enterprise#66973
Original PR description
To reproduce: Activate Avatax (in Sandbox mode) Create an invoice to a partner from Colorado Put the 0F4000000 code on the Avatax Category of a product Create a line with this product Click on "Compute Taxes" => A tax named "Retail Delivery Fee [08] (29.0000 %)" is created The issue is that if you look on Avatax, it's supposed a fixed 0.29 tax. opw-4036105 Forward-Port-Of: odoo/enterprise#67882 Forward-Port-Of: odoo/enterprise#66973
Add the modelo 130 report for spain localization task-3866238 Linked PR : https://github.com/odoo/odoo/pull/164946 Forward-Port-Of: odoo/enterprise#62197
Original PR description
Add the modelo 130 report for spain localization task-3866238 Linked PR : https://github.com/odoo/odoo/pull/164946 Forward-Port-Of: odoo/enterprise#62197
To reproduce: ============= - on Salary structure type "Worker" change its "Default Scheduled Pay" to another value than monthly (bi-weekly). - on the contract templates, create a new one for that structure and set hourly Wage = 10$ - onrecruitment applications, generate an offer with that template Check the link > It should show 800$ (which is 10$ an hour * 40 hours a week * 2 for the bi-wkeely frequency) but still mention it is the monthly Salary (which should be 1600$) Problem
Original PR description
To reproduce: ============= - on Salary structure type "Worker" change its "Default Scheduled Pay" to another value than monthly (bi-weekly). - on the contract templates, create a new one for that structure and set hourly Wage = 10$ - onrecruitment applications, generate an offer with that template Check the link > It should show 800$ (which is 10$ an hour * 40 hours a week * 2 for the bi-wkeely frequency) but still mention it is the monthly Salary (which should be 1600$) Problem: ======== - the salary displayed on the salary configurator doesn't take into account the frequency of the salary structure Solution: ========= - change the label to mention the frequency of the salary structure opw-3963698 Forward-Port-Of: odoo/enterprise#64105
In TimerTimesheetGridRenderer, super.onWillStart was not awaited. We take the opportunity to factorize some code and parallelize some rpcs. Forward-Port-Of: odoo/enterprise#67909 Forward-Port-Of: odoo/enterprise#67864
Original PR description
In TimerTimesheetGridRenderer, super.onWillStart was not awaited. We take the opportunity to factorize some code and parallelize some rpcs. Forward-Port-Of: odoo/enterprise#67909 Forward-Port-Of: odoo/enterprise#67864
The message to buy extra credits is escaped and instead of displaying the message with a link it displays the message with a html and a url, not very human user like. We have to unescape the < and > symbols so that the frontend can properly display the message Ticket [link](https://www.odoo.com/web#model=project.task&id=3864033) opw-3864033 Forward-Port-Of: odoo/enterprise#63364
Original PR description
The message to buy extra credits is escaped and instead of displaying the message with a link it displays the message with a html and a url, not very human user like. We have to unescape the < and > symbols so that the frontend can properly display the message Ticket [link](https://www.odoo.com/web#model=project.task&id=3864033) opw-3864033 Forward-Port-Of: odoo/enterprise#63364
Steps to reproduce: - Manufacturing > Products > BoM - Create BoM with at least 1 operation - New MO with Quantity to produce >= 1000 - Shop Floor > Remove filters What happens: Work order card truncates number of units to produce by 3 digits, i.e. a quantity of 2500 displays as 2, 34000 as 34, etc... This is caused by the successive conversions in formatFloat, they go: Number (quantityToProduce) > String (formatFloat) > Number (ParseFloat) > String (String()) Which looks to be a dirty
Original PR description
Steps to reproduce: - Manufacturing > Products > BoM - Create BoM with at least 1 operation - New MO with Quantity to produce >= 1000 - Shop Floor > Remove filters What happens: Work order card…
Steps to reproduce: - Manufacturing > Products > BoM - Create BoM with at least 1 operation - New MO with Quantity to produce >= 1000 - Shop Floor > Remove filters What happens: Work order card truncates number of units to produce by 3 digits, i.e. a quantity of 2500 displays as 2, 34000 as 34, etc... This is caused by the successive conversions in formatFloat, they go: Number (quantityToProduce) > String (formatFloat) > Number (ParseFloat) > String (String()) Which looks to be a dirty solution to forcefully display the float as an integer value. What this fix does: Getting rid of the superfluous conversions fixes the truncating issue. The decimal precision was set to default to integer values if the precision props is not defined to conserve the original behavior since manufacturing fractions of a product seems nonsensical, but it seems a precision was passed all along and simply failed to display because of the aforementioned issue. So now 2500 displays as 2500.00 not sure if that was intended or just ignored because of the previous display weirdness. opw-4040457 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#66570