Thursday, September 5, 2024
38 changes · saas-17.1
Resolved issues and error corrections
This fixes an error that could appear when users tried to view a previous revision in a project task's history. It helps project teams review task changes without being interrupted by a technical failure.
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
Creating a new course and clicking the Add tag button on the website no longer triggers an error. This improves the course setup experience by allowing users to add tags smoothly from the start.
Original PR description
Steps to reproduce: 1. Create a new course 2. Go to front-end. 3. Click on the "Add tag" button. 4. Throws a traceback Technical Reason: When creating a website slide for the first time, channelTagIds are undefined, causing JSON.parse to throw an error. After this Commit: No traceback will occur. Task-4154899
Miscellaneous changes
Currently, an error occurs when creating foreign taxes for 'Austria'. Steps to produce: - Installing the 'account' module. - Go to Invoicing / Configuration / Accounting / Fiscal Positions. - Create a Fiscal Position, Set the Country as 'Austria', and enter an 'FR23334175221'(For example) as 'Foreign Tax ID'. - And Create the taxes for this country. Stack Trace: ``` KeyError: 'children_tax_ids' File "odoo/http.py", line 2374, in __call__ response = request._serve_db()
Original PR description
Currently, an error occurs when creating foreign taxes for 'Austria'. Steps to produce: - Installing the 'account' module. - Go to Invoicing / Configuration / Accounting / Fiscal Positions. - Create…
Currently, an error occurs when creating foreign taxes for 'Austria'.
Steps to produce:
- Installing the 'account' module.
- Go to Invoicing / Configuration / Accounting / Fiscal Positions.
- Create a Fiscal Position, Set the Country as 'Austria', and enter an 'FR23334175221'(For example) as 'Foreign Tax ID'.
- And Create the taxes for this country.
Stack Trace:
```
KeyError: 'children_tax_ids'
File "odoo/http.py", line 2374, in __call__
response = request._serve_db()
File "odoo/http.py", line 1904, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1967, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1934, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2178, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 223, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 755, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 40, in call_button
action = call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 459, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/account/models/partner.py", line 289, in action_create_foreign_taxes
self.env["account.chart.template"]._instantiate_foreign_taxes(self.country_id, self.company_id)
File "addons/account/models/chart_template.py", line 929, in _instantiate_foreign_taxes
children_taxes = tax_data['children_tax_ids'].split(',')
```
An error occurs when the system tries to get a 'children_tax_ids' key from tax data at [1] while foreign tax creation, But it is not available.
link [1]: https://github.com/odoo/odoo/blob/4c79aceb3a6c08453f9ec66131e1bc525eae140c/addons/account/models/chart_template.py#L936
To resolve the issue, make small changes into tax data where 'amount_type' = 'percent' instead of 'amount_type' ='group'.
Sentry-5730875398
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#178939
Forward-Port-Of: odoo/odoo#178058Send reminder also to the event organizer **Example use case**: - Create an event, set an organizer (Mitchell Admin), and add as attendees Mitchell Admin and another. - Set an email reminder on the event - The event reminder will be received by all attendees (including the organizer) Current behavior before PR - Event organizer does not receive the reminder email @Tecnativa TT48356 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-
Original PR description
Send reminder also to the event organizer **Example use case**: - Create an event, set an organizer (Mitchell Admin), and add as attendees Mitchell Admin and another. - Set an email reminder on the event - The event reminder will be received by all attendees (including the organizer) Current behavior before PR - Event organizer does not receive the reminder email @Tecnativa TT48356 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#165284 Forward-Port-Of: odoo/odoo#160202
The test "test_account_move_payment_method" was failing in community only because the payment_state is paid if only l10n_it is installed but is in_payment if the enterprise module is installed. We decided to totally remove the if statement on the payment_state. The matching numbers are enough. Also adding some early returns in the compute to make sure we don't do the search on account.move.line for nothing or compute the document type for non italian companies. no task-id --
Original PR description
The test "test_account_move_payment_method" was failing in community only because the payment_state is paid if only l10n_it is installed but is in_payment if the enterprise module is installed. We decided to totally remove the if statement on the payment_state. The matching numbers are enough. Also adding some early returns in the compute to make sure we don't do the search on account.move.line for nothing or compute the document type for non italian companies. no task-id --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178235
Steps to reproduce the bug: - Turn on the Cookies from setting for the website. - Go to front end, click on editor, go to theme tab. - Click on any Font Family, and select add a google font. - After adding, save. - Add a "Title" block, go to "mobile view", and add a text highlight. - Save the page. - Bug: If you switch between mobile and desktop views, the highlights are not updated (because the SVGs are fixed and get added to the view of the page). The bug occurred because some opti
Original PR description
Steps to reproduce the bug: - Turn on the Cookies from setting for the website. - Go to front end, click on editor, go to theme tab. - Click on any Font Family, and select add a google font. - After adding, save. - Add a "Title" block, go to "mobile view", and add a text highlight. - Save the page. - Bug: If you switch between mobile and desktop views, the highlights are not updated (because the SVGs are fixed and get added to the view of the page). The bug occurred because some options, like the popup, trigger a resize after a delay before the page is saved. This causes the highlights to be added back to the DOM after the "TextHighlight" widget has been destroyed. To fix this, we prevent adding highlights if the "TextHighlight" widget has been destroyed. opw-4081390 Forward-Port-Of: odoo/odoo#178022
When the product has the "continue selling" box when "out-of-stock" checked, and you add the product to the wishlist from ecommerce, "Temporarily out of stock" message/warning will appear in the wishlist. To Reproduce on Runbot: 1. Make sure ecommerce module is installed 2. Go to storable product (for example: Cable Management Box) 3. In the sales tab, make sure the option "Continue Selling" for Out-of-Stock field is checked 4. Go to ecommerce, search for the product (here, let's search f
Original PR description
When the product has the "continue selling" box when "out-of-stock" checked, and you add the product to the wishlist from ecommerce, "Temporarily out of stock" message/warning will appear in the…
When the product has the "continue selling" box when "out-of-stock" checked, and you add the product to the wishlist from ecommerce, "Temporarily out of stock" message/warning will appear in the wishlist. To Reproduce on Runbot: 1. Make sure ecommerce module is installed 2. Go to storable product (for example: Cable Management Box) 3. In the sales tab, make sure the option "Continue Selling" for Out-of-Stock field is checked 4. Go to ecommerce, search for the product (here, let's search for Cable Management Box), click on it 5. Click on add to wishlist 6. Go to wishlist. 7. We'll see "Temporarily out of stock" message. But, we don't want this because we want to continue selling even if it's out of stock, and don't want to customer to get confused with the message. So, since the message/warning doesn't align with the concept of continue selling when out of stock, we want to get rid of the message/warning if the product has "continue selling" box checked. opw-4121929 Forward-Port-Of: odoo/odoo#177993
Steps to reproduce: - Install `payment_stripe` and `website_sale` - Configure express checkout for stripe - Add public/secret keys and - Enable "Apple Pay" in settings (to do this comment out this block) https://github.com/odoo/odoo/blob/0527b4b2ffe7d42222334b06a22739cf4963c617/addons/payment_stripe/models/payment_provider.py#L234-L237 - Enable "Link" in Stripe and add payment domain to ngrok domain - Go to website in incognito page and open a product - Add it to cart and click on the expres
Original PR description
Steps to reproduce: - Install `payment_stripe` and `website_sale` - Configure express checkout for stripe - Add public/secret keys and - Enable "Apple Pay" in settings (to do this comment out this block) https://github.com/odoo/odoo/blob/0527b4b2ffe7d42222334b06a22739cf4963c617/addons/payment_stripe/models/payment_provider.py#L234-L237 - Enable "Link" in Stripe and add payment domain to ngrok domain - Go to website in incognito page and open a product - Add it to cart and click on the express checkout button - Complete process to pay - Go to contact linked to sale Issues: Phone is missing, this is because during the creation of the shipping address `res_partner` record we don't have the phone. https://github.com/odoo/odoo/blob/0527b4b2ffe7d42222334b06a22739cf4963c617/addons/payment_stripe/static/src/js/express_checkout_form.js#L171-L181 opw-4055084 Forward-Port-Of: odoo/odoo#176213
Version : 17 Steps to Reproduce: Install the Stripe or Adyen Payment Provider. Activate the CashApp payment method. Attempt to make a payment using CashApp at checkout. Issue: Users encounter an error when selecting the CashApp payment method during payment. The error is caused by the use incorrect code of Cash App Pay payment method, resulting in a traceback. Cause: The error occurs because Cash App Pay payment method not mapped with correct code. Fix: Add the correct co
Original PR description
Version : 17 Steps to Reproduce: Install the Stripe or Adyen Payment Provider. Activate the CashApp payment method. Attempt to make a payment using CashApp at checkout. Issue: Users encounter an error when selecting the CashApp payment method during payment. The error is caused by the use incorrect code of Cash App Pay payment method, resulting in a traceback. Cause: The error occurs because Cash App Pay payment method not mapped with correct code. Fix: Add the correct code 'cashapp' to the 'PAYMENT_METHODS_MAPPING' variable of stripe and ayden. opw-4132745 Forward-Port-Of: odoo/odoo#178496
Steps to reproduce the bug: 1. Install the Sales and Loyalty apps. 2. Create a sales order for 'client x' and assign a loyalty reward to it. 3. Invoice the sales order with a down payment. 4. Navigate to the Helpdesk app and create a ticket for 'client x'. 5. Create a task for the ticket and check the Sales order item list. Issue: The sales order item list incorrectly includes down payments and loyalty rewards due to an imprecise domain. Solution: Adding a domain function that we ca
Original PR description
Steps to reproduce the bug: 1. Install the Sales and Loyalty apps. 2. Create a sales order for 'client x' and assign a loyalty reward to it. 3. Invoice the sales order with a down payment. 4. Navigate to the Helpdesk app and create a ticket for 'client x'. 5. Create a task for the ticket and check the Sales order item list. Issue: The sales order item list incorrectly includes down payments and loyalty rewards due to an imprecise domain. Solution: Adding a domain function that we can override computed field where it's necessary, to filter the sale_order_line records accurately. opw-4001226 enterprise pr : https://github.com/odoo/enterprise/pull/66388 Forward-Port-Of: odoo/odoo#179006 Forward-Port-Of: odoo/odoo#173667
This PR contains several fixes involving the "select all" feature in list view. Task~4150362 Forward-Port-Of: odoo/odoo#178977 Forward-Port-Of: odoo/odoo#178772
Original PR description
This PR contains several fixes involving the "select all" feature in list view. Task~4150362 Forward-Port-Of: odoo/odoo#178977 Forward-Port-Of: odoo/odoo#178772
Version: 16 Description of the issue/feature this PR addresses: A third party check received in a customer payment with journal with type "Cash" and Incoming payment method "New Third Party Checks" is not on hand in menu "Accounting / Customers / Third Party Checks" if journal doesn't has "Existing Third Party Checks" incoming payment method. Steps to reproduce: 1) Log in with admin on runbot odoo enterprise 16 instance and install l10n_latam_check (Third Party and Deferred/Electroni
Original PR description
Version: 16 Description of the issue/feature this PR addresses: A third party check received in a customer payment with journal with type "Cash" and Incoming payment method "New Third Party Checks"…
Version: 16 Description of the issue/feature this PR addresses: A third party check received in a customer payment with journal with type "Cash" and Incoming payment method "New Third Party Checks" is not on hand in menu "Accounting / Customers / Third Party Checks" if journal doesn't has "Existing Third Party Checks" incoming payment method. Steps to reproduce: 1) Log in with admin on runbot odoo enterprise 16 instance and install l10n_latam_check (Third Party and Deferred/Electronic Checks Management) module. 2) Go to "Accounting / Configuration /Accounting / Journals" and create a new journal of type "Cash" and add incoming payment method "New Third Party Checks".  3) Create a new customer payment with journal created on step 2 and "New Third Party Checks" payment method and confirm.  4) Go to menu Third Party Checks and the check received on step 3 is not on hand.  Current behavior before PR: A third party check received in a customer payment with journal with type "Cash" and Incoming payment method "New Third Party Checks" is not on hand on tree view in "Accounting / Customers / Third Party Checks" if the journal doesn't has "Existing Third Party Checks" incoming payment method. Desired behavior after PR is merged: A third party check received in a customer payment with journal with type "Cash" and Incoming payment method "New Third Party Checks" is on hand on tree view in "Accounting / Customers / Third Party Checks" if the journal doesn't has "Existing Third Party Checks" incoming payment method. Ticket Adhoc side: 77887 Task Latam side: 1234 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174283
…osting a batch of moves When we tried to confirm a batch of moves during the tax closing in a multi company setup with branches, an error was raised because the dependant closing moves should be posted before the parent move. This error was only catched in the `action_post` method but not on the modal that validates the batch. Original Commit: https://github.com/odoo/enterprise/pull/65645 opw-4148070 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submi
Original PR description
…osting a batch of moves When we tried to confirm a batch of moves during the tax closing in a multi company setup with branches, an error was raised because the dependant closing moves should be posted before the parent move. This error was only catched in the `action_post` method but not on the modal that validates the batch. Original Commit: https://github.com/odoo/enterprise/pull/65645 opw-4148070 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178601
The base two variants of the generic_tax_report : (generic_tax_report_tax_account, generic_tax_report_account_tax) had the availability_condition set to country with no country_id. The expected result was to have the availability_condition set to always as no country_id is set. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178950
Original PR description
The base two variants of the generic_tax_report : (generic_tax_report_tax_account, generic_tax_report_account_tax) had the availability_condition set to country with no country_id. The expected result was to have the availability_condition set to always as no country_id is set. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178950
Steps to reproduce: 1. Login with a user with invoicing manager permission, but not settings one. 2. Go to Settings > Add a Bank account. 3. Fill the data, and click on "Create". Current behavior: Access Error, due to the lack of the Administration/Settings permission Expected behavior: No error The solution is to put sudo on the operation. @Tecnativa TT50693 Forward-Port-Of: odoo/odoo#178997
Original PR description
Steps to reproduce: 1. Login with a user with invoicing manager permission, but not settings one. 2. Go to Settings > Add a Bank account. 3. Fill the data, and click on "Create". Current behavior: Access Error, due to the lack of the Administration/Settings permission Expected behavior: No error The solution is to put sudo on the operation. @Tecnativa TT50693 Forward-Port-Of: odoo/odoo#178997
Previously, settling a sale.order from the POS of a Belgian company would require the creation of an invoice. This was actually only necessary when the sale contains intra-community (EU) taxes. Those are the taxes that are mapped to (dest_tax_id) by the Intra-Community fiscal position. See https://github.com/odoo-dev/odoo/commit/70f3b748f7098b60e02e8235f2007e4b94f666c3 This commit narrows down the enforcement of the invoice creation to only target sales made with such taxes. opw-[3
Original PR description
Previously, settling a sale.order from the POS of a Belgian company would require the creation of an invoice. This was actually only necessary when the sale contains intra-community (EU) taxes. Those are the taxes that are mapped to (dest_tax_id) by the Intra-Community fiscal position. See https://github.com/odoo-dev/odoo/commit/70f3b748f7098b60e02e8235f2007e4b94f666c3 This commit narrows down the enforcement of the invoice creation to only target sales made with such taxes. opw-[3986443](https://www.odoo.com/odoo/project.task/3986443?cids=1) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170186
### Issue: Previous fix: odoo/odoo@4c0f03c7a1d1ec1f99dbc8b2202454e4398e386b In CH tax report, tax amounts from Payments of Expenses paid by company are not shown when using taxes with Cash Basis. ### Explanation: The CH report uses tags to fetch taxes. With previous fix, those tags were still not passed through. ### Fix reasoning: We will use the same condition for the `include_caba_tags` parameter as for the `caba_no_transition_account` context key for consistency. opw-394636
Original PR description
### Issue: Previous fix: odoo/odoo@4c0f03c7a1d1ec1f99dbc8b2202454e4398e386b In CH tax report, tax amounts from Payments of Expenses paid by company are not shown when using taxes with Cash Basis. ### Explanation: The CH report uses tags to fetch taxes. With previous fix, those tags were still not passed through. ### Fix reasoning: We will use the same condition for the `include_caba_tags` parameter as for the `caba_no_transition_account` context key for consistency. opw-3946362 Forward-Port-Of: odoo/odoo#178776 Forward-Port-Of: odoo/odoo#177246
Currently, a log error is generated when the user tries to import a module that is not the same as the current Odoo version. Stack Trace: ``` ValueError: Invalid version '17.0.1.0.0'. Modules should have a version in format `x.y`, `x.y.z`, `saas~17.2.x.y` or `saas~17.2.x.y.z`. File "addons/base_import_module/models/ir_module.py", line 253, in _import_zipfile self.sudo()._import_module(mod_name, path, force=force, with_demo=with_demo) File "addons/base_import_module/models/ir_mo
Original PR description
Currently, a log error is generated when the user tries to import a module that is not the same as the current Odoo version. Stack Trace: ``` ValueError: Invalid version '17.0.1.0.0'. Modules should…
Currently, a log error is generated when the user tries to import a module that is not the same as the current Odoo version.
Stack Trace:
```
ValueError: Invalid version '17.0.1.0.0'. Modules should have a version in format `x.y`, `x.y.z`, `saas~17.2.x.y` or `saas~17.2.x.y.z`.
File "addons/base_import_module/models/ir_module.py", line 253, in _import_zipfile
self.sudo()._import_module(mod_name, path, force=force, with_demo=with_demo)
File "addons/base_import_module/models/ir_module.py", line 81, in _import_module
values['latest_version'] = adapt_version(terp['version'])
File "odoo/modules/module.py", line 423, in adapt_version
raise ValueError(f"Invalid version {base_version!r}. Modules should have a version in format `x.y`, `x.y.z`,"
```
The error was caught on log because at [1] `_logger.exception()` was used, and this log error was not
useful because after the printing, the log `UserError` was raised, which shows the user what's wrong with its custom module.
This commit removes the logger exception because the `UserError` shows
what is wrong with the custom modules.
[1]-https://github.com/odoo/odoo/blob/b95edd874ce904ef231c295790a003992db002e3/addons/base_import_module/models/ir_module.py#L255-L258
sentry-4931285432
Forward-Port-Of: odoo/odoo#160274The following error occurs when you try to open a session as the superuser. Steps to reproduce: - Install the ``Point_of_sale`` module - Activate developer mode / click on debugger / Become superuser - Point of sale / click on open Register Traceback: ``IndexError: list index out of range`` This error occurs when we open a session as a superuser. When we attempt to open it, at line [1] ``res.users`` is returned as empty. [1]- https://github.com/odoo/odoo/blob/585635e8afa531b8a
Original PR description
The following error occurs when you try to open a session as the superuser. Steps to reproduce: - Install the ``Point_of_sale`` module - Activate developer mode / click on debugger / Become superuser - Point of sale / click on open Register Traceback: ``IndexError: list index out of range`` This error occurs when we open a session as a superuser. When we attempt to open it, at line [1] ``res.users`` is returned as empty. [1]- https://github.com/odoo/odoo/blob/585635e8afa531b8a66295a4afe0fcdd369ed188/addons/point_of_sale/models/pos_session.py#L379 sentry-5082852453 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172468
We currently save all configurations (db url, enterprise code, token, ...) in different text files. Now we store them all in the already existing file (`odoo.conf`), easy to write and load from python and bash. We also moved the `odoo.conf` file to `/home/pi` on the physical IoT Box, to avoid overwriting it while checking out a new branch. Based on PR from Olivier Monnom (mool): [https://github.com/odoo/odoo/pull/145365](https://github.com/odoo/odoo/pull/145365) Task: 2093535 Forward-
Original PR description
We currently save all configurations (db url, enterprise code, token, ...) in different text files. Now we store them all in the already existing file (`odoo.conf`), easy to write and load from python and bash. We also moved the `odoo.conf` file to `/home/pi` on the physical IoT Box, to avoid overwriting it while checking out a new branch. Based on PR from Olivier Monnom (mool): [https://github.com/odoo/odoo/pull/145365](https://github.com/odoo/odoo/pull/145365) Task: 2093535 Forward-Port-Of: odoo/odoo#173866
[FIX] website_sale: Avoid collect sale orders confirmed in backend This happens when, during a payment process, when the order is confirmed from the backend and in Website the cart icon is clicked. What causes the error is that the request is still pinned in the session, so it identifies that certain values should not be loaded and deletes them. The cart() method identifies if it's not a draft order, and in that case it clears the session order to continue with a new one. That causes u
Original PR description
[FIX] website_sale: Avoid collect sale orders confirmed in backend This happens when, during a payment process, when the order is confirmed from the backend and in Website the cart icon is clicked.…
[FIX] website_sale: Avoid collect sale orders confirmed in backend This happens when, during a payment process, when the order is confirmed from the backend and in Website the cart icon is clicked. What causes the error is that the request is still pinned in the session, so it identifies that certain values should not be loaded and deletes them. The cart() method identifies if it's not a draft order, and in that case it clears the session order to continue with a new one. That causes undesired modifications in modules that inherit cart() and execute before calling super(), such as website_sale_delivery, that removes carrier from order. With this motification the method sale_get_order() will now discriminate the orders that are completed and clear ir from the session, avoiding losses of information. Description of the issue/feature this PR addresses: This error was detected because the carrier_id was eliminated when following the aforementioned flow. The problem is that clicking on the cart retrieves the order that is in the session, but if it has been confirmed from the backend it should not collect it since at that moment it is not a "cart". A way to see this clearly is with the 'delivery_auto_refresh' module. This module shows the carrier_id field in sale order view (that exists but is not visible), which is collected at website. The flow that exists nowadays remove this value when we follow this steps: [Grabación de pantalla desde 16-08-24 10:41:50.webm](https://github.com/user-attachments/assets/9ec82b67-3e73-4083-b65b-be8d59db6a5a) In this video: 1. Customer starts an order 2. An user confirms the order at backend 3. Customer acceses to /shop/cart 4. Some fields of the sale order can be deleted, such as the delivery carrier If we confirm the order at backend and then follow the flow shown, the value of this field will dissapear. This happens because, as I said before, clicking the cart icon recovers the confirmed sale order (which is no longer a 'cart') and deletes many values of it. Current behavior before PR: If you confirm an order in process from website at backend and then click on the cart icon, certain fields are eliminated. Desired behavior after PR is merged: The cart button identifies whether the order is in confirmed status (or quote sent), and if so removes it from the session before the fields are cleared, thus starting a new order. FL-650-982 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178953 Forward-Port-Of: odoo/odoo#176718
[ADD] l10n_kw: Add localization package for kuwit Add CoA and account groups with all the default account mappings for kuwait Improve user experience in kuwait task-3927920 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178355
Original PR description
[ADD] l10n_kw: Add localization package for kuwit Add CoA and account groups with all the default account mappings for kuwait Improve user experience in kuwait task-3927920 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178355
Adding back the activity text highlight in the systray to make sure users understand the text is actually clickable and they can filter their activities on a specific time frame. Related commit: odoo/odoo@6b72bde3a7d3d3d9a12490431b5192ddb5230d9c Task-4141680 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178322
Original PR description
Adding back the activity text highlight in the systray to make sure users understand the text is actually clickable and they can filter their activities on a specific time frame. Related commit: odoo/odoo@6b72bde3a7d3d3d9a12490431b5192ddb5230d9c Task-4141680 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178322
**Steps:** - Create a few products and e-commerce categories - Go to the shop page - Hover on the eCommerce categories created - A bit displacement is seen in the margin **Issue:** - The margin is given to adjust the height of the scrollbar on hover but it's applied even when scrollbar is not present (when handful of categories are there) resulting in a displacement. **Fix:** - Disabling the margin on hover when there are less categories that is when scrollbar is not present **Aff
Original PR description
**Steps:** - Create a few products and e-commerce categories - Go to the shop page - Hover on the eCommerce categories created - A bit displacement is seen in the margin **Issue:** - The margin is given to adjust the height of the scrollbar on hover but it's applied even when scrollbar is not present (when handful of categories are there) resulting in a displacement. **Fix:** - Disabling the margin on hover when there are less categories that is when scrollbar is not present **Affected version:** 17.0~master opw-4088697 Forward-Port-Of: odoo/odoo#178545
When the user tries to unarchive the multiple views, a traceback will appear. Steps to reproduce the error: - Install 'website' - Go to Settings > Technical > Views - Open archived views > unarchive multiple views Traceback: ``` ValueError: Expected singleton: ir.ui.view(534, 535, 537) File "odoo/http.py", line 2248, in __call__ response = request._serve_db() File "odoo/http.py", line 1823, in _serve_db return self._transactioning(_serve_ir_http, readonly=ro) File
Original PR description
When the user tries to unarchive the multiple views, a traceback will appear. Steps to reproduce the error: - Install 'website' - Go to Settings > Technical > Views - Open archived views > unarchive…
When the user tries to unarchive the multiple views,
a traceback will appear.
Steps to reproduce the error:
- Install 'website'
- Go to Settings > Technical > Views
- Open archived views > unarchive multiple views
Traceback:
```
ValueError: Expected singleton: ir.ui.view(534, 535, 537)
File "odoo/http.py", line 2248, in __call__
response = request._serve_db()
File "odoo/http.py", line 1823, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1843, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1821, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1828, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2053, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 756, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "odoo/models.py", line 5771, in action_unarchive
return self.filtered(lambda record: not record[self._active_name]).toggle_active()
File "odoo/models.py", line 5759, in toggle_active
(self - active_recs)[self._active_name] = True
File "odoo/models.py", line 6619, in __setitem__
return self._fields[key].__set__(self, value)
File "odoo/fields.py", line 1376, in __set__
records.write({self.name: write_value})
File "addons/website/models/theme_models.py", line 366, in write
return super().write(vals)
File "addons/website/models/ir_ui_view.py", line 95, in write
return super(View, self).write(vals)
File "odoo/addons/base/models/ir_ui_view.py", line 529, in write
self._validate_fields(['arch_db'])
File "odoo/models.py", line 1484, in _validate_fields
check(self)
File "odoo/addons/base/models/ir_ui_view.py", line 371, in _check_xml
view=self.key or self.id,
File "odoo/fields.py", line 1202, in __get__
record.ensure_one()
File "odoo/models.py", line 5856, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
https://github.com/odoo/odoo/blob/9be0c5348bfeb338bcba95b2a9c01e0d7dd14306/odoo/addons/base/models/ir_ui_view.py#L379 Here, self is used in place of view.
So it will lead to the above traceback.
sentry-5604174783
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#173117Version: 17.0+ Issue: When the Customer Address column is included in the report pdf, the table format breaks. This column is added when the `partner_id.commercial_partner_id` is different than the `partner_id` of the invoice or invoice refund. Purpose of this PR: To restore the format of the information table when the Customer Address column is included. Similar to #176209 Steps to Reproduce on Runbot: 1) Install l10n_fr and switch to FR Company 2) Configure contacts a French com
Original PR description
Version: 17.0+ Issue: When the Customer Address column is included in the report pdf, the table format breaks. This column is added when the `partner_id.commercial_partner_id` is different than the `partner_id` of the invoice or invoice refund. Purpose of this PR: To restore the format of the information table when the Customer Address column is included. Similar to #176209 Steps to Reproduce on Runbot: 1) Install l10n_fr and switch to FR Company 2) Configure contacts a French company to have a child contact with a different address. 3) Create invoice with the child contact as the customer. 4) Print invoice and the informations table will be formatted incorrectly. opw-4122930 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178258
The CAR (Código de Anotación de Registro) is an alphanumeric identifier composed of payment voucher data. It includes: - RUC number of the issuer: 11 numeric digits. - Type of payment voucher: 2 numeric digits. - Payment voucher series: 4 alphanumeric digits. - Payment voucher number: 10 alphanumeric digits.  Previously, support for SIRE reports was added. This change updates the general ledger t
Original PR description
The CAR (Código de Anotación de Registro) is an alphanumeric identifier composed of payment voucher data. It includes: - RUC number of the issuer: 11 numeric digits. - Type of payment voucher: 2…
The CAR (Código de Anotación de Registro) is an alphanumeric identifier composed of payment voucher data. It includes: - RUC number of the issuer: 11 numeric digits. - Type of payment voucher: 2 numeric digits. - Payment voucher series: 4 alphanumeric digits. - Payment voucher number: 10 alphanumeric digits.  Previously, support for SIRE reports was added. This change updates the general ledger to ensure compatibility. Adjusted the format of the 'book' field to include zero-padded and truncated document types, series, and folio numbers. Legal reference: https://www.sunat.gob.pe/legislacion/superin/2021/anexo-112-2021.pdf  Resolutions: [Resolución de Superintendencia N.° 112-2021](https://drive.google.com/file/d/19iWgqTeTn5WNIg3RpfAyHtF6xSIFL2rH/view?usp=sharing) Forward-Port-Of: odoo/enterprise#67911
Current behaviour: --- When you open a document, and you want to add a tag, the preview closes. Steps to reproduce: --- 1. Go to Documents 2. Open a document 3. Add a tag 4. The preview closes Cause of the issue: --- In updateRecordTagId from documents_search_model.js Update trigger > load > documents-close-preview trigger opw-3879288 Forward-Port-Of: odoo/enterprise#66684
Original PR description
Current behaviour: --- When you open a document, and you want to add a tag, the preview closes. Steps to reproduce: --- 1. Go to Documents 2. Open a document 3. Add a tag 4. The preview closes Cause of the issue: --- In updateRecordTagId from documents_search_model.js Update trigger > load > documents-close-preview trigger opw-3879288 Forward-Port-Of: odoo/enterprise#66684
Before this commit, as soon as this module is installed, the button to generate the Libros Registro de IVA was the main button for all the companies. Instead of having a new handler, just add the code in the default handler, and manage the buttons based on the country of the current company. Forward-Port-Of: odoo/enterprise#69278
Original PR description
Before this commit, as soon as this module is installed, the button to generate the Libros Registro de IVA was the main button for all the companies. Instead of having a new handler, just add the code in the default handler, and manage the buttons based on the country of the current company. Forward-Port-Of: odoo/enterprise#69278
Steps to reproduce: - Settings > Enable 'Consolidate subscriptions billing' - Contact > Create a company - Contacts & Addresses tab > Add - Add an invoice address on the company - Add an individual then duplicate it - Create a subscription with the indiviual as customer - Duplicate the subscription then set the duplicate contact as customer - Debug mode > Scheduled actions - Sale subscription: Generate recurring invoices and payments > Run manually The subsciptions are invoiced separ
Original PR description
Steps to reproduce: - Settings > Enable 'Consolidate subscriptions billing' - Contact > Create a company - Contacts & Addresses tab > Add - Add an invoice address on the company - Add an individual…
Steps to reproduce: - Settings > Enable 'Consolidate subscriptions billing' - Contact > Create a company - Contacts & Addresses tab > Add - Add an invoice address on the company - Add an individual then duplicate it - Create a subscription with the indiviual as customer - Duplicate the subscription then set the duplicate contact as customer - Debug mode > Scheduled actions - Sale subscription: Generate recurring invoices and payments > Run manually The subsciptions are invoiced separately instead of having one invoice for both. The consolidated billing should produce only one invoice since the invoicing address is the same. This behavior works as intended if using the create invoices action on both subscriptions at once. Here, the recurring invoice creation for subscriptions uses its own grouping function using partner_id as a key instead of partner_invoice_id which is 'parent invoice address id if any, else partner_id'. Because this grouping is performed before creating the invoices, we end up processing sale orders that should have belonged to the same group separarately and thus create the invoices one by one. This means we don't let _create_invoices do the grouping since we only pass it one SO at a time, this fix will make it so _create_invoices is called on the grouped SOs instead. opw-4114035 Forward-Port-Of: odoo/enterprise#69277
We need TaxClosingNonPostedDependingMovesError inside account because it is now also used there to catch it when confirming batch of moves. Forward-Port-Of: odoo/enterprise#69206
Original PR description
We need TaxClosingNonPostedDependingMovesError inside account because it is now also used there to catch it when confirming batch of moves. Forward-Port-Of: odoo/enterprise#69206
### Steps to reproduce: - Install Sale and Field Service modules - Create a Quotation with a normal product and another Field service product - Confirm the quotation and invoice it - Change the delivered quantity of the field service product to meet the order quantity - Check the invoice status (will be 'Fully Invoiced') - Set the field service product in the SO to a unit price 0 ### Current behavior before PR: After creating an invoice for a SO that has field service product and
Original PR description
### Steps to reproduce: - Install Sale and Field Service modules - Create a Quotation with a normal product and another Field service product - Confirm the quotation and invoice it - Change the…
### Steps to reproduce: - Install Sale and Field Service modules - Create a Quotation with a normal product and another Field service product - Confirm the quotation and invoice it - Change the delivered quantity of the field service product to meet the order quantity - Check the invoice status (will be 'Fully Invoiced') - Set the field service product in the SO to a unit price 0 ### Current behavior before PR: After creating an invoice for a SO that has field service product and then set the product's unit price to 0 the SO invoice_status will change from 'Fully invoiced' to 'Nothing to invoice'. This is happening because in FSM we don't invoice SOL that has price_unit equals 0 which will lead that the SO inovice status will change too to 'Nothing to invoice'. https://github.com/odoo/enterprise/blob/17.0/industry_fsm_sale/models/sale_order.py#L84:L91 ### Desired behavior after PR is merged: We are now checking before computing the invoice status of any FSM product if the SO is not yet invoiced because if it is we won't modify the invoice status of the SOL. opw-4017282 Forward-Port-Of: odoo/enterprise#68893
Steps to reproduce the bug: 1. Install the Sales and Loyalty apps. 2. Create a sales order for 'client x' and assign a loyalty reward to it. 3. Invoice the sales order with a down payment. 4. Navigate to the Helpdesk app and create a ticket for 'client x'. 5. Create a task for the ticket and check the Sales order item list. Issue: The sales order item list incorrectly includes down payments and loyalty rewards due to an imprecise domain. Solution: Adding a domain function that we ca
Original PR description
Steps to reproduce the bug: 1. Install the Sales and Loyalty apps. 2. Create a sales order for 'client x' and assign a loyalty reward to it. 3. Invoice the sales order with a down payment. 4. Navigate to the Helpdesk app and create a ticket for 'client x'. 5. Create a task for the ticket and check the Sales order item list. Issue: The sales order item list incorrectly includes down payments and loyalty rewards due to an imprecise domain. Solution: Adding a domain function that we can override computed field where it's necessary, to filter the sale_order_line records accurately. opw-4001226 odoo pr : https://github.com/odoo/odoo/pull/173667 Forward-Port-Of: odoo/enterprise#69370 Forward-Port-Of: odoo/enterprise#66388
Before this PR: There are two problems: first, if you have a line discount like this: <img width="350" alt="Captura de pantalla 2024-03-27 a la(s) 09 48 55" src="https://github.com/odoo/enterprise/assets/382893/7564b133-c6e9-4bab-97f3-d8a0a2634fe5"> The calculation made by Odoo is: 319319 * 21.35 / 100 = 68175 which does not match the amount placed in "DescuentoMonto". In this case, it is 68173 (difference of 2 CLP) which is why it is better to prioritize the discount amount instead of the
Original PR description
Before this PR: There are two problems: first, if you have a line discount like this: <img width="350" alt="Captura de pantalla 2024-03-27 a la(s) 09 48 55"…
Before this PR: There are two problems: first, if you have a line discount like this: <img width="350" alt="Captura de pantalla 2024-03-27 a la(s) 09 48 55" src="https://github.com/odoo/enterprise/assets/382893/7564b133-c6e9-4bab-97f3-d8a0a2634fe5"> The calculation made by Odoo is: 319319 * 21.35 / 100 = 68175 which does not match the amount placed in "DescuentoMonto". In this case, it is 68173 (difference of 2 CLP) which is why it is better to prioritize the discount amount instead of the percentage in the XML, which is already rounding, leading to a problem. The second: if you have a surcharge in the line, like this: <img width="354" alt="Captura de pantalla 2024-03-27 a la(s) 09 52 40" src="https://github.com/odoo/enterprise/assets/382893/5a7ffa96-a2d9-498f-acf3-7003c95aa789"> Odoo ignores it. After the PR: The first issue is fixed by giving priority to the "DescuentoMonto" tag. The second issue is added as an improvement. Since Odoo does not have a column to show the surcharge separated in the line, we are taking advantage of the feature that supports negative discounts in the line to put that surcharge as negative. Forward-Port-Of: odoo/enterprise#65842 Forward-Port-Of: odoo/enterprise#59532
Added `pos_iot` module icon. Forward-Port-Of: odoo/enterprise#69289
Original PR description
Added `pos_iot` module icon. Forward-Port-Of: odoo/enterprise#69289
Steps to reproduce: - Have a FEC file (see ticket) - Import it on a brand new db Issue: Crash. We try to create account move line with an xml id that does not exist because we didn't create the partner associated to the correct ref The second issue is that we will link the move to the wrong customer since the second one is not created Cause: The first issue is caused because we bypass the creation of the second partner with the same name "PARTNER 01" but different ref "PARTNER02" `
Original PR description
Steps to reproduce: - Have a FEC file (see ticket) - Import it on a brand new db Issue: Crash. We try to create account move line with an xml id that does not exist because we didn't create the partner associated to the correct ref The second issue is that we will link the move to the wrong customer since the second one is not created Cause: The first issue is caused because we bypass the creation of the second partner with the same name "PARTNER 01" but different ref "PARTNER02" `ValueError: External ID not found in the system: l10n_fr_fec_import.89_partner_PARTNER02` The reason is, when creating the move line, we assign the `partner_id` with an xml_id based on the partner_ref https://github.com/odoo/enterprise/blob/ae3820059f6ff46b0dbcd64eabb2aae5caa98e18/l10n_fr_fec_import/wizard/import_wizard.py#L474-L490 Which of course does not exist. opw-3932234 Forward-Port-Of: odoo/enterprise#69148
New module for electronic invoicing Forward-Port-Of: odoo/enterprise#51266
Original PR description
New module for electronic invoicing Forward-Port-Of: odoo/enterprise#51266
Steps to reproduce: [l10n_* nl/be/etc - Europe] - create a customer form Monaco with a valid TVA number `FR53000004605` - create an invoice with this customer with an intra-eu tax - Open the EC Sales List Report Issue: The invoice will not be displayed Cause: Monaco is not part of the list Solution: We add it if the company.country_id is not France. Because for any other european country we want Monaco's invoices to be displayed opw-4075452 Forward-Port-Of: odoo/enterprise#68
Original PR description
Steps to reproduce: [l10n_* nl/be/etc - Europe] - create a customer form Monaco with a valid TVA number `FR53000004605` - create an invoice with this customer with an intra-eu tax - Open the EC Sales List Report Issue: The invoice will not be displayed Cause: Monaco is not part of the list Solution: We add it if the company.country_id is not France. Because for any other european country we want Monaco's invoices to be displayed opw-4075452 Forward-Port-Of: odoo/enterprise#68560