Friday, September 13, 2024
40 changes · saas-17.4
Resolved issues and error corrections
Fixes an issue where the Dependencies tooltip in website page properties could reappear empty after being opened more than once. This ensures users can reliably see which pages or items depend on a changed page URL, reducing confusion during website edits.
Original PR description
task-4179593
This fixes an issue where the “include archived” option could show up twice when users built certain advanced filters. The change keeps the filter interface cleaner and avoids confusion when selecting archived records.
Original PR description
This commit fixes a bug where the include archived checkbox button would be duplicated when the "any" operator would be used. This was due to the fact that using this operator would spawn a sub TreeEditor component inside of itself carrying most of its props including the include archived Checkbox slot from the domain selector which was supposed to be unique. The fix is therefore to empty the slots from the sub TreeEditor component.
PDF quotes now correctly show banner background colors in terms and conditions. This keeps downloaded documents visually consistent with what users see in Odoo and avoids missing emphasis in customer-facing PDFs.
Original PR description
Issue: ====== Downloaded pdfs doesn't have the background color of banners. Steps to reproduce the issue: ============================= - Go to any sale order - Add a banner in terms and conditions - Print PDF Quote - No background color of the banner Origin of the issue: ==================== After the upgrade of bootstrap to 5.3 in [1], we changed the hardcoded colors to css variables of the alers. We use wkhtmltopdf to render the pdf files but it doesn't support the css variables so we loose all the stylnig that was using those variables. Solution: ========= Add an override for alert classes to keep the old colors and styles as hardcoded to make sure they appear in the generated pdf opw-4143779 [1]: https://github.com/odoo/odoo/commit/058212e12b5079eba870bde9775fe98f27928935
Users can now duplicate multiple customer payments from the Payments list without triggering an error. This prevents interruptions in invoicing workflows when handling several payments at once.
Original PR description
This Error occurs when a user tries to duplicate multiple payments from the 'Payments' list view. Steps to reproduce: - Install the 'account' module - Go to Invoicing / Customers / Payments and…
This Error occurs when a user tries to duplicate multiple payments from the 'Payments' list view.
Steps to reproduce:
- Install the 'account' module
- Go to Invoicing / Customers / Payments and create two payments.
- Come to the list view of 'Payments' and duplicate both of them.
Traceback:
```
ValueError: too many values to unpack (expected 1)
File "odoo/models.py", line 5961, in ensure_one
_id, = self._ids
ValueError: Expected singleton: account.payment(22, 11)
File "odoo/http.py", line 2373, in __call__
response = request._serve_db()
File "odoo/http.py", line 1903, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1966, 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 1933, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2177, 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 754, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 35, in call_kw
return 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/account_payment.py", line 939, in copy
if not self.is_internal_transfer:
File "odoo/fields.py", line 1204, in __get__
record.ensure_one()
File "odoo/models.py", line 5964, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
An error occurs at [1], where the system receives multiple records in 'self' as duplicating of multiple payments.
link [1]:https://github.com/odoo/odoo/blob/5e28dcf717a7184f226773b3c84b409da24c1336/addons/account/models/account_payment.py#L939
To resolve this issue, Add a loop to copy multiple records one by one.
Sentry-5689633522
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes an Accounting issue where duplicating more than one vendor payment at the same time caused an error. Users can now select and duplicate multiple payment records without interruption, improving reliability in day-to-day payment processing.
Original PR description
Problem: After this [commit](https://github.com/odoo/odoo/pull/166494/commits/c61adb511d002d74ec763e7dd113d18734d861ff), attempting to copy multiple payments fails because the case where `self` contains multiple records is not handled. Steps to reproduce: - Go to Accounting > Vendors > Payments. - Select two payment lines and duplicate them. - Traceback occurs. opw-4144848 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Invoice line product descriptions now resize their text area when the column width changes. This keeps the full label visible without an unwanted scrollbar, making invoice editing cleaner and easier to read.
Original PR description
On the invoice form view, if the product column of a previously saved invoice line was resized to be of a smaller width, an undesired scrollbar would show on the product label text area. This commit fixes this issue by making the label text area height adapts to changes in its width to always show its full content without the need for a scrollbar. task-4034995 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix updates access rights so enterprise users working in Invoicing can use the missing bank transactions part of bank synchronization. It completes a previous access-rights update and prevents users from being blocked in that workflow.
Original PR description
Since this commit [[1]], the bank synchronization flow is available in invoicing for enterprise user. It means that we have to update the access rights. It was done for the main flow but forgotten for the missing transactions flow. [1]: https://github.com/odoo-dev/enterprise/commit/c00c23cca9760533f0578ba3c93e3b59979589ce no task id
Miscellaneous changes
- Change address format for all reports when a company is established with the country of Ecuador. - Add extra validation when getting the ats code from the contact, in case it is an Final Consumer. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179558
Original PR description
- Change address format for all reports when a company is established with the country of Ecuador. - Add extra validation when getting the ats code from the contact, in case it is an Final Consumer. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179558
Current behavior before PR: When creating a table in email marketing using the powerbox command `/table`, the table picker would open at an incorrect position. Desired behavior after PR is merged: Now, when using the `/table` powerbox command to create a table in email marketing, the table picker will open at the cursor position. task-4113199 Forward-Port-Of: odoo/odoo#176712
Original PR description
Current behavior before PR: When creating a table in email marketing using the powerbox command `/table`, the table picker would open at an incorrect position. Desired behavior after PR is merged: Now, when using the `/table` powerbox command to create a table in email marketing, the table picker will open at the cursor position. task-4113199 Forward-Port-Of: odoo/odoo#176712
Steps to reproduce ================== - Install project - Open any task in a form view - Press the alt key => The hotkeys are not displayed. Cause of the issue ================== Since a6876ac03799c1e0626bac54129493155d9eb637 , the toolbar makes use of the useActiveElement() This is not correct since the toolbar is always attached to the DOM, only it's visibility is toggled when we need to show it. Solution ======== Revert the commit since the feature wasn't well supp
Original PR description
Steps to reproduce ================== - Install project - Open any task in a form view - Press the alt key => The hotkeys are not displayed. Cause of the issue ================== Since a6876ac03799c1e0626bac54129493155d9eb637 , the toolbar makes use of the useActiveElement() This is not correct since the toolbar is always attached to the DOM, only it's visibility is toggled when we need to show it. Solution ======== Revert the commit since the feature wasn't well supported anyway and there is no easy workaround. opw-4175689 Forward-Port-Of: odoo/odoo#180166 Forward-Port-Of: odoo/odoo#179950
This commit fixes the record selector's caret positioning (displayed on hover only) by moving to be a sibling of the autocomplete's input. Steps to reproduce: - install Sales - open Dashboard - hover one of the filter in the ControlPanel => the filter's caret is displayed but on a separate line Enterprise: https://github.com/odoo/enterprise/pull/69944 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180146 Forward-P
Original PR description
This commit fixes the record selector's caret positioning (displayed on hover only) by moving to be a sibling of the autocomplete's input. Steps to reproduce: - install Sales - open Dashboard - hover one of the filter in the ControlPanel => the filter's caret is displayed but on a separate line Enterprise: https://github.com/odoo/enterprise/pull/69944 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180146 Forward-Port-Of: odoo/odoo#180046
Download files are restricted to the internal users by acl. This commit adapts the UI so the feature would not be available for non-internal users. Steps to reproduce: - Go to a public channel as a guest - Send a message with multiple attachments - Try to download all of them by clicking on Download Files in the message action menu - It crashes with Forbidden error Forward-Port-Of: odoo/odoo#180130 Forward-Port-Of: odoo/odoo#180109
Original PR description
Download files are restricted to the internal users by acl. This commit adapts the UI so the feature would not be available for non-internal users. Steps to reproduce: - Go to a public channel as a guest - Send a message with multiple attachments - Try to download all of them by clicking on Download Files in the message action menu - It crashes with Forbidden error Forward-Port-Of: odoo/odoo#180130 Forward-Port-Of: odoo/odoo#180109
Commit bf49460e4a51494fe5b2346d75c4105832e7d412 wrongly forgot to multiply the amount by the quantities to consider the amount in the discount wizard. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180083
Original PR description
Commit bf49460e4a51494fe5b2346d75c4105832e7d412 wrongly forgot to multiply the amount by the quantities to consider the amount in the discount wizard. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180083
- website.snippet documentation Description of the issue/feature this PR addresses: There are some website snippet documentation typos Current behavior before PR: The documentation with some typos Desired behavior after PR is merged: The documentation without any typos --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180058
Original PR description
- website.snippet documentation Description of the issue/feature this PR addresses: There are some website snippet documentation typos Current behavior before PR: The documentation with some typos Desired behavior after PR is merged: The documentation without any typos --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180058
Before this fix `TestAnalyticMixin` used `product.product`, `account.move` and `account.move.line`, but `analytic` does not have these models in its dependencies. So this test causes `Single App` tests (when tests are run with just concerned modules and its dependencies) to fail. This commit adapts the tests so that they only use `account.analytic.*` models. original fix: https://github.com/odoo/odoo/commit/9d51fa9daee09e5467d38c5a890be7c0392d93f4 runbot error logs: https://runbo
Original PR description
Before this fix `TestAnalyticMixin` used `product.product`, `account.move` and `account.move.line`, but `analytic` does not have these models in its dependencies. So this test causes `Single App` tests (when tests are run with just concerned modules and its dependencies) to fail. This commit adapts the tests so that they only use `account.analytic.*` models. original fix: https://github.com/odoo/odoo/commit/9d51fa9daee09e5467d38c5a890be7c0392d93f4 runbot error logs: https://runbot.odoo.com/web#id=74493&menu_id=405&cids=1&model=runbot.build.error&view_type=form Forward-Port-Of: odoo/odoo#178930
The modules `account_audit_trail` and `account_lock` cannot be uninstalled since [1]. The issue is that the error message displayed to the end user is not specific enough and causes confusion when people are not directly uninstalling the module, but rather another module that happen to trigger the uninstallation of `account_audit_trail` or `account_lock` (`account` for example). After this commit the human readable and technical name of the module are displayed in the error message w
Original PR description
The modules `account_audit_trail` and `account_lock` cannot be uninstalled since [1]. The issue is that the error message displayed to the end user is not specific enough and causes confusion when people are not directly uninstalling the module, but rather another module that happen to trigger the uninstallation of `account_audit_trail` or `account_lock` (`account` for example). After this commit the human readable and technical name of the module are displayed in the error message which should allow the end user to either have a better understanding of why the operation is impossible or should not be performed, or at the very least will help them go check the description of the right modules to get further information. [1] https://github.com/odoo/odoo/pull/171244 opw-4172056 Forward-Port-Of: odoo/odoo#179601 --------------- [EDIT BY MAO] Just about account_lock now
JQuery ajax was supporting extra headers sent along with the HTTP request, but this was no longer possible with the new RPC service. With this commit, we reintroduce this feature, so that extra HTTP headers can be specified by the caller. Forward-Port-Of: odoo/odoo#180124 Forward-Port-Of: odoo/odoo#180055
Original PR description
JQuery ajax was supporting extra headers sent along with the HTTP request, but this was no longer possible with the new RPC service. With this commit, we reintroduce this feature, so that extra HTTP headers can be specified by the caller. Forward-Port-Of: odoo/odoo#180124 Forward-Port-Of: odoo/odoo#180055
Go to a kanban view (directly from a menu, s.t. it's the first item in the breadcrumb), open a record. Simulate a global network error (connection loss, server down, outdated session...). For instance, remove the session_id cookie. Click on the breadcrumb to go back to kanban. Before this commit, this caused an infinite loop of reloading the kanban and the form views. When the first rpc error occurs, we land into the onError handler in the action service. We detect that we are trying to resto
Original PR description
Go to a kanban view (directly from a menu, s.t. it's the first item in the breadcrumb), open a record. Simulate a global network error (connection loss, server down, outdated session...). For…
Go to a kanban view (directly from a menu, s.t. it's the first item in the breadcrumb), open a record. Simulate a global network error (connection loss, server down, outdated session...). For instance, remove the session_id cookie. Click on the breadcrumb to go back to kanban. Before this commit, this caused an infinite loop of reloading the kanban and the form views. When the first rpc error occurs, we land into the onError handler in the action service. We detect that we are trying to restore a controller from the stack, which crashes. At that point, we would like to restore the controller which appears before the faulty one in the stack. In our case, there's no such controller (we are the first one). So we reach the other part of the error handling, which concerns controllers that are not yet in the stack. For that case, we try to restore the last controller of the stack (the form view). This one fails as well, so we land again in the onError handler, for a controller that is already in the stack, but not the first one this time. So we try to restore the one before it (the kanban), which fails, and so on. The issue has been introduced in [1], where we simply forgot to handle the case where the faulty controller is the first one of the stack, and that's exactly what we do in this commit. In that case, there's nothing to do but display the error (there's no controller to restore). [1] ad35b3069e2efc69b97a283476da4154d49dda8b 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#179806
Issue: ====== Duplicate attachmenets are loaded in chatter. Steps to reproduce the issue: ============================= - Go to massmailing, create a new email with a template with images. - Replace the image by uploading a new one, save. - The second and onward uploaded images have two attachments in the tab->chat->attachment. Origin of the issue: ==================== In web_editor, optimized versions of the images are created. In the chatter we load all attachments, original
Original PR description
Issue: ====== Duplicate attachmenets are loaded in chatter. Steps to reproduce the issue: ============================= - Go to massmailing, create a new email with a template with images. - Replace…
Issue: ====== Duplicate attachmenets are loaded in chatter. Steps to reproduce the issue: ============================= - Go to massmailing, create a new email with a template with images. - Replace the image by uploading a new one, save. - The second and onward uploaded images have two attachments in the tab->chat->attachment. Origin of the issue: ==================== In web_editor, optimized versions of the images are created. In the chatter we load all attachments, original and optimized ones which looks like we have duplicates. For .svg images, we create duplicate .png versions in python side. Spec for Images created from mass_mailing: =========================================== - For SVG images we show only the png version. - For non SVG images we show the original version. Solution: ========= - For SVG images: If the image doesn't have .png version which means added directly in the chatter/attach we show it otherwise we show the .png version. - For non SVG images: We always show the image which doesn't have original_id or their original_id image isn't in the list of attachment. task-3639914 opw-3589477 Forward-Port-Of: odoo/odoo#169176
Since 17.0 and [renderToElement], the snippet is rerendered (and thus starts anew) on every key input in the descriptions options. The donation's publicWidget fetches the currency to display every time on start, meaning that it does a query on every key press. This also triggers jumps on the screen. To avoid both issues, this commit caches the currency for the duration of the publicWidget life. [renderToElement]: f956e83c744bd9c970d3f16ce1cb3cff8bba2f6b task-4032975 Forward-Port-Of: odoo
Original PR description
Since 17.0 and [renderToElement], the snippet is rerendered (and thus starts anew) on every key input in the descriptions options. The donation's publicWidget fetches the currency to display every time on start, meaning that it does a query on every key press. This also triggers jumps on the screen. To avoid both issues, this commit caches the currency for the duration of the publicWidget life. [renderToElement]: f956e83c744bd9c970d3f16ce1cb3cff8bba2f6b task-4032975 Forward-Port-Of: odoo/odoo#179953 Forward-Port-Of: odoo/odoo#171788
Before 020ddc3a we allowed any Python identifier as column names. The usual field definition `name = fields.FieldType(...)` restricts `name` to be a valid Python identifier. Forbidding it in 17.0 causes issues during upgrades. For example, with the model: ```py class CustomModel(models.Model): _name = 'mymodule.custom.model' _description = "custom" année = fields.Char() ``` In 17.0 before this patch we get errors like: ``` File "/home/odoo/src/odoo/17.0/odoo/tools/
Original PR description
Before 020ddc3a we allowed any Python identifier as column names. The usual field definition `name = fields.FieldType(...)` restricts `name` to be a valid Python identifier. Forbidding it in 17.0…
Before 020ddc3a we allowed any Python identifier as column names. The usual field definition `name = fields.FieldType(...)` restricts `name` to be a valid Python identifier. Forbidding it in 17.0 causes issues during upgrades.
For example, with the model:
```py
class CustomModel(models.Model):
_name = 'mymodule.custom.model'
_description = "custom"
année = fields.Char()
```
In 17.0 before this patch we get errors like:
```
File "/home/odoo/src/odoo/17.0/odoo/tools/sql.py", line 150, in identifier
assert IDENT_RE.match(name), f"{name!r} invalid for SQL.identifier()"
^^^^^^^^^^^^^^^^^^^^
AssertionError: 'année' invalid for SQL.identifier()
```
### Possible issue during upgrade from < `17.0` to >= `17.0`:
1. Install fresh db in `16.0`
2. Add custom field `année` to the `res.users` with custom module
3. Go to `Settings --> Manage Users` add the field `année` in the list view
by installing studio
4. Upgrade to `17.0`
You will get error like this:
```
('base.menu_action_res_users', 64, 'Settings > Users & Companies > Users', 70):
Traceback (most recent call last):
File "/tmp/tmpcmtylywh/migrations/base/tests/test_mock_crawl.py", line 256, in crawl_menu
self.mock_action(action_vals)
File "/tmp/tmpcmtylywh/migrations/base/tests/test_mock_crawl.py", line 429, in mock_action
mock_method(model, view, fields_list, domain, group_by)
File "/tmp/tmpcmtylywh/migrations/base/tests/test_mock_crawl.py", line 557, in mock_view_tree
self.mock_web_search_read(model, view, [domain], fields_list)
File "/tmp/tmpcmtylywh/migrations/base/tests/test_mock_crawl.py", line 591, in mock_web_search_read
data = model.search_read(domain=domain, fields=fields_list, limit=80)
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 5756, in search_read
records = self.search_fetch(domain or [], fields, offset=offset, limit=limit, order=order)
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 1648, in search_fetch
return self._fetch_query(query, fields_to_fetch)
File "/home/odoo/src/odoo/17.0/odoo/addons/base/models/res_users.py", line 545, in _fetch_query
records = super()._fetch_query(query, fields)
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 3929, in _fetch_query
sql = self._field_to_sql(self._table, field.name, query)
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 2863, in _field_to_sql
return SQL.identifier(alias, fname)
File "/home/odoo/src/odoo/17.0/odoo/tools/sql.py", line 153, in identifier
assert IDENT_RE.match(subname), f"{subname!r} invalid for SQL.identifier()"
AssertionError: 'année' invalid for SQL.identifier()
```
Actually, the issue can occur anywhere that the new `SQL.Identifier()` is used.
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#180011
Forward-Port-Of: odoo/odoo#179863Previously, setting the `size` prop to `fullscreen` in the `Dialog` component caused an error in debug mode, as the `fullscreen` utility class from Bootstrap was not included in the props. This commit resolves the issue by allowing the `fullscreen` option in the `size` props, ensuring compatibility with Bootstrap's utility classes. Forward-Port-Of: odoo/odoo#179898 Forward-Port-Of: odoo/odoo#174588
Original PR description
Previously, setting the `size` prop to `fullscreen` in the `Dialog` component caused an error in debug mode, as the `fullscreen` utility class from Bootstrap was not included in the props. This commit resolves the issue by allowing the `fullscreen` option in the `size` props, ensuring compatibility with Bootstrap's utility classes. Forward-Port-Of: odoo/odoo#179898 Forward-Port-Of: odoo/odoo#174588
Have a form view with an x2many field displayed as a list or kanban. Create a new record, and have an onchange/default value for that x2many that returns more commands 0 (create) than the limit. Before this commit, all records where displayed on the first page (as expected when new records are created in an x2many) but the pager was displayed. Then, if you went to the second page, you would see records in the reverse order. This commit fixes the order issue by inserting records in the correct
Original PR description
Have a form view with an x2many field displayed as a list or kanban. Create a new record, and have an onchange/default value for that x2many that returns more commands 0 (create) than the limit. Before this commit, all records where displayed on the first page (as expected when new records are created in an x2many) but the pager was displayed. Then, if you went to the second page, you would see records in the reverse order. This commit fixes the order issue by inserting records in the correct order when processing commands. But in the meantime, it also fixes the fact that a pager was displayed. Issue reported on discord (more details here [1]) [1] odoo/odoo#179650 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#179674
Steps to reproduce: - Include in your assets a CSS file with invalid formatting. - Translate your website in RTL language. > The website will never load and you will be left with a blank page. Cause of the issue: `rtlcss` never exit with a returncode, consequently our error management there is useless. As from `rtlcss` 4.1.0 [1], an error code is returned but only when using a CSS file. In our case, Odoo pass the CSS payload via the `stdin`. A PR [2] has been opened on `rtlcss` to also
Original PR description
Steps to reproduce: - Include in your assets a CSS file with invalid formatting. - Translate your website in RTL language. > The website will never load and you will be left with a blank page. Cause…
Steps to reproduce: - Include in your assets a CSS file with invalid formatting. - Translate your website in RTL language. > The website will never load and you will be left with a blank page. Cause of the issue: `rtlcss` never exit with a returncode, consequently our error management there is useless. As from `rtlcss` 4.1.0 [1], an error code is returned but only when using a CSS file. In our case, Odoo pass the CSS payload via the `stdin`. A PR [2] has been opened on `rtlcss` to also exit with a return code in this scenario (and log details to `stderr`). In the meantime and also for earlier versions, the error management had to be slightly adjusted. As we cannot deduce any informations from the return code (and the `stderr` is completely empty), we can exploit the fact that, in case of errors, `rtlcss` doesn't output anything to `stdout`. [1]: https://github.com/MohammadYounes/rtlcss/commit/4e625458cb236a4a21cb6d5e54283a9d5244fdc8 [2]: https://github.com/MohammadYounes/rtlcss/pull/342 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179852 Forward-Port-Of: odoo/odoo#178021
Added blur on pos display devices and pairing code boxes background to ease readability and improve user experience. Forward-Port-Of: odoo/odoo#179814
Original PR description
Added blur on pos display devices and pairing code boxes background to ease readability and improve user experience. Forward-Port-Of: odoo/odoo#179814
Description of the issue/feature this PR addresses: Commit [1] fixed a bug where selecting across two paragraphs separated by whitespace resulted in multiple indented lists. However, this fix introduced a new issue: if a first child of block node was whitespace followed by a `<br>`, the list was not created on the first attempt. Instead, only the whitespace was removed, and the list was created on the second attempt. Commit [2] addressed this issue but introduced a new problem: if a bl
Original PR description
Description of the issue/feature this PR addresses: Commit [1] fixed a bug where selecting across two paragraphs separated by whitespace resulted in multiple indented lists. However, this fix…
Description of the issue/feature this PR addresses: Commit [1] fixed a bug where selecting across two paragraphs separated by whitespace resulted in multiple indented lists. However, this fix introduced a new issue: if a first child of block node was whitespace followed by a `<br>`, the list was not created on the first attempt. Instead, only the whitespace was removed, and the list was created on the second attempt. Commit [2] addressed this issue but introduced a new problem: if a block node had whitespace as its first child, the placeholder for that block would enter an infinite loop, causing the page to become unresponsive. This commit reverts the changes made in Commit [2] and introduces a new approach that resolves the list creation issue when a block node had whitespace as its first child, without causing the placeholder to get stuck in a loop. [1]: https://github.com/odoo-dev/odoo-editor/commit/58a7fadcaaaa7322c6177276ddc22b62da96d1f5 [2]: https://github.com/odoo/odoo/commit/1e982dab025fb86e759b249433f41619a442b5cf task-4082867 Forward-Port-Of: odoo/odoo#176178
Duplicating languages wasn't possible because no logic was added to it, so it threw an error whenever trying to duplicate a language. The main reason is that when you try to duplicate a language, the ORM tries to create a new record with the same fields. However, the `name`, `code` , and `url_code` fields should be unique. This commit adds the needed logic to handle duplicating languages by adding a `(copy)` postfix to the fields. Task-4141689 Forward-Port-Of: odoo/odoo#179972 Forward-Port-O
Original PR description
Duplicating languages wasn't possible because no logic was added to it, so it threw an error whenever trying to duplicate a language. The main reason is that when you try to duplicate a language, the ORM tries to create a new record with the same fields. However, the `name`, `code` , and `url_code` fields should be unique. This commit adds the needed logic to handle duplicating languages by adding a `(copy)` postfix to the fields. Task-4141689 Forward-Port-Of: odoo/odoo#179972 Forward-Port-Of: odoo/odoo#179686
### Steps to reproduce: - Create a storable product with 0 unit in stock - Create and confirm a Sale order for 1 unit fo that product - Create and confirm a Purchase Order for 1 unit of that product and an expected date further than the delivery date. - Click on the chart icon on the pol to be redirected to the forecast ### Expected behavior: The line should be displayed in red since the PO is late just as in 16.0 as the cell has the "".o_grid_warning" class. ### Current behavior:
Original PR description
### Steps to reproduce: - Create a storable product with 0 unit in stock - Create and confirm a Sale order for 1 unit fo that product - Create and confirm a Purchase Order for 1 unit of that product and an expected date further than the delivery date. - Click on the chart icon on the pol to be redirected to the forecast ### Expected behavior: The line should be displayed in red since the PO is late just as in 16.0 as the cell has the "".o_grid_warning" class. ### Current behavior: It is not. ### Cause of the issue: The `o_report_replenishment` class does not exist in 17.0 and the `table` class is used instead the html of the report so that the css file is not defining the color of the `o_warning` class correctly anymore. opw-4161304 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179936
This update enables the printing of the delivery challan when the e-way bill is in the pending stage. The E-Way Bill Details section and QR code are omitted for delivery challans, as these details are only available after the e-way bill is generated and moves to the generated stage. Additionally, some minor refinements have been made to the ewaybill_report, including the removal of heading numbers and the unnecessary columns CEWB No. and Multi Veh. Info from the Vehicle Details section. Ta
Original PR description
This update enables the printing of the delivery challan when the e-way bill is in the pending stage. The E-Way Bill Details section and QR code are omitted for delivery challans, as these details are only available after the e-way bill is generated and moves to the generated stage. Additionally, some minor refinements have been made to the ewaybill_report, including the removal of heading numbers and the unnecessary columns CEWB No. and Multi Veh. Info from the Vehicle Details section. Task [link](https://www.odoo.com/odoo/project/967/tasks/4149686) task-4149686 Forward-Port-Of: odoo/odoo#178826
Update the taxes and taxes-related models due to new tax rules. This concerns a few accounts,taxes, tax groups, and the tax report. We also use this occasion to set non-important taxes as inactive by default to reduce slightly the amount of taxes that are shown out of the box. Tax id #3585950 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179715
Original PR description
Update the taxes and taxes-related models due to new tax rules. This concerns a few accounts,taxes, tax groups, and the tax report. We also use this occasion to set non-important taxes as inactive by default to reduce slightly the amount of taxes that are shown out of the box. Tax id #3585950 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179715
Before this commit, a queryCount was set at 3453 queries and was failing on multiple builds. This PR bump that count. Forward-Port-Of: odoo/enterprise#69420
Original PR description
Before this commit, a queryCount was set at 3453 queries and was failing on multiple builds. This PR bump that count. Forward-Port-Of: odoo/enterprise#69420
This commit adapts the Account reports's filters styling, following the fix of the record selector's caret positioning made in community. Community: https://github.com/odoo/odoo/pull/180046 Forward-Port-Of: odoo/enterprise#69994 Forward-Port-Of: odoo/enterprise#69944
Original PR description
This commit adapts the Account reports's filters styling, following the fix of the record selector's caret positioning made in community. Community: https://github.com/odoo/odoo/pull/180046 Forward-Port-Of: odoo/enterprise#69994 Forward-Port-Of: odoo/enterprise#69944
### Steps to reproduce * install `account_intrastat` * create and confirm an invoice for a Northern Irish customer * open the EC Sales Report You will see that your invoice is not included in the report opw-4123375 Forward-Port-Of: odoo/enterprise#69955 Forward-Port-Of: odoo/enterprise#69501
Original PR description
### Steps to reproduce * install `account_intrastat` * create and confirm an invoice for a Northern Irish customer * open the EC Sales Report You will see that your invoice is not included in the report opw-4123375 Forward-Port-Of: odoo/enterprise#69955 Forward-Port-Of: odoo/enterprise#69501
We get a KeyError when trying to format values in consolidation report Steps: - Install account_consolidation - Open a consolidation balance - Try to reformat values -> KeyError -> `blank_if_zero` and `format_params` are not in `column_dict` when we try to access it in `account_reports._format_column_values` opw-4070070 Forward-Port-Of: odoo/enterprise#67708
Original PR description
We get a KeyError when trying to format values in consolidation report Steps: - Install account_consolidation - Open a consolidation balance - Try to reformat values -> KeyError -> `blank_if_zero` and `format_params` are not in `column_dict` when we try to access it in `account_reports._format_column_values` opw-4070070 Forward-Port-Of: odoo/enterprise#67708
[FIX] *_spreadsheet_*: useless filter date granularity option In task 3887844 we added the possibilty to select which date granularities were available for a given period global filter. But this options was also displayed for relative and from/to global filters, where it made no sense. Task: [4176679](https://www.odoo.com/odoo/2328/tasks/4176679) Forward-Port-Of: odoo/enterprise#69775
Original PR description
[FIX] *_spreadsheet_*: useless filter date granularity option In task 3887844 we added the possibilty to select which date granularities were available for a given period global filter. But this options was also displayed for relative and from/to global filters, where it made no sense. Task: [4176679](https://www.odoo.com/odoo/2328/tasks/4176679) Forward-Port-Of: odoo/enterprise#69775
When making an order paid with customer account, the total due of the customer where not updated correctly until the session is closed. Steps to reproduce: ------------------- * Make sure pos_settle_due module is installed * Open PoS make an order and pay with customer account and Customer A * Open Customer list > Observation: Check the total due of Customer A, it's still 0 Why the fix: ------------ When computing the total due we take into account the pos orders that are still in a
Original PR description
When making an order paid with customer account, the total due of the customer where not updated correctly until the session is closed. Steps to reproduce: ------------------- * Make sure pos_settle_due module is installed * Open PoS make an order and pay with customer account and Customer A * Open Customer list > Observation: Check the total due of Customer A, it's still 0 Why the fix: ------------ When computing the total due we take into account the pos orders that are still in an open session opw-4094546 Forward-Port-Of: odoo/enterprise#69080
Starting as from `saas-17.2`, PrinterDriver's default action requires a `print_id`, which was not provided by the longpolling service action method. We added the missing parameter to avoid the traceback created by this error. Forward-Port-Of: odoo/enterprise#69737
Original PR description
Starting as from `saas-17.2`, PrinterDriver's default action requires a `print_id`, which was not provided by the longpolling service action method. We added the missing parameter to avoid the traceback created by this error. Forward-Port-Of: odoo/enterprise#69737
When the no-content helper is shown and the user clicks on the "New" button to create a new article, the sidebar lists the newly created article in the "workspace" and in the "private" section. This is an undesirable behavior as the newly created article should only appear in the "private" section. When no record is passed to the form view, the form view creates a virtual record. When the user clicks on the "New" button, the system will create a new article and open it using the `openArticle`
Original PR description
When the no-content helper is shown and the user clicks on the "New" button to create a new article, the sidebar lists the newly created article in the "workspace" and in the "private" section. This…
When the no-content helper is shown and the user clicks on the "New" button to create a new article, the sidebar lists the newly created article in the "workspace" and in the "private" section. This is an undesirable behavior as the newly created article should only appear in the "private" section. When no record is passed to the form view, the form view creates a virtual record. When the user clicks on the "New" button, the system will create a new article and open it using the `openArticle` function defined in the component environment. When calling the `openArticle` function, the function will check if the article has a title and, if it hasn't, it will fetch the first heading of the article and use it as title (see: `ensureArticleName`). If the record is not virtual, the function `openArticle` will then persist the changes made on the current record before opening the new record. For its part, the sidebar listens to the changes made on the loaded record (using a record observer) and updates its state based on the record changes. When calling the `ensureArticleName`, the title of the virtual record changes and the sidebar detects that change and adds a new entry for the virtual record. The sidebar will then add another entry for the newly created record. To fix the issue, the `openArticle` function will no longer call the `ensureArticleName` function when the current record is virtual. The virtual record state will hence no longer be updated when opening a new article. As a result, the sidebar will not detect any change and will no longer create an entry for the virtual record. Note that there was actually no reason to update the title of the virtual record as it gets discarded when leaving Knowledge. Steps to reproduce the issue: 1. Delete all articles from the database 2. Open the Knowledge editor (you should see the no-content helper) 3. Click on the "New" button => There is two entries for the new article: one in the "workspace" section and one in the "private" section. TO BE: There should only be one entry in the "private" section. task-4160386 Forward-Port-Of: odoo/enterprise#69438
Currently, the share panel cannot be closed once it has been opened. This commit resolves the issue by preventing the share panel from closing only when the active element is a modal. Steps to reproduce the issue: 1. Open Knowledge. 2. Click on the share button to open the share panel. 3. Click on the share button again to close the share panel. => The share panel remains open. TO BE: The share panel should close. Details: In the `KnowledgeTopbar` component, we added external ev
Original PR description
Currently, the share panel cannot be closed once it has been opened. This commit resolves the issue by preventing the share panel from closing only when the active element is a modal. Steps to…
Currently, the share panel cannot be closed once it has been opened. This commit resolves the issue by preventing the share panel from closing only when the active element is a modal. Steps to reproduce the issue: 1. Open Knowledge. 2. Click on the share button to open the share panel. 3. Click on the share button again to close the share panel. => The share panel remains open. TO BE: The share panel should close. Details: In the `KnowledgeTopbar` component, we added external event listeners to detect when the dropdown menu is opened, closed, or about to close. When the dropdown is about to close (i.e., when the `hide.bs.dropdown` event is triggered), we check if the active element is the HTML document. If the focus is on another element, we prevent the dropdown from closing. This mechanism was added to prevent the dropdown from closing when users are adding new members through the invite modal. Using the `useActiveElement` hook, the active element can change when a component is mounted. When the web editor in Knowledge is mounted, the active element becomes the editor toolbar. As a result, the active element is no longer the HTML document, and the event listener always prevents the dropdown from closing. To resolve this issue, we will now check if the active element is a modal before preventing the dropdown from closing. This ensures that the dropdown behaves as expected and the share panel can be closed when necessary. Reference: https://github.com/odoo/odoo/pull/175880 task-4179706 Forward-Port-Of: odoo/enterprise#69861
Not passing the previous_options can have bad consequences, and was clearly not wanted here. Forward-Port-Of: odoo/enterprise#69913
Original PR description
Not passing the previous_options can have bad consequences, and was clearly not wanted here. Forward-Port-Of: odoo/enterprise#69913