Skip to content

Conversation

pull[bot]
Copy link

@pull pull bot commented Mar 31, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added 👽 merge-conflict Resolve conflicts manually labels Mar 31, 2025
thle-odoo and others added 28 commits September 15, 2025 10:19
Portal users can edit their opportunities.
It is necessary to verify that they have access
to certain information to avoid unexpected behaviour.

task-5025295
The changes made in this PR: #215597 were wrongly reverted in this PR: #218194
This PR re-introduces the changes (the employee avatar image has a fixed size).

closes #227065

X-original-commit: 8c1e16e
Signed-off-by: Jurgen Gjini (jugj) <[email protected]>
Signed-off-by: Romain Carlier (romc) <[email protected]>
The context was removed in a previous change (#222793), which caused the
"Import Template" button to disappear in account.move and hr.timesheet.
These models rely on context keys in get_import_template to display the
correct label and link.

This commit adds the context back and tests for both models.

closes #227042

X-original-commit: 19f3b17
Signed-off-by: Aaron Bohy (aab) <[email protected]>
Stop using `web.assets_frontend` in `mass_mailing`, for multiple reasons:

- loading this bundle implied that all frontend JS and SCSS were loaded for a
  mailing, while the mailing actually only uses css, and only a fraction of it.
- this bundle is crowded with assets from all modules that are totally
  irrelevant to `mass_mailing`. i.e. not loading it prevents issues where
  `website` (or any other module) style assets modified `mass_mailing` assets in
  a way that was not desirable.

This will drastically improve loading time when starting a new mailing for the
first time, and will also speed up the `convert_inline` process since a lot less
style rules need to be parsed.

This implies that the `snippets preview dialog` can no longer load
`web.assets_frontend` by default. Instead a resource was introduced for each
module to introduce their own previewing assets through a plugin.

task-5078825

X-original-commit: 8f0a09e
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
To compute the `body_html` for a mailing, it needs to be added in the DOM, to
have access to the computed style. To ensure that the proper styles are
computed, the iframe width must be set to the maximum width of an email, which
is 1320px.

task-5078825

X-original-commit: 3b443f9
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
Ensure that a user typing directly in the `o_editable` element will not result
in a corrupted content, and that the UX for an empty email hints at the user
what to do.

This results in a better experience when a user uses the `empty theme` for a new
mailing.

task-5078825

X-original-commit: b704a42
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
Small rectification of the mobile preview bottom padding, which could overlap
with the phone image around the iframe.

task-5078825

X-original-commit: a0498e0
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
This is a cleaning pass after the `mass_mailing` [refactoring].

The goal is to:
- clean snippets options (remove duplicates, redundant, ineffective
options).
- ensure that no editable phrasing content sits next to flow content (which is
  not well supported in the editor).
- ensure that style assets for snippets correctly use the `mass_mailing` bundle.
- ensure that snippets use the proper technical classes.
- ensure that when `col-x` is specified, `col-md-y` is specified too, to avoid
  bumps in the interface when the user tries to redimension columns.

[refactoring]: 82969dc

task-5078825

X-original-commit: cd4a4c4
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
… headings

Allow users to configure the magin-bottom for paragraphs and headings through
the `Design Tab`, for a more flexible spacing.

task-5078825

X-original-commit: 7c14cda
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
There is no reasy why `applyTo` shouldn't be optional, as the item to add a
product to can be the element matched by `selector`.

task-5078825

X-original-commit: b728ddf
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
Prior to this commit, if the `customize` tab was displayed and empty, no matter
if a plugin adds a snippet in the DOM, it would not be updated because of
`hasContent = false`. This commit forces `hasContent` to be reevaluated when
`currentOptionsContainers` change.

task-5078825

X-original-commit: e9f9dff
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
…cendant

In `mass_mailing`, it is not allowed to drop `phrasing content` next to `flow
content` that is not `phrasing content`. Therefore the `s_image` snippet was
adapted to come inside a `p`, and a Plugin to convert the image inside said `p`
when it is dropped is included in this commit.

task-5078825

X-original-commit: 3b51063
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
Prior to this commit, it was not possible to add an image back to a cover if it
was removed. The selector is now fixed to allow that.

task-5078825

X-original-commit: 4768235
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
`o_mail_no_resize` has no usage anymore, no need to keep it. `o_mail_no_options`
should be used instead to prevent an element from being considered for builder
manipulations.

task-5078825

X-original-commit: 3bb1fd2
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
task-5078825

X-original-commit: 214bc72
Part-of: #227094
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
This is a cleaning pass after the `mass_mailing` [refactoring].

### Stop using `web.assets_frontend` for mailings

For multiple reasons:
- loading this bundle implied that all frontend JS and SCSS were loaded for a
  mailing, while the mailing actually only uses css, and only a fraction of it.
- this bundle is crowded with assets from all modules that are totally
  irrelevant to `mass_mailing`. i.e. not loading it prevents issues where
  `website` (or any other module) style assets modified `mass_mailing` assets in
  a way that was not desirable.

This will drastically improve loading time when starting a new mailing for the
first time, and will also speed up the `convert_inline` process since a lot less
style rules need to be parsed.

This implies that the `snippets preview dialog` can no longer load
`web.assets_frontend` by default. Instead a resource was introduced for each
module to introduce their own previewing assets through a plugin.

### Improve UX for an empty mailing

Ensure that a user typing directly in the `o_editable` element will not result
in a corrupted content, and that the UX for an empty email hints at the user
what to do.

This results in a better experience when a user uses the `empty theme` for a new
mailing.

### Fix snippets
- clean snippets options (remove duplicates, redundant, ineffective
options).
- ensure that no editable phrasing content sits next to flow content (which is
  not well supported in the editor).
- ensure that style assets for snippets correctly use the `mass_mailing` bundle.
- ensure that snippets use the proper technical classes.
- ensure that when `col-x` is specified, `col-md-y` is specified too, to avoid
  bumps in the interface when the user tries to redimension columns.

[refactoring]: 82969dc

task-5078825

closes #227094

Forward-port-of: #226224
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Co-authored-by: Damien Abeloos <[email protected]>
Co-authored-by: Thomas Josse <[email protected]>
This commit fixes a crash that occurs when opening the call
settings from the live chat meeting view.

The error occurs because the action uses the action panel,
which relies on a variable defined in discuss. However, discuss
is only loaded in the public page or the backoffice.

This commit ensures the action panel doesn't rely on variables
defined outside of its bundle.

X-original-commit: cde9b42
Part-of: #227061
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
Live chat is always displayed in a shadow DOM to ensure the
styles are not impacted by the site that embeds it.

However, the meeting view is not mounted inside the shadow DOM
but inside the main DOM which results in style inconsistencies.

Technically, the meeting view is opened by the `mail.fullscreen`
service that doesn't take shadow DOMs into account.

This commit ensures the fullscreen mode is opened in the DOM the
action originates from. To do so, the overlay service, which already
handles this, will be used. This also simplified the full screen
service.

X-original-commit: 0d9f5d8
Part-of: #227061
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
When microphone or camera permission are not granted, a small
warning icon is displayed next to the corresponding call button.
However, in the meeting view, icons are cropped.

This occurs because the actions are wrapped inside a div with
`overflow-x-auto`. When any of the axis overflow is set to `auto`,
the other can't be set to `visible`.

To solve this issue, add a small padding top to the actions, thus
letting space to show the badges.

X-original-commit: fbcf575
Part-of: #227061
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
This commit fixes a crash that occurs in the meeting view when the
chat is opened. Since [1], typing has been added but the `Typing`
component is not provided to the `MeetingChat` component.

[1]: #223004

X-original-commit: d6ac2ed
Part-of: #227061
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
Since [1], pip button is not in the call action list anymore.
When the pip opens, we check if the target is in a shadow DOM
using the `root` property of the component that triggered the
action. However, the call component doesn't have a root property
which prevent the detection of the shadow DOM.

[1]: #223004

X-original-commit: 3f9be3a
Part-of: #227061
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
This PR fixes several issues with the call meeting view:
- crash when opening call settings
- wrong style in website, because the full screen component is not mounted 
in the shadow DOM.
- permission icons are cropped
- crash when typing component is shown
- pip assets are not loaded in the live chat

closes #227061

Forward-port-of: #226787
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
Split out the classSetUp + its methods into separate class so it can be
used in other modules

Supports task: 5067457

closes #227016

X-original-commit: 1f01f21
Related: odoo/enterprise#94668
Signed-off-by: Tiffany Chang (tic) <[email protected]>
closes #226702

Task: 5075847
X-original-commit: 6077da9
Signed-off-by: Tiffany Chang (tic) <[email protected]>
Signed-off-by: Pawel Fertyk (pafe) <[email protected]>
The function `__get_bank_statements_available_sources` is pointless
and can just be replaced with `_get_bank_statements_available_sources`
(single underscore version).

See related community PR.

task-None

closes #226347

Related: odoo/enterprise#94334
Related: odoo/upgrade#8428
Signed-off-by: Maximilien La Barre (malb) <[email protected]>
For Error https://runbot.odoo.com/odoo/runbot.build.error/232249 :

Issue:
- ManifestLinter.test_manifests errors in multiple theme modules.
- The error was caused by the theme_customizations key being unrecognized in
  manifests and flagged as unknown.

Fix:
- Added theme_customizations to the list of allowed manifest keys,
  so the linter accepts it in theme module manifests.

closes #227012

X-original-commit: 9dfc5d3
Signed-off-by: Victor Feyens (vfe) <[email protected]>
When there is no user, you get a traceback when it tries to access
user.id. As the code that call getCashierUserId handles the fact that a
falsy value is returned, we return undefiened when there is no user.

closes #226988

X-original-commit: b0f7ca0
Signed-off-by: Pierre Masereel (pim) <[email protected]>
…nvoice

The system crashes with an error when a user tries to `download the e-Faktur`
document.

Steps to produce:-
- Install `Accounting` and switch to `ID Company`(with demo data).
- Create a `new invoice` and select customer as `ID Company`.
- Add the product and in `taxes add 11% and 0% (2 non-luxury taxes)` and
  confirm the invoice.
- Click on gear icon and click on `Download e-Faktur` button.

Error:-
`ValueError: ValueError('Expected singleton: account.tax(5, 15)') while
 evaluating 'action = records.download_efaktur()'`

Root cause:-
- When more than one non-luxury tax is applied and the e-Faktur document is
  downloading, the code at [1] expects a single tax record, but multiple
  non-luxury taxes are found.

Solution:-
- Added constrait to for 'tax_ids', so that only one tax is applied
  per line.

[1]: https://github.com/odoo/odoo/blob/52aa6231130ea165fdb44e6370ec3e396b7603cc/addons/l10n_id_efaktur_coretax/models/account_move_line.py#L52
[2]: https://github.com/odoo/odoo/blob/52aa6231130ea165fdb44e6370ec3e396b7603cc/addons/l10n_id_efaktur_coretax/models/account_move_line.py#L24-L25

sentry-6837559933

closes #227053

X-original-commit: afc88f4
Signed-off-by: Paolo Gatti (pgi) <[email protected]>
Signed-off-by: Krishna Arvindkumar Patel (krip) <[email protected]>
madprog and others added 30 commits September 18, 2025 04:08
The kpi.provider:get_account_kpi_summary method should include posted
moves of a bank journal that are related to an unreconciled bank
statement.

closes #227772

Task-id: 5062431
Forward-port-of: #227661
Forward-port-of: #227605
X-original-commit: 689e789
Signed-off-by: Brice Bartoletti (bib) <[email protected]>
Signed-off-by: Paul Morelle (pmo) <[email protected]>
…_line_ids

Traceback when no `repartition_line_ids` found in tax data.

Steps to reproduce:-
- Install `l10n_in` module with demo data.
- Install `l10n_account_withholding_tax` module.

Error:-
File /data/build/odoo/addons/l10n_account_withholding_tax/__init__.py, line 27, in _make_demo_tax
    tax_repartition_lines = [line[2] for line in tax_data[purchase_taxes[0]]['repartition_line_ids'] if line[2]['repartition_type'] == 'tax']

KeyError: 'repartition_line_ids'

Root Cause: At [1], No `repartition_line_ids` found in
`tax_data[purchase_taxes[0]]`.

Solution: Select only purchase taxes having `repartition_line_ids`.

[1]: https://github.com/odoo/odoo/blob/9805d09dff64de835de0c764da8c6e213d6b88aa/addons/l10n_account_withholding_tax/__init__.py#L27

closes #227742

X-original-commit: a37a211
Signed-off-by: Maximilien La Barre (malb) <[email protected]>
Signed-off-by: Pratham Nareshbhai Patel (ppat) <[email protected]>
Issue before this commit:
=========================
When a product has a non-normal BoM type (e.g. subcontracting or kit) and
the MTO route is enabled, and creating a Sale Order generates a blank MO.

Steps to Reproduce:
=========================
- Install the mrp module.
- Create a product with a BoM of type Subcontracting (or Kit).
- Enable the MTO route on that product.
- Create a Sale Order for the product.
→ A blank MO is created, which should not happen.

Cause of the issue:
=========================
In this [PR](#223685), MRP route
are now defined at the warehouse level, so by default, the MRP route
becomes applicable to every product, and is excluded only under specific conditions.

For the MRP route, we only checked whether the product had a BoM(here)[https://github.com/odoo/odoo/pull/223685/files#diff-6d86bc8c3e9aa22586656b702849c5bbbb00c9b97ffd08bc0842e0e68f8948f9R75],
without considering the BoM type when filtering route. This led to the creation
of an MO for a subcontracting BoM.

With This Commit:
=========================
- We ensure that the MRP route is excluded based on the BoM type,
  not only on the existence of a BoM.
- This prevents the creation of an MO when the BoM type is
  non-normal (e.g. subcontracting or kit).

closes #227759

X-original-commit: 9b10858
Signed-off-by: Quentin Wolfs (quwo) <[email protected]>
Signed-off-by: Dhaval Hadiya (dhha) <[email protected]>
When testing with demo user, the timezone is in the installed localtime
for the administrator user. For the tests, force it to UTC.

closes #227767

X-original-commit: 279cf83
Signed-off-by: Rémy Voet (ryv) <[email protected]>
Signed-off-by: Raphael Collet <[email protected]>
…ent references

Currently, an error occurs when confirming a customer invoice that uses a
journal with an invalid configuration.

Steps to Reproduce:
1) Install Accounting app.(with Demo)
2) Navigate to Accounting>Configuration>Journals
3) Open existing 'Sales' journal and make following changes:
>- set Sequence Prefix: INV-
>- In the Advanced Settings Page, set 'Communication Standard' as 'European' and
   save the journal.
4) Create a Customer Invoice with this Sales Journal and click on `Confirm`.

Error :
`ValueError: invalid literal for int() with base 36: '-'`

Root Cause:
Since [this commit](e4a0946#diff-cc13d9842e166c12738b659e0478ceb8b1b15734442c1e090252919e7efb6ed7),
On following above steps, The value of 'number' received at [1]  looks like
'INV-000003' due to which on further computation of this value at [1] causing
an error.

Fix:
prevent crash by adding a additional check on methods
`_get_invoice_reference_euro_invoice` and `_get_invoice_reference_euro_partner`
to validate the journal's short code.

[1]: https://github.com/odoo/odoo/blob/2646790e7e31b4c600e39f2d5c87f0744b1578b0/addons/account/tools/structured_reference.py#L20-L26

sentry-6860586611

closes #227743

X-original-commit: 4da3963
Signed-off-by: Antoine Boonen (aboo) <[email protected]>
Signed-off-by: Het Patel (path) <[email protected]>
Before this commit, when we created a project from a template with task
with subtask, the mapping of the role/user was not correctly applied.
This lead to inconsistent data at the project creation such as setting
users on the child tasks randomly instead of correctly setting it on the
parent task

Source of the issue:
We wrongly assumed that the task order of the project copied was the
same as the original project and thus used the original project task's
list in order to set the user on the copied tasks.

Solution:
Keep the role_ids on the copied tasks and use that data to set the
correct user using the wizard mapping. The role_ids are set to False
once the data are correctly set.

task-5094321

closes #227758

X-original-commit: 15bf054
Signed-off-by: Vincent Larcin (vila) <[email protected]>
Steps to reproduce:
* Open the messaging menu from the systray with an unread notification.
* Hover on a notification item.
* Click on the `mark as read` button.
The notification is not marked as read. Instead, the related record is opened.

In [1] UI changes introduced to avoid flickering in the messaging menu modified
the structure of the `mark as read` button. Because the click handler only
checked if the clicked element exactly matched the button reference, clicks on
the inner icon were ignored and triggered the record opening instead.

This commit adjusts the button so that clicks are correctly detected
even when they occur on the icon.

[1]: #226531

closes #227784

X-original-commit: 76163a7
Signed-off-by: Alexandre Kühn (aku) <[email protected]>
Signed-off-by: Haja Ram (ramh) <[email protected]>
After paying an invoice or sale order, a customer without a billing country cannot update
the country in their billing address because the form is disabled by the
portal's country edition rule.

**Steps to reproduce:**
1. Create a customer without a billing country.
2. Generate an invoice or sale order for that customer.
3. Pay the invoice/order (possible with some payment providers).
4. Go to the customer portal and try to update the billing address.
The country field is disabled, preventing the customer from setting their country.

This fix ensures that if the partner has no country set, the field remains
editable even when normal country edition restrictions apply. 

This issue also affects the `website_sale` module, specifically the checkout
process, where the country field may be blocked if not handled properly.

closes #227545

Forward-port-of: #227353
Signed-off-by: Victor Feyens (vfe) <[email protected]>
…rom SO

This commit fixes two issues related to the milestones settings of generated projects in SO:

First issue:
* Steps to reproduce:
    - Create a product whose invoicing is based on milestones
    - Add this product to an SO
    - Confirm the SO
    - Create a project from the action button in the SO form view ('Create a Project'), with or without project template
    - The generated project does not have the milestone setting enabled

* Expected behavior:
    => When creating a project from the SO in which there is at least 1 product with invoicing based in milestone, the setting "Milestone" should be checked by default

Second issue:
* Steps to reproduce:
    - Create a product with an invoice policy based on milestones
    - Create another product with another policy
        => Both products must be configured to create a project on SO confirmation, without project template
    - Create a new SO with both products as SOLs
        => Set the second product (other policy) in first sequence, then the first product (milestones based) in second sequence, as the order of SOLs
    - Confirm the SO
    - The generated project does not have the milestone setting enabled

* Expected behavior:
    => The generated project should have the milestone setting enabled, as at least one product with an invoicing policy based on milestones has triggered the generation of that project

task-5090253

closes #227775

Version: 19.0
X-original-commit: 7920688
Signed-off-by: Xavier Bol (xbo) <[email protected]>
Signed-off-by: Maxime de Neuville (mane) <[email protected]>
Previously, custom mailing templates (which could be created by marking
an existing mailing as Favorite) would only be accessible for new
mailings matching the template's target model.

This restriction was lost by the update to the new mailing editor; this
commit restores it.

task-5054968

closes #227790

X-original-commit: b043e6f
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Signed-off-by: Céleste Guilleux (guce) <[email protected]>
Browse breaks when given a bool, so the solution is to filter
the list from false values before browsing

closes #227788

X-original-commit: af28de4
Signed-off-by: Thibault Delavallee (tde) <[email protected]>
Signed-off-by: Raphael Collet <[email protected]>
Reproduction Steps
------------------

1. Go to the Project app
2. Enable the "Templates" Filter
3. Click on one of the displayed tempaltes

The 'render_templates' key is still in the context, meaning that
the tasks mixin will also prevent normal tasks from being shown
and only show templates instead.

To fix this, this commit makes each mixin use a different context key
to make sure they won't interfere with each other.

Task-5087632

X-original-commit: e6e6fc5
Part-of: #227766
Related: odoo/enterprise#95070
Signed-off-by: Xavier Bol (xbo) <[email protected]>
Signed-off-by: Vincent Larcin (vila) <[email protected]>
This feature was supposed to be introduced in 19 but got lost
with the reversal of the templates refactor.

When converting a project to a template, the tasks should retain their template status.
Task templates in project templates are treated the same as task templates in normal projects.
Project roles should be configured only on normal tasks and not on task templates.

Task-5087632

closes #227766

X-original-commit: 369407f
Related: odoo/enterprise#95070
Signed-off-by: Xavier Bol (xbo) <[email protected]>
Signed-off-by: Vincent Larcin (vila) <[email protected]>
This commit correctly repositions the color picker in the project bottom
sheet.

task-5087158

closes #227756

X-original-commit: 305c92f
Related: odoo/enterprise#95064
Signed-off-by: Romeo Fragomeli (rfr) <[email protected]>
Signed-off-by: Brieuc Dejean (brd) <[email protected]>
This commit fixes the issue where messages with HTML content were
incorrectly considered empty.

The problem is because the isBodyEmpty is not correctly computed in
message model. In this case, there will be an empty message bubble
shown in the thread.

To reproduce the issue:
1. Go to Discuss app.
2. Send an attachment only message.
3. There should be a message bubble with empty body shown in the thread.

task-5077500

closes #227761

X-original-commit: cb12565
Signed-off-by: Sébastien Theys (seb) <[email protected]>
This commit allows the html composer to use channel commands
correctly.

task-5086489

closes #227760

X-original-commit: 2b61b4e
Related: odoo/enterprise#95067
Signed-off-by: Sébastien Theys (seb) <[email protected]>
Versions
--------
- 16.0+

Steps
-----
1. Have 2 eCommerce sites;
2. have a user with an open cart in both sites;
3. have a reward applied in one or both of carts;
4. have a fiscal position applicable to the user's address;
5. change the user's country to one with a different fiscal position.

Issue
-----
> ValueError: Expected singleton: sale.order(1, 2)

Cause
-----
As of commit ede8846, fiscal positions get recomputed on address
changes. When a fiscal position changes, the `_recompute_prices` method
gets called on all open carts.

This method does not include an `ensure_one` check, so it should be able
to handle multiple sales orders.

However, the `sale_loyalty` override will call
`_update_programs_and_rewards` on `self` if any reward line is
encountered. This method does have an `ensure_one` check, leading to the
error.

Solution
--------
Rewrite the override as a loop, so it can handle multiple records in
`self`.

opw-5017669

closes #227361

X-original-commit: 9ab6232
Signed-off-by: anko-odoo <[email protected]>
Signed-off-by: Levi Siuzdak <[email protected]>
Before this commit, the search bar was too close to the header bar, now
padding has been added.

task-5092001

closes #227787

X-original-commit: 1e2a185
Related: odoo/enterprise#95076
Signed-off-by: Alexandre Kühn (aku) <[email protected]>
Signed-off-by: Claire Nguyen (clan) <[email protected]>
Applying a scroll effect on a block from the categories showcase snippets
triggers the parallax plugin, which converts the block into .parallax
and adds a .s_parallax_bg child. But both global and snippet-local
background option registrations then target the same block, resulting in
duplicated controls in the builder.

This fix exclude .parallax from the snippet’s background option
registration so, once a block becomes parallax, only the global option
applies and the controls are shown once.

task-5076305

closes #227789

X-original-commit: 34b4664
Signed-off-by: Quentin Smetz (qsm) <[email protected]>
Signed-off-by: Xavier Luyckx (xlu) <[email protected]>
This commit adjusts the overlay of the Showcase product design, as it
was too light and not visible enough, even when set to its maximum
value.

task-5090301

closes #227792

X-original-commit: 886ffd8
Signed-off-by: Antoine Vandevenne (anv) <[email protected]>
Signed-off-by: Brieuc Dejean (brd) <[email protected]>
This commit removes a custom `:hover` effect applied on the `mail`
systray entry, which was not consistent with the items of the systray.

task-4632971

closes #227757

X-original-commit: c84f73d
Signed-off-by: Sébastien Theys (seb) <[email protected]>
__Current behavior before commit:__
Some popovers that are toggled from the toolbar are not repositioned
when the user scrolls in the website iframe.

__Description of the fix:__
`this.__owl__.childEnv` is passed as `env` to `usePopover` such that the
`POSITION_BUS` entry is included.
Child env is used to avoid polluting the env of the parent component.

__Steps to reproduce the issue on runbot:__
1. Open the Website builder
2. Select some text
3. Click on the *Background Color* item
(or *Highlight* or *Link* > *Custom* > *Text Color*)
4. Scroll the page
The color picker popover doesn't follow the page scrolling.

closes #227762

X-original-commit: f32c51a
Signed-off-by: Bruno Boi (boi) <[email protected]>
Signed-off-by: Julien Launois (jula) <[email protected]>
For coherence with other models in accounting.

closes #227791

X-original-commit: cfbddf1
Related: odoo/enterprise#95077
Signed-off-by: Olivier Colson (oco) <[email protected]>
Signed-off-by: Léo Leclerc (leol) <[email protected]>
In list views, columns for specific Properties fields aren't selectable
for sorting. However, the back-end can already sort scalar properties.

This change modifies record.js to add the sortable attribute to
properties added as fields.

X-original-commit: 52ebc35
Part-of: #227763
Signed-off-by: Rémy Voet (ryv) <[email protected]>
The get_property_definition() method was not flushing the properties
definition field. This oversight made it necessary to explicitly call
flush_all() in every properties test.

By ensuring that get_property_definition() now correctly flushes the
definition, the method becomes more robust, and many tests can be
simplified.

closes #227763

X-original-commit: 50fea84
Signed-off-by: Rémy Voet (ryv) <[email protected]>
Unless there's already a customer reference, we need the SO name to be able to match any prepayment

X-original-commit: 725c25e
Part-of: #227821
Related: odoo/enterprise#95092
Signed-off-by: Quentin De Paoli (qdp) <[email protected]>
Removing the partner name from the payment memo, as it may be source of false positive matching

closes #227821

X-original-commit: 7189681
Related: odoo/enterprise#95092
Signed-off-by: Quentin De Paoli (qdp) <[email protected]>
Tasks in project templates should be excluded from the reporting.

Task-5096193

closes #227830

X-original-commit: 9dd5fb2
Signed-off-by: Xavier Bol (xbo) <[email protected]>
Signed-off-by: Vincent Larcin (vila) <[email protected]>
closes #227844

X-original-commit: 1bb69de
Signed-off-by: Julien Castiaux (juc) <[email protected]>
This commit adds hotkey `F` in discuss app in desktop to quickly
open the search panel of the active conversation.

closes #227842

X-original-commit: f928787
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
Signed-off-by: Alexandre Kühn (aku) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment