Friday, April 26, 2024
53 changes · saas-17.2
Resolved issues and error corrections
Users could encounter an error when saving a language change from their profile while a new record page was open. The update prevents that crash by handling unsaved records correctly in the navigation breadcrumbs, allowing the language change to complete smoothly.
Original PR description
An error occurred when attempting to change the language in my profile and clicking on save. Steps to reproduce: - Install the ``sale_management`` and ``hr`` module - Settings / Translations /…
An error occurred when attempting to change the language in my profile and clicking on save.
Steps to reproduce:
- Install the ``sale_management`` and ``hr`` module
- Settings / Translations / Languages
- Activate any Language
- Open Sales / Click New / Click the profile icon / click ``My Profile``
- Change the language / Click on ``Save``
Traceback:
```
ValueError: too many values to unpack (expected 1)
File "odoo/models.py", line 5848, in ensure_one
_id, = self._ids
ValueError: Expected singleton: product.template('n', 'e', 'w')
File "odoo/http.py", line 2254, in __call__
response = request._serve_db()
File "odoo/http.py", line 1830, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1850, 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 1828, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1835, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2060, 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 742, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/action.py", line 69, in load_breadcrumbs
display_names.append(request.env[act['res_model']].browse(record_id).display_name)
File "odoo/fields.py", line 1202, in __get__
record.ensure_one()
File "odoo/models.py", line 5851, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
In line[1], we received the record ID as ('n', 'e', 'w') while attempting
to change the language, resulting in the page being refreshed.
This commit resolves the mentioned issue by appending ``New`` in breadcrumbs if 'record_id' is 'new'.
[1] : https://github.com/odoo/odoo/blob/853bd97eda1f4eca5f9f63ef1c5909fddaa98d27/addons/web/controllers/action.py#L67
sentry - 5135218331
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes an internal test helper so failed service startup no longer leaves behind a test environment that can break later tests. It helps keep web module testing stable and reduces false failures during development and maintenance.
Original PR description
Before this commit, when a service throw an error when starting, the makeMockEnv does not register a cleanup for the created env and the next tests would crash because an env already exists. After this commit, the cleaner is registered just after the env creation to be sure it will be executed.
The mail inbox counter was corrected so new messages are counted only once instead of being duplicated. This gives users a more accurate notification count and avoids confusion when checking pending messages.
Original PR description
This code is a duplicate of the `mail.message/inbox` notification (https://github.com/odoo/odoo/blob/saas-17.2/addons/mail/static/src/core/web/mail_core_web_service.js#L36) resulting in the counter being incremented twice.
Fixes an issue where changes made in multi-select report filters were not saved when users clicked away from the popup. This ensures accounting report filters reflect the latest selections, reducing confusion and helping users get accurate report results.
Original PR description
In the case of a MultiRecordSelector, when modifying the filter and clicking out of the popup, the filter should be updated. However, since the dirtyFilter is not reactive it isn't the case. By using a useState on the variable the filters works as expected. task-3864795
Miscellaneous changes
Steps to reproduce: - Install eCommerce - Go to My account Issues: There is a box "Addresses" which is useless for the moment as it's the same page that can be accessed by clicking on "Edit information". The feature to have multiple addresses is going to be present in master at some point, however for now we're removing the box as it's useless. opw-3869920 Forward-Port-Of: odoo/odoo#162626
Original PR description
Steps to reproduce: - Install eCommerce - Go to My account Issues: There is a box "Addresses" which is useless for the moment as it's the same page that can be accessed by clicking on "Edit information". The feature to have multiple addresses is going to be present in master at some point, however for now we're removing the box as it's useless. opw-3869920 Forward-Port-Of: odoo/odoo#162626
Prior to this commit, the PoS unnecessarily loaded product images during data loading, significantly increasing the loading time. This commit modifies the process to only load the image file as a boolean, to load the image only when one exists. opw-3877851 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163492
Original PR description
Prior to this commit, the PoS unnecessarily loaded product images during data loading, significantly increasing the loading time. This commit modifies the process to only load the image file as a boolean, to load the image only when one exists. opw-3877851 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163492
Currently we are able to receive Peppol documents in a specific journal. This change allows other modules to hook into the saving process of new Peppol documents to save them somewhere else than directly in a journal. [task-3519604](https://www.odoo.com/web#id=3519604&model=project.task&view_type=form) Related to https://github.com/odoo/enterprise/pull/57018 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154706
Original PR description
Currently we are able to receive Peppol documents in a specific journal. This change allows other modules to hook into the saving process of new Peppol documents to save them somewhere else than directly in a journal. [task-3519604](https://www.odoo.com/web#id=3519604&model=project.task&view_type=form) Related to https://github.com/odoo/enterprise/pull/57018 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154706
The issue: when you make a payment and there is an exchange difference, since the post exchange difference is not set, it will throw a traceback To reproduce: - Enable 2 currencies - Have the exchange difference journal set to NULL (empty) - Create an invoice with a different currency than the one set for the company - then register a payment. The fix: Throw a user error indicating to set the post exchange difference journal opw-3783917 opw-3768202 Forward-Port-Of: odoo/odoo#157
Original PR description
The issue: when you make a payment and there is an exchange difference, since the post exchange difference is not set, it will throw a traceback To reproduce: - Enable 2 currencies - Have the exchange difference journal set to NULL (empty) - Create an invoice with a different currency than the one set for the company - then register a payment. The fix: Throw a user error indicating to set the post exchange difference journal opw-3783917 opw-3768202 Forward-Port-Of: odoo/odoo#157735
Add the basic package to the Rwanda localisation. -COA -Taxes -Default settings -Tax report -Fiscal position task-3627705 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153501
Original PR description
Add the basic package to the Rwanda localisation. -COA -Taxes -Default settings -Tax report -Fiscal position task-3627705 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153501
Recent commit [1] made a typo when converting templates [1]: https://github.com/odoo/odoo/commit/02461534d2b74410bcdfb5cccaac8157fe806127 Forward-Port-Of: odoo/odoo#162974 Forward-Port-Of: odoo/odoo#162757
Original PR description
Recent commit [1] made a typo when converting templates [1]: https://github.com/odoo/odoo/commit/02461534d2b74410bcdfb5cccaac8157fe806127 Forward-Port-Of: odoo/odoo#162974 Forward-Port-Of: odoo/odoo#162757
Steps: ------ 1. Have accounting installed. 2. Have a bank journal with a currency different from company's currency, use a bank account with no currency set for this bank journal. 3. Make a misc operation in the bank account used by the journal. 4. On the dashboard, the "Misc. Operations" amount will not be converted to the journal's currency, even though the currency's symbol is correct, the amount is in the company's currency. Fix --- Do not show the total amount of misc operatio
Original PR description
Steps: ------ 1. Have accounting installed. 2. Have a bank journal with a currency different from company's currency, use a bank account with no currency set for this bank journal. 3. Make a misc operation in the bank account used by the journal. 4. On the dashboard, the "Misc. Operations" amount will not be converted to the journal's currency, even though the currency's symbol is correct, the amount is in the company's currency. Fix --- Do not show the total amount of misc operations if the bank journal and bank journal's bank account currencies are not matching. The user still knows there are journal entries not linked to a bank transaction thanks to the "misc operations" text, but we avoid doing a currency conversion that may not make sense. **opw-3767010** Forward-Port-Of: odoo/odoo#156655
**Issue**: On the Allocation form, Error when the `date_from` field is left blank. **Cause**: When deleting the `date_from` field, the onchange `_onchange_date_from` is triggered. It will call the `_process_accrual_plans` function and report an error as shown below: ``` first_level_start_date = allocation.date_from + get_timedelta(first_level.start_count, first_level.start_type) TypeError: unsupported operand type(s) for +: 'bool' and 'relativedelta' ``` **Solution**: - Check the `dat
Original PR description
**Issue**: On the Allocation form, Error when the `date_from` field is left blank. **Cause**: When deleting the `date_from` field, the onchange `_onchange_date_from` is triggered. It will call the `_process_accrual_plans` function and report an error as shown below: ``` first_level_start_date = allocation.date_from + get_timedelta(first_level.start_count, first_level.start_type) TypeError: unsupported operand type(s) for +: 'bool' and 'relativedelta' ``` **Solution**: - Check the `date_from` condition before calling next function - Handle it only in the onchange because the `date_from` field is required --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162730
Before this commit: Accidentally the test case in community inherited class from enterprise After this commit: We inherit the correct class which belongs to community --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163399
Original PR description
Before this commit: Accidentally the test case in community inherited class from enterprise After this commit: We inherit the correct class which belongs to community --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163399
Steps to reproduce: - create an empty spreadsheet - type in a cell '=ODOO.BALANCE("qsdfqsf", "02/2024")' => #ERROR There's no account that match the given code. The account.move.line domain ends up having a clause `('account_id', 'in', [])` The ORM detects the domain won't match anything and early returns an empty list [] Our code expects a query object and not a list => boom --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of
Original PR description
Steps to reproduce:
- create an empty spreadsheet
- type in a cell '=ODOO.BALANCE("qsdfqsf", "02/2024")' => #ERROR
There's no account that match the given code.
The account.move.line domain ends up having a clause `('account_id', 'in', [])`
The ORM detects the domain won't match anything and early returns an empty list []
Our code expects a query object and not a list => boom
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#163455
Forward-Port-Of: odoo/odoo#163165Steps to reproduce: 1. Install l10n_ar_pos. 2. Make sure we are in the Argentinian company. 3. Open PoS and create a new session. 4. When inside, try to create a new partner from here. The issue is that, since the changes where we retrieve the partner from the props, we might have cases where we don't have a partner since this field is defined as optional in our point_of_sale PartnerList, from we retrieve the props from. opw-3872968 Forward-Port-Of: odoo/odoo#163385
Original PR description
Steps to reproduce: 1. Install l10n_ar_pos. 2. Make sure we are in the Argentinian company. 3. Open PoS and create a new session. 4. When inside, try to create a new partner from here. The issue is that, since the changes where we retrieve the partner from the props, we might have cases where we don't have a partner since this field is defined as optional in our point_of_sale PartnerList, from we retrieve the props from. opw-3872968 Forward-Port-Of: odoo/odoo#163385
Some options have been renammed a long time ago but there was no mechanism to warn the user should those option be still present in its configuration file. Odoo versions up to Odoo 14 (excluded) used `osv_memory_time_limit` and `geoip_database` in their configuration, those two options have been renamed to `transient_age_limit` and `geoip_city_db` in 14.0 ab4000f and saas-16.1 c59750d82440 but no deprecation warning / automatic failover were provided. Description of the issue/feature this
Original PR description
Some options have been renammed a long time ago but there was no mechanism to warn the user should those option be still present in its configuration file. Odoo versions up to Odoo 14 (excluded) used `osv_memory_time_limit` and `geoip_database` in their configuration, those two options have been renamed to `transient_age_limit` and `geoip_city_db` in 14.0 ab4000f and saas-16.1 c59750d82440 but no deprecation warning / automatic failover were provided. 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#163193
In order for preview images to be shown in the theme selection page, the `update_theme_images` needs to be called. This was done in a `post_init_hook`, which is called e.g. when installing `website`. This was also done in a `website` override of `ir.module.module.update_list()` which is called when updating a module interactively. Unfortunately, even though this override is defiend, at the time `update_list()` is called from `loading.py` when using `-u` on the command line, the modules are n
Original PR description
In order for preview images to be shown in the theme selection page, the `update_theme_images` needs to be called. This was done in a `post_init_hook`, which is called e.g. when installing `website`.…
In order for preview images to be shown in the theme selection page, the `update_theme_images` needs to be called. This was done in a `post_init_hook`, which is called e.g. when installing `website`. This was also done in a `website` override of `ir.module.module.update_list()` which is called when updating a module interactively. Unfortunately, even though this override is defiend, at the time `update_list()` is called from `loading.py` when using `-u` on the command line, the modules are not loaded yet, and therefore the override is not applied. Because of this, when a database was upgraded between versions that introduce new themes or new screenshots for themes, `update_theme_images` was not called during the upgrade, and the new images were missing in the upgraded database. This commit solves this by calling `update_theme_images` from a `function` data record, so that it is run both on install and on update of `website`. Steps to reproduce: - Install website and a theme in 14.0. - Upgrade to 15.0. - Access the theme selection page. => Images were missing for some themes. task-2719425 Forward-Port-Of: odoo/odoo#163118 Forward-Port-Of: odoo/odoo#160452
If an order was validated in PoS but encountered a sync error, the order would revert to a draft state and no receipt would be printed. However, if an order was validated in PoS without internet, the receipt could still be printed. When the internet connection was restored, the system would attempt to validate the unsynced order. If a server error occurred during this process, the system would try to revert the order to a draft state and fail. This behavior is not ideal as an order with a printe
Original PR description
If an order was validated in PoS but encountered a sync error, the order would revert to a draft state and no receipt would be printed. However, if an order was validated in PoS without internet, the receipt could still be printed. When the internet connection was restored, the system would attempt to validate the unsynced order. If a server error occurred during this process, the system would try to revert the order to a draft state and fail. This behavior is not ideal as an order with a printed receipt should not be modified or changed. This commit ensures that in the event of a sync failure, the saved orders do not revert to a draft state. opw-3858994 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#161250
This commit fixes an issue where the `sale_last_order_id` was not being set in the session when the extra info step was added to the checkout process. This caused an error during the validation of event payment in `shop_payment_validate`. Steps to reproduce the issue: 1. Install `website_event_sale` and set up a payment provider. 2. Add the extra info step to the checkout in the website. 3. Register for a paid event from the website. 4. Proceed to pay the order, which would previously res
Original PR description
This commit fixes an issue where the `sale_last_order_id` was not being set in the session when the extra info step was added to the checkout process. This caused an error during the validation of event payment in `shop_payment_validate`. Steps to reproduce the issue: 1. Install `website_event_sale` and set up a payment provider. 2. Add the extra info step to the checkout in the website. 3. Register for a paid event from the website. 4. Proceed to pay the order, which would previously result in an error. opw-3864873 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162657
We are removing the ``completeness`` field from the order because it's a non-storable field. When we attempt to access this field, it triggers a logger warning check at line [1]. This commit will help you to implement a ``goals`` search by domain and order by ``ID`` and sorting by ``completeness`` and ``current`` value, with condition-based sorting for 'higher' or 'lower' requirements check at line[2]. [1] : https://github.com/odoo/odoo/pull/127353/commits/12e9749bcc1dc4f7b1a129933
Original PR description
We are removing the ``completeness`` field from the order because it's a non-storable field. When we attempt to access this field, it triggers a logger warning check at line [1]. This commit will help you to implement a ``goals`` search by domain and order by ``ID`` and sorting by ``completeness`` and ``current`` value, with condition-based sorting for 'higher' or 'lower' requirements check at line[2]. [1] : https://github.com/odoo/odoo/pull/127353/commits/12e9749bcc1dc4f7b1a129933ae16840195bcae8#diff-7144f88ea32f36feb17ce1b8dda7dee1631f5ada34075414587df3948c6b3d1bL5317 [2] : https://github.com/odoo/odoo/blob/5c5b4d991423e0282d06a98e5677977d53dc0817/addons/gamification/models/gamification_challenge.py#L545-L548 sentry - 5162134321 Forward-Port-Of: odoo/odoo#163347 Forward-Port-Of: odoo/odoo#161270
*: website_mass_mailing Before this commit, when a "Form" snippet was added and the action was changed to "Subscribe to Newsletter", the mailing lists appeared as checkbox fields with the number of subscribers in parentheses. This commit removes the display of this unnecessary information. Steps to reproduce: - Install the "Email Marketing" module and Website. - Navigate to the Website in edit mode. - Drag & drop the "Form" block (dynamic content section). - Change the form action
Original PR description
*: website_mass_mailing Before this commit, when a "Form" snippet was added and the action was changed to "Subscribe to Newsletter", the mailing lists appeared as checkbox fields with the number of subscribers in parentheses. This commit removes the display of this unnecessary information. Steps to reproduce: - Install the "Email Marketing" module and Website. - Navigate to the Website in edit mode. - Drag & drop the "Form" block (dynamic content section). - Change the form action by setting the "Action" option to "Subscribe to Newsletter". Bug: The number of subscribers appears next to the mailing list names. task-3472820 Co-authored-by: Adrien Milis <miad@odoo.com> Forward-Port-Of: odoo/odoo#163336 Forward-Port-Of: odoo/odoo#160509
Prior to this commit, the presence of an invalid order in the browser cache could prevent the PoS from loading. This issue typically arises after a database upgrade, where changes in fields can render unpaid orders in the cache unloadable. This commit resolves this issue by discarding any problematic unpaid orders that can no longer be loaded. opw-3874858 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162672 Forward-Por
Original PR description
Prior to this commit, the presence of an invalid order in the browser cache could prevent the PoS from loading. This issue typically arises after a database upgrade, where changes in fields can render unpaid orders in the cache unloadable. This commit resolves this issue by discarding any problematic unpaid orders that can no longer be loaded. opw-3874858 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162672 Forward-Port-Of: odoo/odoo#162408
Steps to reproduce: [account_edi_ubl_cii] - create an invoice and set a line with on the control character https://unicode-explorer.com/b/0000 - confirm it - try to print it Issue: Ugly Stack Trace Cause: XML does not accept such characters ``` The characters to be escaped are the control characters #x0 to #x1F and #x7F (most of which cannot appear in XML) [...] XML processors must accept any character in the range specified for Char: `Char ::= #x9 |
Original PR description
Steps to reproduce:
[account_edi_ubl_cii]
- create an invoice and set a line with on the control character https://unicode-explorer.com/b/0000
- confirm it
- try to print it
Issue:
Ugly Stack Trace
Cause:
XML does not accept such characters
```
The characters to be escaped are the control characters #x0 to #x1F and #x7F (most of which cannot appear in XML)
[...] XML processors must accept any character in the range specified for Char:
`Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]`
source:https://www.w3.org/TR/xml/
```
opw-3773808
Forward-Port-Of: odoo/odoo#157568Description of the issue/feature this PR addresses: Spain localization l10n_es_edi_tbai module, sudo on company when creating TicketBAI chain sequence for the first time to avoid raise of access security errors without Administration/Settings. Current behavior before PR: When creating the first invoice, TicketBAI chain sequence does not exists therefore it is created, if user does not belong to Administration/Settings group, an access error is raised and invoice is not posted. In the sa
Original PR description
Description of the issue/feature this PR addresses: Spain localization l10n_es_edi_tbai module, sudo on company when creating TicketBAI chain sequence for the first time to avoid raise of access…
Description of the issue/feature this PR addresses: Spain localization l10n_es_edi_tbai module, sudo on company when creating TicketBAI chain sequence for the first time to avoid raise of access security errors without Administration/Settings. Current behavior before PR: When creating the first invoice, TicketBAI chain sequence does not exists therefore it is created, if user does not belong to Administration/Settings group, an access error is raised and invoice is not posted. In the same time, a write operation is done in the company to set the value of the sequence on l10n_es_tbai_chain_sequence_id field, and writing in a company only is allowed for users that belongs to Administration/Settings. Desired behavior after PR is merged: We make a sudo in self (res.company) with a user with account permission but not Administration/Settings, no errors are raised, invoice is posted and TicketBAI XML file is created and posted to the agency. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162433
Since 3eb96806022705f5b667e149ffa2240760097278, the signature of method `_notify_by_email_prepare_rendering_context` has been changed to provide a default values to `msg_vals` and some overrides were not adapted (or have been added afterwards). No true bug/issue has been found caused by that discrepancy, but for consistency, this commit makes sure those overrides are adapted to provide the same API as the parent method. Fixes #162742 --- I confirm I have signed the CLA and read the P
Original PR description
Since 3eb96806022705f5b667e149ffa2240760097278, the signature of method `_notify_by_email_prepare_rendering_context` has been changed to provide a default values to `msg_vals` and some overrides were not adapted (or have been added afterwards). No true bug/issue has been found caused by that discrepancy, but for consistency, this commit makes sure those overrides are adapted to provide the same API as the parent method. Fixes #162742 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163334
Currently, an error is generated when removing all product quantities from the cart after a claiming a reward(discount). Step to produce: - Install a 'website_sale_loyalty' module. - Navigate to the website / eCommerce / Loyalty / Discount & Loyalty to create a record. - Set the Loyalty Program name and Program Type as 'Loyalty Cards'.(Ensure it's available on sale and the website.) - And add 'Rewards' and set a Reward Type as 'Discount' which is applied to on Cheapest Product. - Go
Original PR description
Currently, an error is generated when removing all product quantities from the cart after a claiming a reward(discount). Step to produce: - Install a 'website_sale_loyalty' module. - Navigate to the…
Currently, an error is generated when removing all product quantities from the cart after a claiming a reward(discount).
Step to produce:
- Install a 'website_sale_loyalty' module.
- Navigate to the website / eCommerce / Loyalty / Discount & Loyalty to create a record.
- Set the Loyalty Program name and Program Type as 'Loyalty Cards'.(Ensure it's available on sale and the website.)
- And add 'Rewards' and set a Reward Type as 'Discount' which is applied to on Cheapest Product.
- Go to the website shop add any product on a card, Open a cart increase the quantity of the product, and claim the discount reward.
- Again go to Loyalty Program and open Loyalty Card, Open a record and add a Balance(greater than 200 as default reward points are 200) and copy 'Code'.
- Again go to the website shop and apply this code to claim a discount after a claim discount.
- Now remove all product quantity from a cart.
See Traceback:
```
AttributeError: 'bool' object has no attribute 'price_unit'
File "odoo/http.py", line 2252, in __call__
response = request._serve_db()
File "odoo/http.py", line 1828, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1848, 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 1826, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1833, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2058, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/website_sale_loyalty/controllers/main.py", line 126, in cart_update_json
return super().cart_update_json(*args, set_qty=set_qty, **kwargs)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/website_sale/controllers/main.py", line 817, in cart_update_json
values = order._cart_update(
File "addons/website_sale_loyalty/models/sale_order.py", line 174, in _cart_update
self._update_programs_and_rewards()
File "addons/website_sale_loyalty/models/sale_order.py", line 60, in _update_programs_and_rewards
return super()._update_programs_and_rewards()
File "addons/sale_loyalty/models/sale_order.py", line 802, in _update_programs_and_rewards
values_list = self._get_reward_line_values(reward, coupon, product=reward_key[3])
File "addons/sale_loyalty_delivery/models/sale_order.py", line 64, in _get_reward_line_values
return super()._get_reward_line_values(reward, coupon, **kwargs)
File "addons/sale_loyalty/models/sale_order.py", line 573, in _get_reward_line_values
return self._get_reward_values_discount(reward, coupon, **kwargs)
File "addons/sale_loyalty/models/sale_order.py", line 321, in _get_reward_values_discount
discountable, discountable_per_tax = self._discountable_cheapest(reward)
File "addons/sale_loyalty/models/sale_order.py", line 211, in _discountable_cheapest
discountable = cheapest_line.price_unit * (1 - (cheapest_line.discount or 0) / 100)
```
The issue occurs when attempting to remove all product quantities from a cart. At this point [1], a bool value 'False' is returned, and the system attempts to get a value of 'price_unit' from it [2].
link [1]: https://github.com/odoo/odoo/blob/499056a82db26f7d9caa86314e666e2bd49cc79c/addons/sale_loyalty/models/sale_order.py#L187-L195
link [2]: https://github.com/odoo/odoo/blob/499056a82db26f7d9caa86314e666e2bd49cc79c/addons/sale_loyalty/models/sale_order.py#L205
This commit resolves the issue, If the _cheapest_line() method returns False then also returns False from _discountable_cheapest(), To raise an error at [3].
link [3]: https://github.com/odoo/odoo/blob/cbc40eccf576c499709f7825edad9a3b3ce7a22d/addons/sale_loyalty/models/sale_order.py#L317-L333
sentry-5119007021
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#163055Steps to reproduce: - Install e-Commerce - Go to your portal into a quotation - Go to the chatter and send an empty message Issues: A traceback is shown Solution: Catch the error and discard it as the parent method is already displaying the error message to the user. opw-3877096 Forward-Port-Of: odoo/odoo#162424
Original PR description
Steps to reproduce: - Install e-Commerce - Go to your portal into a quotation - Go to the chatter and send an empty message Issues: A traceback is shown Solution: Catch the error and discard it as the parent method is already displaying the error message to the user. opw-3877096 Forward-Port-Of: odoo/odoo#162424
## Reported issue ### Steps to reproduce: Be sure that 'industry_fsm' is installed. - Go to Project > Projects and swap to the list view - Create and save a new project with a customer - Access the related SO via the smart button - Add a service product, a storable product a section and a note - Go back and access the project status with the smart button #### > The SOL generated for the section and the note appear as SO items ### Expected behavior: The purpose of the project
Original PR description
## Reported issue ### Steps to reproduce: Be sure that 'industry_fsm' is installed. - Go to Project > Projects and swap to the list view - Create and save a new project with a customer - Access the…
## Reported issue ### Steps to reproduce: Be sure that 'industry_fsm' is installed. - Go to Project > Projects and swap to the list view - Create and save a new project with a customer - Access the related SO via the smart button - Add a service product, a storable product a section and a note - Go back and access the project status with the smart button #### > The SOL generated for the section and the note appear as SO items ### Expected behavior: The purpose of the project status tab is to have an overview at the project to help in the analyse its profitability, the time investment,... as such, these SOL should not be considered as SO items. In addition, these lines lose their entire purpose in the list view used in this overview (they can not be moved and display irrelevant infos). ### Cause of the issue: These lines were not filtered out by the current query. ## Second Issue: ### Steps to reproduce: Install only the "project" and "sale_management" module and reproduce the same flow as above. #### > Only the service product is displayed as a SO items. ### Cause of the issue: Since the onchange method: https://github.com/odoo/odoo/blob/f72968561acec164697a7a9ee0965ec304854dd5/addons/sale_project/models/sale_order.py#L124-L128 is triggered before an analytic account is linked to the project, the sale order created in our flow will not be linked to an `analytic_account_id`. In particular, as this value is null in the DB and is not computed it can not be relied on here: https://github.com/odoo/odoo/blob/7f5f2963966f5a3bcfeb4bede0f9d956fff6e831/addons/sale_project/models/project.py#L341 to define the SQL query fetching our SOL. ##### Note: If the `industry_fsm` module is installed, the second issue do not happen because an analytic account is linked to the project before the trigger of the onchange method. In particular, since the behavior of this flow is different with additional modules installed we added both a test "at install" and a test "post install". opw-3794386 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157984
*: web, web_editor Follow-up of [1] (see its own explanation for details). This is about fixing the remaining code. In the future, we will probably go even further: - No more wrapwrap element at all - No support of a main scroll which is not left up to the browser (see some more details about that in [2] which explains the many problems which occurred when the scroll was on the wrapwrap element). Those final points have yet to be confirmed though. All in all, this PR should no
Original PR description
*: web, web_editor Follow-up of [1] (see its own explanation for details). This is about fixing the remaining code. In the future, we will probably go even further: - No more wrapwrap element at all - No support of a main scroll which is not left up to the browser (see some more details about that in [2] which explains the many problems which occurred when the scroll was on the wrapwrap element). Those final points have yet to be confirmed though. All in all, this PR should not change any behavior in the standard stable versions. But it will fix bugs in some custo trying to change the page scrolling behavior, while unifying the versions codebases. [1]: https://github.com/odoo/odoo/commit/ffc19547c8da2ef7fee8e2ac743ab99a607dcf90 [2]: https://github.com/odoo/odoo/pull/98429 Forward-Port-Of: odoo/odoo#163393 Forward-Port-Of: odoo/odoo#159748
When the Manufacturing Order 'qty_produced' is different from the 'product_qty' (we produced more or less than expected), then unbuild order had the wrong quantity for the finished product, and if 'mo_id.qty_produced > mo_id.product_qty', then an extra confirmed move was generated upon the validation of the unbuild order. --- FYI: note that in `mrp_unbuild.py` at line 245, there is almost the same function, and the factor uses `qty_produced` instead of `product_qty`, so this PR mostly sync
Original PR description
When the Manufacturing Order 'qty_produced' is different from the 'product_qty' (we produced more or less than expected), then unbuild order had the wrong quantity for the finished product, and if 'mo_id.qty_produced > mo_id.product_qty', then an extra confirmed move was generated upon the validation of the unbuild order. --- FYI: note that in `mrp_unbuild.py` at line 245, there is almost the same function, and the factor uses `qty_produced` instead of `product_qty`, so this PR mostly synchronize the logic. --- OPW-3860612 Forward-Port-Of: odoo/odoo#163257 Forward-Port-Of: odoo/odoo#163096
These will be used in the new service tax calculation and EDI modules. task-3660574 Forward-Port-Of: odoo/odoo#162423 Forward-Port-Of: odoo/odoo#156017
Original PR description
These will be used in the new service tax calculation and EDI modules. task-3660574 Forward-Port-Of: odoo/odoo#162423 Forward-Port-Of: odoo/odoo#156017
Commit [1] improved the drag and drop to also consider elements having a mobile order. As a follow-up, this commit adds a tour testing the drag and drop flow when moving mobile ordered columns. [1]: https://github.com/odoo/odoo/commit/7b27385dba36c2e741d96e76ad5d847d09f2b084 task-3744643 related to opw-3697962 Forward-Port-Of: odoo/odoo#161440
Original PR description
Commit [1] improved the drag and drop to also consider elements having a mobile order. As a follow-up, this commit adds a tour testing the drag and drop flow when moving mobile ordered columns. [1]: https://github.com/odoo/odoo/commit/7b27385dba36c2e741d96e76ad5d847d09f2b084 task-3744643 related to opw-3697962 Forward-Port-Of: odoo/odoo#161440
Steps to reproduce: ------------------- - create a product tag (eCommerce / Product Tags); - go to a product page and open editor; - edit the page adding a "Products" block; - add the created product tag; - remove it and save; Issue: ------ No products are displayed, whereas without tags, a default product set should be displayed. Cause: ------ At first, when we don't have a tag, the domain determined for the search is `[]`, which returns a list of products. When we add the t
Original PR description
Steps to reproduce: ------------------- - create a product tag (eCommerce / Product Tags); - go to a product page and open editor; - edit the page adding a "Products" block; - add the created product…
Steps to reproduce: ------------------- - create a product tag (eCommerce / Product Tags); - go to a product page and open editor; - edit the page adding a "Products" block; - add the created product tag; - remove it and save; Issue: ------ No products are displayed, whereas without tags, a default product set should be displayed. Cause: ------ At first, when we don't have a tag, the domain determined for the search is `[]`, which returns a list of products. When we add the tag, a domain will be built with the products linked to this tag: `['all_product_tag_ids, 'in', []]` (in the case of the use case above, there will be none). The attribute `data-product-tag-ids="[]"` is added to the dynamic snippet section. Then, when we remove it, we will get the same domain: because the string `"[]"` is valid for the condition that checks whether `productTagIds` exists. As a result, it will no longer be possible to obtain the default set for this block. Solution: --------- Try to reduce the domain to a list in all cases and compare its length. If it is empty, the domain must be an empty domain. opw-3859482 Forward-Port-Of: odoo/odoo#161818
In line[1], ``self`` is referenced to ``_get_default_mail_attachments_widget``, and using ``self`` instead of ``wizard`` doesn't make sense because ``self`` could potentially hold multiple values. This becomes problematic when the ``ensure_one`` method is called. Due to this below error is raised Traceback : ``` ValueError: too many values to unpack (expected 1) File "odoo/models.py", line 5848, in ensure_one _id, = self._ids ValueError: Expected singleton: account.move.send(168, 1
Original PR description
In line[1], ``self`` is referenced to ``_get_default_mail_attachments_widget``, and using ``self`` instead of ``wizard`` doesn't make sense because ``self`` could potentially hold multiple values.…
In line[1], ``self`` is referenced to ``_get_default_mail_attachments_widget``, and using ``self`` instead of ``wizard`` doesn't make sense because ``self`` could potentially hold multiple values. This becomes problematic when the ``ensure_one`` method is called. Due to this below error is raised
Traceback :
```
ValueError: too many values to unpack (expected 1)
File "odoo/models.py", line 5848, in ensure_one
_id, = self._ids
ValueError: Expected singleton: account.move.send(168, 167)
File "addons/payment/models/payment_transaction.py", line 985, in _cron_finalize_post_processing
tx._finalize_post_processing()
File "home/odoo/src/enterprise/saas-17.2/sale_subscription/models/payment_transaction.py", line 144, in _finalize_post_processing
super()._finalize_post_processing()
File "addons/account_payment/models/payment_transaction.py", line 217, in _finalize_post_processing
super()._finalize_post_processing()
File "addons/payment/models/payment_transaction.py", line 1001, in _finalize_post_processing
self.filtered(lambda tx: tx.operation != 'validation')._reconcile_after_done()
File "home/odoo/src/enterprise/saas-17.2/sale_subscription/models/payment_transaction.py", line 87, in _reconcile_after_done
self._post_subscription_action()
File "home/odoo/src/enterprise/saas-17.2/sale_subscription/models/payment_transaction.py", line 166, in _post_subscription_action
orders._send_success_mail(tx.invoice_ids, tx)
File "home/odoo/src/enterprise/saas-17.2/sale_subscription/models/sale_order.py", line 1866, in _send_success_mail
linked_invoices.with_context(email_context)._generate_pdf_and_send_invoice(template)
File "addons/account/models/account_move.py", line 4841, in _generate_pdf_and_send_invoice
return composer.action_send_and_print(force_synchronous=force_synchronous, allow_fallback_pdf=allow_fallback_pdf, bypass_download=bypass_download)
File "addons/account/wizard/account_move_send.py", line 738, in action_send_and_print
return self._process_send_and_print(
File "addons/account/wizard/account_move_send.py", line 663, in _process_send_and_print
moves_data = {
File "addons/account/wizard/account_move_send.py", line 666, in <dictcomp>
**self._get_mail_move_values(move, wizard),
File "addons/account/wizard/account_move_send.py", line 170, in _get_mail_move_values
'mail_attachments_widget': wizard and wizard.mail_attachments_widget or self._get_default_mail_attachments_widget(move, mail_template),
File "odoo/fields.py", line 1206, in __get__
self.recompute(record)
File "odoo/fields.py", line 1421, in recompute
apply_except_missing(self.compute_value, recs)
File "odoo/fields.py", line 1394, in apply_except_missing
func(records)
File "odoo/fields.py", line 1443, in compute_value
records._compute_field_value(self)
File "odoo/models.py", line 4931, in _compute_field_value
fields.determine(field.compute, self)
File "odoo/fields.py", line 100, in determine
return needle(*args)
File "addons/account_edi_ubl_cii/wizard/account_move_send.py", line 68, in _compute_mail_attachments_widget
super()._compute_mail_attachments_widget()
File "addons/account/wizard/account_move_send.py", line 311, in _compute_mail_attachments_widget
self._get_default_mail_attachments_widget(wizard.move_ids, wizard.mail_template_id)
File "addons/account/wizard/account_move_send.py", line 138, in _get_default_mail_attachments_widget
return self._get_placeholder_mail_attachments_data(move) \
File "addons/account_edi_ubl_cii/wizard/account_move_send.py", line 112, in _get_placeholder_mail_attachments_data
if self.mode == 'invoice_single' and self._needs_ubl_cii_placeholder():
File "odoo/fields.py", line 1202, in __get__
record.ensure_one()
File "odoo/models.py", line 5851, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
[1] : https://github.com/odoo/odoo/blob/167dedab5c7423097689c6a7d0d6ee6dd904a8bf/addons/account/wizard/account_move_send.py#L311-L312
sentry - 5234450902
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#162829### Steps to Reproduce 1. Install `sale_management` and `account_edi`. 2. Create a user with admin access in sales but no rights in accounting. 3. Log in as the new user. 4. Navigate to a Sales Order that has been invoiced and attempt to view its invoice via the 'Invoices' stat button. Expected Behavior: The user should be able to view the invoice. Actual Behavior: An access error is encountered when attempting to view the invoice. ### Cause The access error arises due to restr
Original PR description
### Steps to Reproduce 1. Install `sale_management` and `account_edi`. 2. Create a user with admin access in sales but no rights in accounting. 3. Log in as the new user. 4. Navigate to a Sales Order that has been invoiced and attempt to view its invoice via the 'Invoices' stat button. Expected Behavior: The user should be able to view the invoice. Actual Behavior: An access error is encountered when attempting to view the invoice. ### Cause The access error arises due to restricted permissions for `account.edi.format` and `account.edi.document`. Prior to commit 604a47ead80eb8a07102a978f364d82776f69da3, all users had access to these models. However, this commit restricted access solely to users with the `account.group_account_readonly` role, as part of a broader security enhancement to minimize unnecessary access by portal users. opw-3858685 Forward-Port-Of: odoo/odoo#163329
Before this PR: -------------------------------- - Validation check applied to both sold and purchased products. After this PR: ------ - Validation now applies to sold products only, ensuring compliance accuracy. Task Id: 3805678 Forward-Port-Of: odoo/odoo#157646
Original PR description
Before this PR: -------------------------------- - Validation check applied to both sold and purchased products. After this PR: ------ - Validation now applies to sold products only, ensuring compliance accuracy. Task Id: 3805678 Forward-Port-Of: odoo/odoo#157646
To make correspondences between accounting entries and attachments, we need a new file and guid for the entries. Documentation can be found at https://developer.datev.de/datev/platform/en/node/6344 task-3888995 Forward-Port-Of: odoo/enterprise#61481 Forward-Port-Of: odoo/enterprise#61378
Original PR description
To make correspondences between accounting entries and attachments, we need a new file and guid for the entries. Documentation can be found at https://developer.datev.de/datev/platform/en/node/6344 task-3888995 Forward-Port-Of: odoo/enterprise#61481 Forward-Port-Of: odoo/enterprise#61378
Currently we are able to receive Peppol documents in a specific journal. When working with multiple purchase journals, or having specific flows in the Documents app to process incoming vendor bills, it makes sense to receive your Peppol documents in the Documents app to process them. This change does just that by giving the user the option to receive incoming Peppol documents either in a journal, the Documents app, or both. It also allows to assign specific tags to the document. [task-3
Original PR description
Currently we are able to receive Peppol documents in a specific journal. When working with multiple purchase journals, or having specific flows in the Documents app to process incoming vendor bills, it makes sense to receive your Peppol documents in the Documents app to process them. This change does just that by giving the user the option to receive incoming Peppol documents either in a journal, the Documents app, or both. It also allows to assign specific tags to the document. [task-3519604](https://www.odoo.com/web#id=3519604&model=project.task&view_type=form) Related to https://github.com/odoo/odoo/pull/154706 Forward-Port-Of: odoo/enterprise#57018
In [1] we added a domain on appointment actions to prevent a traceback when users visit the gantt appointment views when resources from different companies appear at the same time. However appointment_resource_id was deprecated in favor of appointment_resource_ids in stable since then. `appointment_resource_ids` should now be used in the domain. [1] ab7addece528d887f062e70732f96fde2ed76dca task-3893256 Forward-Port-Of: odoo/enterprise#61439
Original PR description
In [1] we added a domain on appointment actions to prevent a traceback when users visit the gantt appointment views when resources from different companies appear at the same time. However appointment_resource_id was deprecated in favor of appointment_resource_ids in stable since then. `appointment_resource_ids` should now be used in the domain. [1] ab7addece528d887f062e70732f96fde2ed76dca task-3893256 Forward-Port-Of: odoo/enterprise#61439
This commit adds the financial reports of Rwanda and make sure they are balanced. task: 3627705 Forward-Port-Of: odoo/enterprise#57099
Original PR description
This commit adds the financial reports of Rwanda and make sure they are balanced. task: 3627705 Forward-Port-Of: odoo/enterprise#57099
Bug === Create in this order - 1 normal document - 1 link document - 1 normal document Select the first and second documents, the link button is not visible. Select the second and third documents, the link button is visible and shouldn't be. Similarly, the share button should be visible if at least one document is not archived, and not if the first document is not active. Task-3874111 Forward-Port-Of: odoo/enterprise#61449 Forward-Port-Of: odoo/enterprise#61118
Original PR description
Bug === Create in this order - 1 normal document - 1 link document - 1 normal document Select the first and second documents, the link button is not visible. Select the second and third documents, the link button is visible and shouldn't be. Similarly, the share button should be visible if at least one document is not archived, and not if the first document is not active. Task-3874111 Forward-Port-Of: odoo/enterprise#61449 Forward-Port-Of: odoo/enterprise#61118
The soda import wizard message has been changed in commit https://github.com/odoo/enterprise/commit/6322a1850ec95948c517b6db5ecc9bff3e18f755\. The change in the message reflects a behavior change when the codabox module is installed. This message should stay unchanged when the codabox module is not installed. Forward-Port-Of: odoo/enterprise#61214
Original PR description
The soda import wizard message has been changed in commit https://github.com/odoo/enterprise/commit/6322a1850ec95948c517b6db5ecc9bff3e18f755\. The change in the message reflects a behavior change when the codabox module is installed. This message should stay unchanged when the codabox module is not installed. Forward-Port-Of: odoo/enterprise#61214
To reproduce: ============= - create an employee having night shift from 21:30 to 06:00 configured as 21:30 -> 24:00 and 00:30 -> 06:00 (break of 30 minutes) - in planning create a role for this employee - create an open shift for that role from 21:30 to 06:00 - click auto plan -> shift is not assigned to the employee Problem: ======== when computing the rate of allocated hours for this shift we find out that it exceeds 100%, because the hour 24:00 is represented as 23:59:59.999999 w
Original PR description
To reproduce: ============= - create an employee having night shift from 21:30 to 06:00 configured as 21:30 -> 24:00 and 00:30 -> 06:00 (break of 30 minutes) - in planning create a role for this employee - create an open shift for that role from 21:30 to 06:00 - click auto plan -> shift is not assigned to the employee Problem: ======== when computing the rate of allocated hours for this shift we find out that it exceeds 100%, because the hour 24:00 is represented as 23:59:59.999999 which creates rounding issues. Solution: ========= round the allocated rate opw-3874283 Forward-Port-Of: odoo/enterprise#61438
### Issue: Grouping by a field.properties in the gantt view will give a traceback. ### Steps to reproduce: - Go on a project - Swap to the gantt view - Create a task in the calendar - Go back to the list view, click on the task - Click on the wheel icon and add a property with a value - Go back to the project and its gantt view - Group by the property you have added to your task #### > traceback ### Cause of the Issue: The fields given in the groupby parameters are added
Original PR description
### Issue: Grouping by a field.properties in the gantt view will give a traceback. ### Steps to reproduce: - Go on a project - Swap to the gantt view - Create a task in the calendar - Go back to the…
### Issue: Grouping by a field.properties in the gantt view will give a traceback. ### Steps to reproduce: - Go on a project - Swap to the gantt view - Create a task in the calendar - Go back to the list view, click on the task - Click on the wheel icon and add a property with a value - Go back to the project and its gantt view - Group by the property you have added to your task #### > traceback ### Cause of the Issue: The fields given in the groupby parameters are added to the read_specification of the "get_gantt_data" by the "_fetchData" method: https://github.com/odoo/enterprise/blob/ab29a91a0acda94fbb98a0f84c8685b34a31fbe5/web_gantt/static/src/gantt_model.js#L635-L638 https://github.com/odoo/enterprise/blob/ab29a91a0acda94fbb98a0f84c8685b34a31fbe5/web_gantt/static/src/gantt_model.js#L915-L920 However, as a fields.properties such as task_properties represent a dictionary of "pseudo field", the "field name" of a given property is of the form "task_properties.hashKey". The read_specification of the gantt view will therefore contain a "field_name" of that form. However, the ORM does not support to read such fields and the code will crash here: https://github.com/odoo/enterprise/blob/ab29a91a0acda94fbb98a0f84c8685b34a31fbe5/web_gantt/models/models.py#L89 pseudo fields such as "task_properties.12c97bca432np24" are not expected to be read (this is not supported by the ORM). ### Fix: If we were to format field names in the "_fetchData" method we would be able to group records by fields.properties in the gantt view. However, the framework is not ready to plainly support this operation as for instance other tracebacks will be encountered when you drag and drop tasks in the gantt view after a group by a given property. It was therefore decided with the framework team to remove the fields.properties from the fields appearing in the groupedBy parameters of the gantt view until these other operations become supported. opw-3847341 Forward-Port-Of: odoo/enterprise#61128
The commit https://github.com/odoo/enterprise/commit/cf61f05e78e40f03f4d1d4ba2692b8b5426759cc forgot to change the name of the module that needs to be installed to make the feature work correctly for the ICP part. Forward-Port-Of: odoo/enterprise#61470
Original PR description
The commit https://github.com/odoo/enterprise/commit/cf61f05e78e40f03f4d1d4ba2692b8b5426759cc forgot to change the name of the module that needs to be installed to make the feature work correctly for the ICP part. Forward-Port-Of: odoo/enterprise#61470
We make this module uninstallable until the certification is done. This commit will be reverted later. Forward-Port-Of: odoo/enterprise#50109
Original PR description
We make this module uninstallable until the certification is done. This commit will be reverted later. Forward-Port-Of: odoo/enterprise#50109
The way the chart templates refs work had changed in 16.2, but this test was never adapted (it never ran before as the needed environment variables were not set on runbot... They are now and this raises an error). Forward-Port-Of: odoo/enterprise#61385
Original PR description
The way the chart templates refs work had changed in 16.2, but this test was never adapted (it never ran before as the needed environment variables were not set on runbot... They are now and this raises an error). Forward-Port-Of: odoo/enterprise#61385
"here" = "aquí" in Spanish Forward-Port-Of: odoo/enterprise#61474
Original PR description
"here" = "aquí" in Spanish Forward-Port-Of: odoo/enterprise#61474
This should have been done using a bridge module to allow uninstalling SMS but hey. Runbot-27909 Forward-Port-Of: odoo/enterprise#61462
Original PR description
This should have been done using a bridge module to allow uninstalling SMS but hey. Runbot-27909 Forward-Port-Of: odoo/enterprise#61462
This adds tax calculation and EDI support for service transactions. All new functionality was added in new modules because this is taking place in a stable release. Avatax has different endpoints for submitting and cancelling service invoices. These two endpoints have fairly similar payloads so various overrides were made to remove/add information from the goods payloads to make them compatible with the service endpoints. A new account.external.tax.mixin l10n_br_is_service_transaction field i
Original PR description
This adds tax calculation and EDI support for service transactions. All new functionality was added in new modules because this is taking place in a stable release. Avatax has different endpoints for…
This adds tax calculation and EDI support for service transactions. All new functionality was added in new modules because this is taking place in a stable release. Avatax has different endpoints for submitting and cancelling service invoices. These two endpoints have fairly similar payloads so various overrides were made to remove/add information from the goods payloads to make them compatible with the service endpoints. A new account.external.tax.mixin l10n_br_is_service_transaction field is used to determine whether to follow the old, existing goods flow or go through the new service flow. The biggest difference is that service invoices go through an extra, asynchronous validation step. To achieve this, invoices that are successfully submitted end up in a new "pending" state. After this, their status can be checked with button_l10n_br_edi_get_service_invoice(). This function is also called periodically with a cron. In master, these modules will be merged into the already existing modules and deleted. task-3660574 Forward-Port-Of: odoo/enterprise#61031 Forward-Port-Of: odoo/enterprise#57868
### Steps to reproduce 1. Activate "l10n_account_customer_statements" 3. Register payment for a large amount of invoices (6+) to the same customer 4. Tick the Group Payments box 5. Go to the customer's contact 6. Action / Print Customer Statements You should see that most of the information is outside the page ### Cause The whole table has the `text-nowrap` class. opw-3820027 Before:  to the same customer 4. Tick the Group Payments box 5. Go to the customer's contact 6. Action / Print Customer Statements You should see that most of the information is outside the page ### Cause The whole table has the `text-nowrap` class. opw-3820027 Before:  After:  Forward-Port-Of: odoo/enterprise#60808
Purpose ======= Prevent the horizontal scrolling of the inspector but allow the vertical scrolling for small screen sizes. Specifications ============== Reverting the addition of the "overflow-hidden" class on the documents inspector as it is preventing its horizontal but also its vertical scrolling. On lower screen sizes, a vertical scrolling is needed or else the inspector becomes pratically unusable. related PR: odoo/enterprise#59652 Task-3884149 Forward-Port-Of: odoo/enterprise
Original PR description
Purpose ======= Prevent the horizontal scrolling of the inspector but allow the vertical scrolling for small screen sizes. Specifications ============== Reverting the addition of the "overflow-hidden" class on the documents inspector as it is preventing its horizontal but also its vertical scrolling. On lower screen sizes, a vertical scrolling is needed or else the inspector becomes pratically unusable. related PR: odoo/enterprise#59652 Task-3884149 Forward-Port-Of: odoo/enterprise#61399 Forward-Port-Of: odoo/enterprise#61220
The recent commit https://github.com/odoo/enterprise/commit/b12fc61af033f8914529d86a3edb464fc951f7dc changed the way a move is created during the import of a new peppol document. Before, we were passing a default value for `extract_can_show_send_button`, but now we try to set this field to `False` directly in create values. However, this field only exists in enterprise and thus things break if a user is only using community. Also, it's a computed readonly field, so it is better to use `is_in_ext
Original PR description
The recent commit https://github.com/odoo/enterprise/commit/b12fc61af033f8914529d86a3edb464fc951f7dc changed the way a move is created during the import of a new peppol document. Before, we were passing a default value for `extract_can_show_send_button`, but now we try to set this field to `False` directly in create values. However, this field only exists in enterprise and thus things break if a user is only using community. Also, it's a computed readonly field, so it is better to use `is_in_extractable_state` for this purpose. no task, fixing the error highlighted by tests --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163507