Friday, March 7, 2025
38 changes · saas-18.1
Resolved issues and error corrections
Payment records now only choose or refresh their journal automatically when the payment is new or when its company changes. This prevents existing payments from having their journal unexpectedly recalculated, reducing the risk of accounting inconsistencies.
Original PR description
We only want to compute a journal id for a payment if: - it's a new payment (never saved). - the company changed. task-id: none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a typo that prevented the Cloudflare Turnstile website check code from running. It helps ensure the intended visitor verification works properly on website forms that use this protection.
Original PR description
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
The Kenya payroll SHIF report has been corrected so it works after the payslip reference field changed. It also excludes payslips with no SHIF or NHIF amount, preventing zero-value entries from appearing in the report.
Original PR description
Problem ---------- - Number field of HrPayslip model was removed, it makes crash the SHIF Report wizard - Demo data payslips doesn't contains NHIF or SHIF amount, it makes the SHIF report wizard add the payslip with an amount of 0. Objective ---------- - check if the SHIF/NHIF amount == 0 before add it in report entries. - recompute the demo data after the shif module installation Solution ---------- - replace payslip.number by payslip.name - add a condition on the SHIF/NHIF amount to add the payslip task-4463586
Miscellaneous changes
date_category can be None, we should check before adding values to the dict. And also return empty string instead "none" in _compute_kanban_dashboard_graph error from upgrade mock viewer. ``` File "/tmp/tmpd7nbq20v/migrations/base/tests/test_mock_crawl.py", line 256, in crawl_menu self.mock_action(action_vals) File "/tmp/tmpd7nbq20v/migrations/base/tests/test_mock_crawl.py", line 269, in mock_action return self.mock_act_window(action) File "/tmp/tmpd7nbq20v/migrations/b
Original PR description
date_category can be None, we should check before adding values to the dict. And also return empty string instead "none" in _compute_kanban_dashboard_graph error from upgrade mock viewer. ``` File…
date_category can be None, we should check before adding values to the dict.
And also return empty string instead "none" in _compute_kanban_dashboard_graph
error from upgrade mock viewer.
```
File "/tmp/tmpd7nbq20v/migrations/base/tests/test_mock_crawl.py", line 256, in crawl_menu
self.mock_action(action_vals)
File "/tmp/tmpd7nbq20v/migrations/base/tests/test_mock_crawl.py", line 269, in mock_action
return self.mock_act_window(action)
File "/tmp/tmpd7nbq20v/migrations/base/tests/test_mock_crawl.py", line 429, in mock_act_window
mock_method(model, view, fields_list, domain, group_by)
File "/tmp/tmpd7nbq20v/migrations/base/tests/test_mock_crawl.py", line 531, in mock_view_kanban
self.mock_web_search_read(model, view, [domain], fields_list)
File "/tmp/tmpd7nbq20v/migrations/base/tests/test_mock_crawl.py", line 590, in mock_web_search_read
data = model.search_read(domain=domain, fields=fields_list, limit=80)
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 6074, in search_read
return records._read_format(fnames=fields, **read_kwargs)
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 4016, in _read_format
vals[name] = convert(record[name], record, use_display_name)
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 6983, in __getitem__
return self._fields[key].__get__(self)
File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 1287, in __get__
self.compute_value(recs)
File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 1469, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 5222, in _compute_field_value
fields.determine(field.compute, self)
File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 109, in determine
return needle(*args)
File "/home/odoo/src/odoo/18.0/addons/stock/models/stock_picking.py", line 376, in _compute_kanban_dashboard_graph
summaries[picking_type_id]['total_' + date_category] += 1
KeyError: 'total_none'
```
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#200564Repro steps: 1. Create a new company. 2. Attempt to delete the newly created company. 3. The deletion is successful, but if the user tries to login again, they will keep getting this error `Record does not exist or has been deleted.` Cause: The cause was that the cache would have the id of the deleted company, and attempting to access this company was the bug cause. Solution: This commit solves this bug by clearing the cache on company deletion. task-4438207 --- I confirm I
Original PR description
Repro steps: 1. Create a new company. 2. Attempt to delete the newly created company. 3. The deletion is successful, but if the user tries to login again, they will keep getting this error `Record does not exist or has been deleted.` Cause: The cause was that the cache would have the id of the deleted company, and attempting to access this company was the bug cause. Solution: This commit solves this bug by clearing the cache on company deletion. task-4438207 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200711 Forward-Port-Of: odoo/odoo#200164
**Problem**: The outline is removed for all elements with `contenteditable`, including those with `contenteditable=false`, which is incorrect. **Solution**: Restrict outline removal to elements with `contenteditable=true` only. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200695
Original PR description
**Problem**: The outline is removed for all elements with `contenteditable`, including those with `contenteditable=false`, which is incorrect. **Solution**: Restrict outline removal to elements with `contenteditable=true` only. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200695
Steps to Reproduce: - Create two companies: A and B. - In Company A, create a sale order for Company B with product P1. - Confirm the sale order and navigate to the associated picking. - Add a new product P2 and confirm the picking. Issue: No sale order line is created for the newly added move in the picking. Technical Reason: Before v17.2, intercompany transfers used the "Partner/Customers" location (type: "customer") as the destination. The logic for creating a sale order line
Original PR description
Steps to Reproduce: - Create two companies: A and B. - In Company A, create a sale order for Company B with product P1. - Confirm the sale order and navigate to the associated picking. - Add a new…
Steps to Reproduce: - Create two companies: A and B. - In Company A, create a sale order for Company B with product P1. - Confirm the sale order and navigate to the associated picking. - Add a new product P2 and confirm the picking. Issue: No sale order line is created for the newly added move in the picking. Technical Reason: Before v17.2, intercompany transfers used the "Partner/Customers" location (type: "customer") as the destination. The logic for creating a sale order line checked move.location_dest_id.usage != 'customer', which correctly allowed the sale order line to be created. In v17.2, intercompany transfers now use "Virtual Locations/Inter-company transit" (type: "transit") as the destination. Since 'transit' != 'customer', the condition incorrectly bypasses sale order line creation. Fix: Modify the condition to check if the destination location is either 'customer' or 'transit'. This ensures that sale order lines are correctly generated for intercompany transfers. Task-4455830 Forward-Port-Of: odoo/odoo#200294 Forward-Port-Of: odoo/odoo#197245
This commit fixed the access error issue that non-admin users would encounter when submitting a Jordanian e-invoice. It adds sudo access rights to the fields l10n_jo_edi_client_identifier and l10n_jo_edi_secret_key while reading them for e-invoice submission. task-4577597 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200015
Original PR description
This commit fixed the access error issue that non-admin users would encounter when submitting a Jordanian e-invoice. It adds sudo access rights to the fields l10n_jo_edi_client_identifier and l10n_jo_edi_secret_key while reading them for e-invoice submission. task-4577597 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200015
Currently, the date filters do not have their title displayed in the `FilteValue` component which is an issue in dashboards where one could have multiple date filters defined and could not differentiate them. This revision adds the fiter label as a title such that users can identify the right filter given that they gave it an appropriate label. task-4606670 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged:
Original PR description
Currently, the date filters do not have their title displayed in the `FilteValue` component which is an issue in dashboards where one could have multiple date filters defined and could not differentiate them. This revision adds the fiter label as a title such that users can identify the right filter given that they gave it an appropriate label. task-4606670 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#200657 Forward-Port-Of: odoo/odoo#200502
Since this commit: https://github.com/odoo/odoo/pull/188201/commits/766ec99dbc2701a237f082f3fb124793d9dfe596 We try to clean reservations because, for some reason, there could be a discrepancy between the sum of “stock.move.line” and the quantity/reserved quantity on “stock.quant”. However, there are cases where a user creates a storable product, updates its quantity, and then uses it in a “stock.move.line”, confirms it, and later changes the product type to a kit. So, when trying to clean
Original PR description
Since this commit: https://github.com/odoo/odoo/pull/188201/commits/766ec99dbc2701a237f082f3fb124793d9dfe596 We try to clean reservations because, for some reason, there could be a discrepancy…
Since this commit: https://github.com/odoo/odoo/pull/188201/commits/766ec99dbc2701a237f082f3fb124793d9dfe596 We try to clean reservations because, for some reason, there could be a discrepancy between the sum of “stock.move.line” and the quantity/reserved quantity on “stock.quant”. However, there are cases where a user creates a storable product, updates its quantity, and then uses it in a “stock.move.line”, confirms it, and later changes the product type to a kit. So, when trying to clean the reservations for these “stock.move.line”, a user error occurs because the system attempts to create a quant for a kit-type product: https://github.com/odoo/odoo/blob/c07778bbce4311c142bd8e2ce3013998d4f126ae/addons/mrp/models/stock_quant.py#L6-L11 As a result, each time users try to access the quant list, clean_reservation is triggered, causing a user error that prevents them from modifying the quantity of any quant. Solution: For kits, we can skip cleaning their quant to avoid unnecessary errors. opw-4625002 opw-4624008 opw-4621175 opw-4625465 opw-4621504 opw-4623523 opw-4621508 opw-4623329 opw-4629386 Forward-Port-Of: odoo/odoo#200595
Since the upgrade of Chartjs to v4.3 in [commit 1], stacked charts in website were wrongly computed. This commit fixes it. [commit 1]: https://github.com/odoo/odoo/commit/7e3c1ecdb86110912b15722e600f9571692807ed task-4603349 Forward-Port-Of: odoo/odoo#199186
Original PR description
Since the upgrade of Chartjs to v4.3 in [commit 1], stacked charts in website were wrongly computed. This commit fixes it. [commit 1]: https://github.com/odoo/odoo/commit/7e3c1ecdb86110912b15722e600f9571692807ed task-4603349 Forward-Port-Of: odoo/odoo#199186
This commit fixes vertical misalignment of today indicator in back-end calendars. task-4617623 | Before | After | |--------|--------| | <img width="1115" alt="Screenshot 2025-03-04 at 16 55 25" src="https://github.com/user-attachments/assets/b879fcb1-c416-44ea-956d-ce9c4c8328f2" /> | <img width="1095" alt="Screenshot 2025-03-04 at 14 17 45" src="https://github.com/user-attachments/assets/47e64b96-2ca2-4ec5-83ab-d3d8e133175d" /> | --- I confirm I have signed the CLA and read the PR g
Original PR description
This commit fixes vertical misalignment of today indicator in back-end calendars. task-4617623 | Before | After | |--------|--------| | <img width="1115" alt="Screenshot 2025-03-04 at 16 55 25" src="https://github.com/user-attachments/assets/b879fcb1-c416-44ea-956d-ce9c4c8328f2" /> | <img width="1095" alt="Screenshot 2025-03-04 at 14 17 45" src="https://github.com/user-attachments/assets/47e64b96-2ca2-4ec5-83ab-d3d8e133175d" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200166
Lately we have been encountering increasing issues with on-prem databases which are being duplicated without running neutralization scripts, and thus when one of the two instances renews its refresh token, the other database's refresh token gets out of sync and we end up with a cryptic error `Invalid signature for request to the account_edi proxy`. 1. Prod and Staging both have refresh token RT1 2. Staging needs new refresh token: sends RT1 to IAP and gets RT2 3. IAP invalidates RT1 4. Pro
Original PR description
Lately we have been encountering increasing issues with on-prem databases which are being duplicated without running neutralization scripts, and thus when one of the two instances renews its refresh token, the other database's refresh token gets out of sync and we end up with a cryptic error `Invalid signature for request to the account_edi proxy`. 1. Prod and Staging both have refresh token RT1 2. Staging needs new refresh token: sends RT1 to IAP and gets RT2 3. IAP invalidates RT1 4. Prod still has RT1 and tries to refresh 5. IAP rejects RT1 because it is no longer aware of RT1 6. Test cannot get a new token and loses access with this error as the signature is no longer valid This commit simply improves this error message and redirects users to odoo support. task-4531587 Forward-Port-Of: odoo/odoo#200370 Forward-Port-Of: odoo/odoo#196271
This https://github.com/odoo/enterprise/commit/68f6c1f9fd3ff6762c98e1a405ade035129efce0 caused the `test_create_res_partner` test to fail. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200527
Original PR description
This https://github.com/odoo/enterprise/commit/68f6c1f9fd3ff6762c98e1a405ade035129efce0 caused the `test_create_res_partner` test to fail. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200527
### Steps to reproduce: - In the settings enable "Multi-Step Routes" and "Subcontracting" - Inventory > Configuration > Warehouse Management > Operation Types - Unarchive "Subcontracting" - Create a product tracked by SN with: - A set vendor - A bom of type subcontracting with your vendor set as subcontractor - Create and confirm a PO for 3 units of your product with your vendor. - Go to inventory > Subcontracting (operation type) > the related SBC - Click on "Produce All" (this
Original PR description
### Steps to reproduce: - In the settings enable "Multi-Step Routes" and "Subcontracting" - Inventory > Configuration > Warehouse Management > Operation Types - Unarchive "Subcontracting" - Create a…
### Steps to reproduce:
- In the settings enable "Multi-Step Routes" and "Subcontracting"
- Inventory > Configuration > Warehouse Management > Operation Types
- Unarchive "Subcontracting"
- Create a product tracked by SN with:
- A set vendor
- A bom of type subcontracting with your vendor set as subcontractor
- Create and confirm a PO for 3 units of your product with your vendor.
- Go to inventory > Subcontracting (operation type) > the related SBC
- Click on "Produce All" (this should pop a batch produce wizard)
#### > It does not and you have validated the MO for 0 units without backorder
### Cause of the issue:
Since Commit 5722286a36838f644bb4e95c305b65b412774d75 (saas-17.1), the `action_mass_produce` used to split a tracked MO and generate the assocated SN:
https://github.com/odoo/odoo/blob/bc5414602920ee712c45397d7992863a0b1ea161/addons/mrp/models/mrp_production.py#L2281-L2292
should be returned by the `pre_button_mark_done` to be performed: https://github.com/odoo/odoo/blob/bc5414602920ee712c45397d7992863a0b1ea161/addons/mrp/models/mrp_production.py#L2128 https://github.com/odoo/odoo/blob/bc5414602920ee712c45397d7992863a0b1ea161/addons/mrp/models/mrp_production.py#L1994-L1997
However, for subcontracted MO, the returned value of the `pre_button_mark_done` is currently always True, skipping the batch production wizard:
https://github.com/odoo/odoo/blob/bc5414602920ee712c45397d7992863a0b1ea161/addons/mrp_subcontracting/models/mrp_production.py#L105-L108
opw-4447631
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#199390
Forward-Port-Of: odoo/odoo#197459In debug mode, import previews were failing with a "'model_name'" KeyError when column headers included one2many/id fields. This occurred because the 'model_name' is missing from the field definition dictionary returned by `get_fields_tree` for '.id' in debug mode in case of one2many. Since the introduction of https://github.com/odoo/odoo/pull/174366, 'model_name' should be always included in these field definitions. Additionally, this commit corrects the 'model_name' for relational ID f
Original PR description
In debug mode, import previews were failing with a "'model_name'" KeyError when column headers included one2many/id fields. This occurred because the 'model_name' is missing from the field definition dictionary returned by `get_fields_tree` for '.id' in debug mode in case of one2many. Since the introduction of https://github.com/odoo/odoo/pull/174366, 'model_name' should be always included in these field definitions. Additionally, this commit corrects the 'model_name' for relational ID fields. Previously, these fields incorrectly targeted the current model instead of the comodel. This fix prevents `_get_mapping_suggestion` from targeting the wrong model during its fallback mechanism, which relies on 'model_name'. Forward-Port-Of: odoo/odoo#199814
**Steps to reproduce:** 1. Log in with a non-admin users 2. Open any Partner from 3. Click on Actions > Privacy Lookup **Bug:** ``` You are not allowed to access 'Privacy Lookup Wizard' (privacy.lookup.wizard) records. This operation is allowed for the following groups: - Administration/Settings Contact your administrator to request access if necessary. ``` **Expected behavior:** The error message is correct. This feature should only be available to Administrator user
Original PR description
**Steps to reproduce:** 1. Log in with a non-admin users 2. Open any Partner from 3. Click on Actions > Privacy Lookup **Bug:** ``` You are not allowed to access 'Privacy Lookup Wizard' (privacy.lookup.wizard) records. This operation is allowed for the following groups: - Administration/Settings Contact your administrator to request access if necessary. ``` **Expected behavior:** The error message is correct. This feature should only be available to Administrator users. Therefore, the action should be hidden accordingly. See: - https://github.com/odoo/odoo/blob/16.0/addons/privacy_lookup/security/ir.model.access.csv#L2 --- ping @tivisse --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192227 Forward-Port-Of: odoo/odoo#150748
Versions -------- - 16.0+ Steps ----- 1. Have a cart ready to be paid; 2. open `/shop/payment` in two windows; 3. click "Pay now" in one window; 4. click "Pay now" in the next window. Issue ----- Depending on version, installed modules & click speed, one of the following happens: - Error: "The operation cannot be completed: Reference must be unique!" - 500: Internal Server Error. - Both payments get confirmed. Cause ----- There's no check on whether a payment is already b
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Have a cart ready to be paid; 2. open `/shop/payment` in two windows; 3. click "Pay now" in one window; 4. click "Pay now" in the next window. Issue -----…
Versions -------- - 16.0+ Steps ----- 1. Have a cart ready to be paid; 2. open `/shop/payment` in two windows; 3. click "Pay now" in one window; 4. click "Pay now" in the next window. Issue ----- Depending on version, installed modules & click speed, one of the following happens: - Error: "The operation cannot be completed: Reference must be unique!" - 500: Internal Server Error. - Both payments get confirmed. Cause ----- There's no check on whether a payment is already being processed for a particular order. This can happen in two manners: 1. The 1st one has finished, but the 2nd one is still allowed to start. 2. Clicking fast enough, both will try to transaction concurrently. Solution -------- 1. If the `amount_total` is equal to `amount_paid`, raise an error. 2. Put a database-level lock on the Sale Order using `FOR NO KEY UPDATE` which will get released as soon as the payment transaction is committed to the database, or is rolled back due to failure. opw-4555664 Forward-Port-Of: odoo/odoo#200428 Forward-Port-Of: odoo/odoo#198873
**Problem**: When focusing on an empty button (`<a>` tag with `btn` class) and pressing backspace, any visible content before it gets deleted. This happens because buttons are not considered as visible content when handling deletions. **Solution**: Modify `oDeleteBackward` to detect elements with the `btn` class. When deleting such an element, update the selection to avoid deleting preceding content. **Steps to Reproduce**: 1. Open the website builder. 2. Add some content with a button
Original PR description
**Problem**: When focusing on an empty button (`<a>` tag with `btn` class) and pressing backspace, any visible content before it gets deleted. This happens because buttons are not considered as visible content when handling deletions. **Solution**: Modify `oDeleteBackward` to detect elements with the `btn` class. When deleting such an element, update the selection to avoid deleting preceding content. **Steps to Reproduce**: 1. Open the website builder. 2. Add some content with a button. 3. Insert a form just before the button. 4. Press backspace while focusing on the button. 5. The form gets deleted along with the button. opw-4280705 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198298 Forward-Port-Of: odoo/odoo#196781
Description of the issue this PR addresses: Pasting content on a node with an invisible empty text node as the last child would result in a traceback. This occured because the empty node being removed when inserting text. task-4566557 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199367
Original PR description
Description of the issue this PR addresses: Pasting content on a node with an invisible empty text node as the last child would result in a traceback. This occured because the empty node being removed when inserting text. task-4566557 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199367
If the email field is provided, it must be unique as Stripe doesn't handle multiple emails per payment request. In Odoo, the field partner_email is designed for more than 1 email in order to send documents easily to multiple recipients. Considering the first email only for Stripe in case of multiple emails. opw-4576386 Forward-Port-Of: odoo/odoo#199565
Original PR description
If the email field is provided, it must be unique as Stripe doesn't handle multiple emails per payment request. In Odoo, the field partner_email is designed for more than 1 email in order to send documents easily to multiple recipients. Considering the first email only for Stripe in case of multiple emails. opw-4576386 Forward-Port-Of: odoo/odoo#199565
Currently, an error occurs when creating an account with a default tag `Debit Balance Account`, if it has been deleted. **Steps to reproduce:** - Install `l10n_mx`, `accountant`, `point_of_sale` modules without demo data. - Change company country to `Mexico`. - Delete the records `Debit Balance Account` of **account tag**, `Cash` of **journals** and **chart of Accounts** from `Accounting > Configuration `. - Create a POS store. - Observe the error. **Error:** `ValueError: Extern
Original PR description
Currently, an error occurs when creating an account with a default tag `Debit Balance Account`, if it has been deleted. **Steps to reproduce:** - Install `l10n_mx`, `accountant`, `point_of_sale`…
Currently, an error occurs when creating an account with a default tag `Debit Balance Account`, if it has been deleted. **Steps to reproduce:** - Install `l10n_mx`, `accountant`, `point_of_sale` modules without demo data. - Change company country to `Mexico`. - Delete the records `Debit Balance Account` of **account tag**, `Cash` of **journals** and **chart of Accounts** from `Accounting > Configuration `. - Create a POS store. - Observe the error. **Error:** `ValueError: External ID not found in the system: l10n_mx.tag_debit_balance_account` The error occurs because the system attempts to fetch the tag `l10n_mx.tag_debit_balance_account` at [1], but it is unavailable as the user has already deleted it. This commit ensures that if the tag does not exist, it proceeds without assigning it, preventing the error. [1] - https://github.com/odoo/odoo/blob/63fc0d1cefaf8f59acd0743a225d1002425ff156/addons/l10n_mx/models/account_account.py#L12 sentry-6356695465 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200331
Forward-Port-Of: odoo/odoo#200539
Original PR description
Forward-Port-Of: odoo/odoo#200539
**Problem**: After commit [9cf7726](https://github.com/odoo/odoo/commit/9cf7726d0402353ccef551148010aaff8a2059be), `headerEl` can be `null` if the "Show Header" option is turned off, causing a traceback. **Solution**: Check if `#wrapwrap header` exists and ensure `headerEl` is not `null`. **Steps to Reproduce**: 1. Install **E-learning**. 2. Open **Website > Site > Courses**. 3. Open any course. 4. Switch to **Edit mode**. 5. In the editor menu, disable **"Show Header"** under **The
Original PR description
**Problem**: After commit [9cf7726](https://github.com/odoo/odoo/commit/9cf7726d0402353ccef551148010aaff8a2059be), `headerEl` can be `null` if the "Show Header" option is turned off, causing a traceback. **Solution**: Check if `#wrapwrap header` exists and ensure `headerEl` is not `null`. **Steps to Reproduce**: 1. Install **E-learning**. 2. Open **Website > Site > Courses**. 3. Open any course. 4. Switch to **Edit mode**. 5. In the editor menu, disable **"Show Header"** under **Theme > Advanced**. 6. Save. 7. A traceback occurs. opw-4565265 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199810
How to reproduce: ============== - Have Marc Demo work in another sales team that yours. - Go to a kanban view of leads, grouped by salesperson. - Quick create a new lead. Current behavior: ============= It gets assigned to your team, probably because the default value is not properly updated. Expected behavior: ============== - The lead belongs to Marc and should be linked to his team. - It works fine if you do it from the form view. task-4438021 --- I confirm I hav
Original PR description
How to reproduce: ============== - Have Marc Demo work in another sales team that yours. - Go to a kanban view of leads, grouped by salesperson. - Quick create a new lead. Current behavior: ============= It gets assigned to your team, probably because the default value is not properly updated. Expected behavior: ============== - The lead belongs to Marc and should be linked to his team. - It works fine if you do it from the form view. task-4438021 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200349 Forward-Port-Of: odoo/odoo#192934
Currently, an error occurs when users press the data-hotkey 'ALT + Q' to split expense and any expense is not available in the split expense line. Step to produce: - Install the ```hr_expense``` module. - Create an expense, add a category, and click on the `Split Expense` button. - Delete all expenses from the split expense line, and press the data-hotkey `ALT + Q` to click on the `Split Expense` button to split expenses. ```IndexError: tuple index out of range``` This occurs becau
Original PR description
Currently, an error occurs when users press the data-hotkey 'ALT + Q' to split expense and any expense is not available in the split expense line. Step to produce: - Install the ```hr_expense```…
Currently, an error occurs when users press the data-hotkey 'ALT + Q' to split expense and any expense is not available in the split expense line. Step to produce: - Install the ```hr_expense``` module. - Create an expense, add a category, and click on the `Split Expense` button. - Delete all expenses from the split expense line, and press the data-hotkey `ALT + Q` to click on the `Split Expense` button to split expenses. ```IndexError: tuple index out of range``` This occurs because the system attempts to access the first expense from the split expense line [1], but expenses are not available. Link [1]: https://github.com/odoo/odoo/blob/280b762e7cd1b3d9a578bbae60cbb9b137ee5ce5/addons/hr_expense/wizard/hr_expense_split_wizard.py#L36 To resolve this issue, Disable a 'Split Expense' button after simply adding a `disabled` attribute on it. Sentry-6015854429 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199577 Forward-Port-Of: odoo/odoo#190323
In most cases, at this time of the process the edi_identification and the client_id are not known and the key's name end up to be `False_False.key`, which is not very descriptive. task-no **Before:**  **After:**  Forward-Port-Of: odoo/odoo#200516
Original PR description
In most cases, at this time of the process the edi_identification and the client_id are not known and the key's name end up to be `False_False.key`, which is not very descriptive. task-no **Before:**  **After:**  Forward-Port-Of: odoo/odoo#200516
Following the fixes - https://github.com/odoo/odoo/commit/ce92dedea0fd3cdc73da6366c20b8052bb04f7e9 & https://github.com/odoo/odoo/commit/4dc901e77dc7e2873a94ea3a541450fc9fb2eb5e Investing more into the issues, we found out that E-waybill portal, doesn't allow generation of E-waybill as Inwards (Tax Invoice) type for Sales Return, Only Challan Type is accepted it means that the Sales Return, E-waybill should be generated by the E-waybill on Stock/Inventory. Not through the Invoice/Account App.
Original PR description
Following the fixes - https://github.com/odoo/odoo/commit/ce92dedea0fd3cdc73da6366c20b8052bb04f7e9 & https://github.com/odoo/odoo/commit/4dc901e77dc7e2873a94ea3a541450fc9fb2eb5e Investing more into the issues, we found out that E-waybill portal, doesn't allow generation of E-waybill as Inwards (Tax Invoice) type for Sales Return, Only Challan Type is accepted it means that the Sales Return, E-waybill should be generated by the E-waybill on Stock/Inventory. Not through the Invoice/Account App. This commit intends to do a soft block for generation of E-waybill through Sales Credit Note task-4441603 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200205 Forward-Port-Of: odoo/odoo#192090
**Purpose:** to remove text overflow bug in the channel member name within the member list. **before :**  **after:**  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200324
Original PR description
**Purpose:** to remove text overflow bug in the channel member name within the member list. **before :**  **after:**  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200324
See included commits that * allow deleting unused company folders * prevent quick creating folders in the config settings opw-4444537 Task-4531261 Forward-Port-Of: odoo/enterprise#78234
Original PR description
See included commits that * allow deleting unused company folders * prevent quick creating folders in the config settings opw-4444537 Task-4531261 Forward-Port-Of: odoo/enterprise#78234
Automation rule trigger field ids can now be deducted from a default filter domain passed in the context of an action. As a result, in the action used to direct a user of the Documents application to the Automation Rules, it is no longer necessary to pass the trigger field id to be displayed in the new rule creation form. Only the filter domain is required to achieve the same result. This makes it possible to delete an orm call without altering the implemented feature. see odoo/odoo#193576
Original PR description
Automation rule trigger field ids can now be deducted from a default filter domain passed in the context of an action. As a result, in the action used to direct a user of the Documents application to the Automation Rules, it is no longer necessary to pass the trigger field id to be displayed in the new rule creation form. Only the filter domain is required to achieve the same result. This makes it possible to delete an orm call without altering the implemented feature. see odoo/odoo#193576 see odoo/enterprise#75719 task-4502214 Forward-Port-Of: odoo/enterprise#77515
This commit targets to add new default pos payment method for mexican companies. Also defines l10n_mx_edi_payment_method_id for each default payment method target: saas-17.4 -> master task-4486643 Forward-Port-Of: odoo/enterprise#78148
Original PR description
This commit targets to add new default pos payment method for mexican companies. Also defines l10n_mx_edi_payment_method_id for each default payment method target: saas-17.4 -> master task-4486643 Forward-Port-Of: odoo/enterprise#78148
Forward-Port-Of: odoo/enterprise#80405
Original PR description
Forward-Port-Of: odoo/enterprise#80405
Steps to reproduce: 1. Open new table appointment form from the appointment app 2. Select a table ressource that is linked to a pos_config that has no current_session_id 3. Save Traceback is shown Fix: When notifying the tables of the appointment update the wrong session object was used. This commit ensure that the correct object is used in order to notify the sessions linked to the reserved tables Forward-Port-Of: odoo/enterprise#80889
Original PR description
Steps to reproduce: 1. Open new table appointment form from the appointment app 2. Select a table ressource that is linked to a pos_config that has no current_session_id 3. Save Traceback is shown Fix: When notifying the tables of the appointment update the wrong session object was used. This commit ensure that the correct object is used in order to notify the sessions linked to the reserved tables Forward-Port-Of: odoo/enterprise#80889
Ensure that the HTML for Knowledge published articles is not delayed by OWL rendering promise. The content of the article should be available for web crawlers even with JavaScript disabled. The sidebar will still be loaded as a Component for convenience, and PublicWidget introduced through this commit will be converted to Interaction in future versions. task-4563216 Forward-Port-Of: odoo/enterprise#79973
Original PR description
Ensure that the HTML for Knowledge published articles is not delayed by OWL rendering promise. The content of the article should be available for web crawlers even with JavaScript disabled. The sidebar will still be loaded as a Component for convenience, and PublicWidget introduced through this commit will be converted to Interaction in future versions. task-4563216 Forward-Port-Of: odoo/enterprise#79973
Changes are introduced to ensure compliance with the regulations established by SUNAT in the context of inventory management, specifically as outlined in Resolution No. 234-2006/SUNAT. Additionally, functionality and data presentation improvements are included to facilitate analysis and interpretation for end users. Main Changes: 1. Initial Balance for the Period - The initial balance of products in stock at the start of the fiscal period is added. - Code is introduced to identi
Original PR description
Changes are introduced to ensure compliance with the regulations established by SUNAT in the context of inventory management, specifically as outlined in Resolution No. 234-2006/SUNAT. Additionally,…
Changes are introduced to ensure compliance with the regulations
established by SUNAT in the context of inventory management,
specifically as outlined in Resolution No. 234-2006/SUNAT. Additionally,
functionality and data presentation improvements are included to
facilitate analysis and interpretation for end users.
Main Changes:
1. Initial Balance for the Period
- The initial balance of products in stock at the start of the fiscal
period is added.
- Code is introduced to identify the initial balance.


2. Corrections in Inventory Valuation
- Fields related to product entries and exits in inventory valuation are
adjusted.
3. Optimized Presentation Order
- A new sorting criterion is established for the records:
- Priority 1: Sort by product code (column 7).
- Priority 2: Sort by date (column 10).
- This allows for better analysis and interpretation, as well as ensuring
correct printing.
4. Delivery Guide Number as the Primary Indicator
- Fields 11, 12, and 13 now use the delivery guide number as the primary
indicator, complying with regulations.
- This includes the delivery guide number corresponding to the transfer
document, payment voucher, internal document, or similar.
Forward-Port-Of: odoo/enterprise#79404
Forward-Port-Of: odoo/enterprise#72064Steps to reproduce: 1. create a shortcut document in My Drive 2. select that document 3. click on the jumpToTarget button to access the source document 4. it won't select the source document / original document Technical Reason: When selecting a document, it was incorrectly assigning the wrong res_id to originalSelection. After this commit: will select the correct source document from the shortcut document. Task-4506244 Forward-Port-Of: odoo/enterprise#77627
Original PR description
Steps to reproduce: 1. create a shortcut document in My Drive 2. select that document 3. click on the jumpToTarget button to access the source document 4. it won't select the source document / original document Technical Reason: When selecting a document, it was incorrectly assigning the wrong res_id to originalSelection. After this commit: will select the correct source document from the shortcut document. Task-4506244 Forward-Port-Of: odoo/enterprise#77627
When users attempt to send a template with 10 body variables, the sample values for `Free Text 1` and `Free Text 10` are swapped. Steps to Produce: - Create a template with 10 body variables - Give sample value for `Body - {{1}}` as 1 and `Body - {{10}}` as 10 - Open the WhatsApp composer using the created template - `Free text 1` will have a value of 10 instead of 1 - `Free text 10` will have a value of 1 instead of 10 Problem: The variables are sorted by name, causing `{{10}}`
Original PR description
When users attempt to send a template with 10 body variables, the sample values for `Free Text 1` and `Free Text 10` are swapped.
Steps to Produce:
- Create a template with 10 body variables
- Give sample value for `Body - {{1}}` as 1 and `Body - {{10}}` as 10
- Open the WhatsApp composer using the created template
- `Free text 1` will have a value of 10 instead of 1
- `Free text 10` will have a value of 1 instead of 10
Problem:
The variables are sorted by name, causing `{{10}}` to appear before `{{1}}`, which leads to the values being swapped.
Solution:
Sort the variables by extracting the index from the variable name, so they are ordered numerically rather than alphabetically.
Task-4212923
Forward-Port-Of: odoo/enterprise#71307