Skip to content

Highlight animated text in editor #4745

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed

Conversation

blse-odoo
Copy link

No description provided.

@robodoo
Copy link

robodoo commented May 20, 2025

This PR targets the un-managed branch odoo-dev/odoo:master-mysterious-egg, it needs to be retargeted before it can be merged.

@ged-odoo ged-odoo force-pushed the master-mysterious-egg branch 2 times, most recently from f76e670 to 4c8c066 Compare May 21, 2025 09:04
@blse-odoo blse-odoo force-pushed the master-mysterious-egg-4-blse branch from bc3bcce to 2501c61 Compare May 21, 2025 10:03
@blse-odoo blse-odoo changed the base branch from master-mysterious-egg to master-mysterious-egg-next May 21, 2025 10:03
@ged-odoo ged-odoo force-pushed the master-mysterious-egg-next branch from 6e36b56 to 48edd7d Compare May 22, 2025 07:31
@blse-odoo blse-odoo force-pushed the master-mysterious-egg-4-blse branch from 2501c61 to 1a88e66 Compare May 22, 2025 07:59
Atovange and others added 23 commits May 22, 2025 09:58
Since odoo#203903 the user `im_status` is sent directly from the identity
model in order to take into account other module overrides without
having to re-establish them client side.
This commit removes the method patching `updateImStatus` as the
value arrives client side already patched from `hr_holidays`.

closes odoo#209495

X-original-commit: 7163947
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
It looks like in some cases awaiting for a microtask tick is not
enough for the selectionchange handlers to be called. This commit
waits for a full tick instead. This is a stronger version of the
original fix at odoo#210022.

X-original-commit: 3a55d2e
Part-of: odoo#211052
Signed-off-by: David Monjoie (dmo) <[email protected]>
The previous commit introduced a non-deterministic failure in saas-18.3
because the test was inconstent with respect to the changes in [1].

[1]: odoo#208731

closes odoo#211052

X-original-commit: c5bca02
Signed-off-by: David Monjoie (dmo) <[email protected]>
…or Mobile

Steps to Reproduce:
1. Install Sales module
2. Create a new quotation in mobile view

Issue:
- The input field of contact is displayed twice due to a missing `t-else`
  condition, causing both fields to appear simultaneously.

Solution:
- Added the missing `t-else` condition to ensure that only one input field is
  displayed as intended.

opw-4767186

closes odoo#210984

X-original-commit: c032778
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <[email protected]>
Signed-off-by: Dhwani Patel (dwa) <[email protected]>
Problem:
In `getAdjacentCharacter`, accessing `focusNode.textContent[focusOffset - 1]`
directly fails when there are child nodes between text nodes.

Example:
Given `<p>ab<span>\u0009</span>\u200B[]</p>`:
- `focusNode.childNodes` → [text("ab"), span, text("\u200B")]
- `focusNode.textContent` → ["a", "b", "/TAB/", "/ZWS/"]
- `focusOffset` → 3 (nodes offset not text offset)
- Accessing `focusNode.textContent[2]` is wrong because `focusOffset`
  counts nodes, not characters, it should return `/ZWS/` not `/TAB/`.

Solution:
Align with 18.0+ behavior by calling `getDeepestPosition(focusNode, focusOffset)`
inside `getAdjacentCharacter`.

Steps to reproduce:
1. Type `ab`
2. Press `Tab`
3. Press `Arrow Left`
→ Caret does not move left as expected.

opw-4720904

closes odoo#210982

X-original-commit: d5cb6fa
Signed-off-by: David Monjoie (dmo) <[email protected]>
Signed-off-by: Walid Sahli (wasa) <[email protected]>
This commit ensures that the group `uom.group_uom` is correctly applied
on the test user, so that the tour doesn't fail on the step looking for
"Packagings" field on the product view which happened in some [single
module tests](https://runbot.odoo.com/odoo/runbot.build.error/222678).

closes odoo#210943

X-original-commit: 3986f00
Signed-off-by: Steve Van Essche <[email protected]>
Signed-off-by: Mohammad Abdulmoneim (abdu) <[email protected]>
*: account,l10n_hu_edi,l10n_sa,purchase,purchase_stock,sale

When a Shipping Address is displayed inside the `information_block`
there is no spacing to differentiate it from the Invoicing Address,
making it harder to read.

Also removes the `:` characters which are inconsistent

task-4730464

closes odoo#210754

X-original-commit: 162ea4f
Related: odoo/enterprise#85947
Signed-off-by: Victor Feyens (vfe) <[email protected]>
Signed-off-by: Mathieu Notté (mano) <[email protected]>
Task-4675764

closes odoo#208521

Signed-off-by: Sébastien Theys (seb) <[email protected]>
This commit introduces a full rewrite of the website builder to leverage
the OWL framework and the new HTML editor. The goal is to modernize the
codebase, improve maintainability, and provide a more reactive and
modular architecture.

A major part of this refactoring is the complete rethinking of how
options are defined. They are now implemented as OWL components or simple
template-driven views, and registered as plugins. The system introduces
two distinct concepts: *options*, which handle the user interface, and
*actions*, which encapsulate the actual DOM or HTML updates.

The builder code is now split into two addons:
- `html_builder`: contains a shared foundation for building HTML UIs,
  designed to be reusable across apps, including mass mailing.
- `website`: contains all website-specific logic and components.

The legacy builder code has not been removed yet, as parts of it are
still in use, most notably in the mass mailing application. It will be
removed in the near future.

Many thanks to everyone who contributed to this project, whether through
code, testing, reviews, design, or support — your efforts made this major
milestone possible. Also, this sentence was totally not generated by a AI
language model.

closes odoo#187419

Related: odoo/enterprise#86177
Signed-off-by: Géry Debongnie <[email protected]>
Co-authored-by: aans-odoo <[email protected]>
Co-authored-by: Alessandro Lupo <[email protected]>
Co-authored-by: Alice Gaudon <[email protected]>
Co-authored-by: Antoine Guenet <[email protected]>
Co-authored-by: Augustin (duau) <[email protected]>
Co-authored-by: Benoit Socias <[email protected]>
Co-authored-by: chdh-odoo <[email protected]>
Co-authored-by: Davide Bonetto <[email protected]>
Co-authored-by: Denis Rygaert <[email protected]>
Co-authored-by: divy-odoo <[email protected]>
Co-authored-by: emge-odoo <[email protected]>
Co-authored-by: fdardenne <[email protected]>
Co-authored-by: FrancoisGe <[email protected]>
Co-authored-by: Géry Debongnie <[email protected]>
Co-authored-by: Guillaume Jacquet <[email protected]>
Co-authored-by: Jinjiu Liu <[email protected]>
Co-authored-by: ksbh-odoo <[email protected]>
Co-authored-by: Louis (loco) <[email protected]>
Co-authored-by: Mohammed Shekha <[email protected]>
Co-authored-by: Nicolas Bayet <[email protected]>
Co-authored-by: panv-odoo <[email protected]>
Co-authored-by: paru-odoo <[email protected]>
Co-authored-by: Rahil Ghanchi <[email protected]>
Co-authored-by: Robin Lejeune (role) <[email protected]>
Co-authored-by: Rodolpho Lima <[email protected]>
Co-authored-by: Sanjay Sharma <[email protected]>
Co-authored-by: Sébastien Blondiau <[email protected]>
Co-authored-by: Sébastien Geelen <[email protected]>
Co-authored-by: Serhii Rubanskyi - seru <[email protected]>
Co-authored-by: Soukéina Bojabza <[email protected]>
Co-authored-by: Subhadeep <[email protected]>
Co-authored-by: visp-odoo <[email protected]>
When manually changing the discount_date field to null in an invoice related to
a customer with an Early price discount payment term, the customer will face a
type error on the website when accessing their invoices.

Steps to reproduce:

* Install the accountant module
* Create a new invoice for the current user as a customer (e.g., Mitchel Admin).
* Set `2/7 Net 30` in payment terms and add any product.
* Go to Journal Items and make Discount Date visible if not already visible.
* Under the account field `121000 Account Receivable` remove the discount date
  and confirm the invoice.
* Open portal View (/my) and click on Your Invoices >>> Error occurs.

TypeError: unsupported operand type(s) for -: 'bool' and 'datetime.date'

Solution:
We `set discount_date` as today if discount_date
is set none by the user.
If it is in past we will set days_left to zero
and continue the function as usual.

Sentry-6395559503

closes odoo#210883

X-original-commit: 8c4c43c
Signed-off-by: Antoine Boonen (aboo) <[email protected]>
Signed-off-by: Anshik Gopalbhai Brahmbhatt (agbr) <[email protected]>
We don't want the user to differentiate the places where to apply the
regex search (reco model) on statement lines. We thus apply it on the
label, the transaction details and the narration altogether, returning
on the first match. We don't need the "from_transaction_details"
selection option anymore.

task-4749338

closes odoo#210588

Related: odoo/enterprise#85861
Related: odoo/upgrade#7701
Signed-off-by: Florian Gilbert (flg) <[email protected]>
Follow up of odoo#189598
Follow up of odoo#210060

task-4794562

closes odoo#210495

Signed-off-by: Alexandre Kühn (aku) <[email protected]>
Signed-off-by: Sébastien Theys (seb) <[email protected]>
Issue
=====
In the test `test_stock_landed_costs_lots`, there is this
`assertRecordValues`:

```python
self.assertRecordValues(lc.stock_valuation_layer_ids.sorted('product_id'), [
    {'lot_id': lot_product_b[0].id, 'product_id': product2.id, 'stock_valuation_layer_id': og_p2_layers[0].id, 'quantity': 0, 'value': 1.5},
    {'lot_id': lot_product_b[1].id, 'product_id': product2.id, 'stock_valuation_layer_id': og_p2_layers[1].id, 'quantity': 0, 'value': 1.5},
    {'lot_id': lot_product_a[0].id, 'product_id': self.product1.id, 'stock_valuation_layer_id': og_p1_layers[0].id, 'quantity': 0, 'value': 1},
    {'lot_id': lot_product_a[1].id, 'product_id': self.product1.id, 'stock_valuation_layer_id': og_p1_layers[1].id, 'quantity': 0, 'value': 1},
    {'lot_id': lot_product_a[2].id, 'product_id': self.product1.id, 'stock_valuation_layer_id': og_p1_layers[2].id, 'quantity': 0, 'value': 1},
])
```
This issue is sometime the records order is not the expected one.

Cause of the issue
==================

By doing `recordset.sorted('product_id')`, it will sort the records by
compare their `product_id` records, using the python built-in `sorted`.
The built-in `sorted` function simply check if record A is lower than
record B, using the < operation. But in Odoo, comparing two recordsets
is equal than comparing their ids as a `set`:
```python
def __lt__(self, other):
    try:
        if self._name == other._name:
            return set(self._ids) < set(other._ids)
    except AttributeError:
        pass
    return NotImplemented
```
In python, the comparaison between two sets compares is a set is a
subset of the other one, which means than:
```python
{1} < {2}     # is false
{1} < {2, 1}  # is true
```
So, comparing SVLs by their product won't sort them by their product's
id. If we want to do that, we have to explicitly do it by passing a
function as the `sorted` `key` argument.

For more information, see:
-https://docs.python.org/3/library/functions.html#sorted
-https://docs.python.org/3/reference/expressions.html#comparisons

closes odoo#210946

Runbot-build-error: 99086
X-original-commit: 072bb86
Signed-off-by: William Henrotin (whe) <[email protected]>
When a user sets up an eCommerce website via the configurator,
8 product categories are now generated by AI based on the selected
shop type. These categories come with predefined images.

11 new default images are added in `website_sale` to be used for
these categories.

The `website_loader` onboarding message has also been updated to
mention the categories generation when the shop option is selected.

task-4619456

closes odoo#208689

X-original-commit: 3df4449
Signed-off-by: Antoine Vandevenne (anv) <[email protected]>
Signed-off-by: Damien Decleire (deda) <[email protected]>
Use `_commit_progress` instead of `_notify_progress` which will be
deprecated.

Part-of: odoo#207082
Related: odoo/enterprise#85875
Signed-off-by: Julien Castiaux (juc) <[email protected]>
Use `_commit_progress` instead of `_notify_progress` which will be
deprecated.
The context values are not used and removing them makes overrides much
simpler.

Part-of: odoo#207082
Related: odoo/enterprise#85875
Signed-off-by: Julien Castiaux (juc) <[email protected]>
Use `_commit_progress` instead of `_notify_progress` which will be
deprecated. During `post_send_callback` if running from a cron job, we
can commit, otherwise we do nothing. Note that this function is called
only before committing.

When testing mass mailing, we now test the cron job which sends the
e-mails as the OdooBot, but the `email_from` is the the user who created
the mailing.

Part-of: odoo#207082
Related: odoo/enterprise#85875
Signed-off-by: Julien Castiaux (juc) <[email protected]>
The goal is now to use `_commit_progress` which have a simpler API.

closes odoo#207082

Related: odoo/enterprise#85875
Signed-off-by: Julien Castiaux (juc) <[email protected]>
Versions
--------
- saas-17.4+

Steps
-----
1. Go to Website / Settings;
2. scroll to Shop - Checkout Process;
3. assign portal user as salesperson for online orders.

Issue
-----
Portal user shouldn't be allowed as a salesperson.

Cause
-----
The `salesperson_id` field of `res.config.settings` is set to be related
to `website_id.salesperson_id`. The `salesperson_id` field for `website`
does have a domain configured, but because the domain is a string, it
does not get re-used for related fields[^1].

[^1]: https://github.com/odoo/odoo/blob/87381d316/odoo/fields.py#L3009-L3021

Solution
--------
Provide the domain as a list.

opw-4801697

closes odoo#210898

X-original-commit: 8c5341e
Signed-off-by: Levi Siuzdak <[email protected]>
**Problem:**
In POS, if a product which has two variants with the same discount
is selected, in debug mode an error window appears.
If not in debug mode, the selector widget appears even though it
should not because it's the same discount

**Steps to reproduce:**
- Enable the "variants" and the "Discounts" settings
- Create a new product, make it available in POS
- In the "Attributes & Variants" page, add a color attribute line and
give it two values
- In the Point of Sale page, give it a category
- Open Point of Sale/Products/Discount & loyalty, and click on New
- Click on the text below "Conditional rules" on the bottom left
of the screen
- In the Products field select the two variants of your new product
- Save
- Open a shop in Point of Sale
- Select your product

**Current behavior:**
If in debug mode an error message appears.
If not in debug mode, a selector widget appears, allowing the user
to choose between two times the same discount

**Expected behavior:**
Because it's the same discount, no window of selection (and no error
window) should appear

**Cause of the issue:**
when computing the list of the different discounts available for a product
there's no mechanism to avoid duplicates. So linkedPrograms will be a list
of two identical values
https://github.com/odoo/odoo/blob/2e4c704d80812aabe28ae491e28c5faa4c27d693/addons/pos_loyalty/static/src/app/services/pos_store.js#L372-L373
makeAwataible is then called with "list" containing the two objects with
the same id.
https://github.com/odoo/odoo/blob/2e4c704d80812aabe28ae491e28c5faa4c27d693/addons/pos_loyalty/static/src/app/services/pos_store.js#L377-L383

If not in debug mode: this will result in the creation of a SelectionPopup
allowing to choose between two times the same discount

If in debug mode:
when __render will eventally be called,
https://github.com/odoo/odoo/blob/2e4c704d80812aabe28ae491e28c5faa4c27d693/addons/web/static/lib/owl/owl.js#L3050
slotScope.this.props.list will be a list of two element with the same id, this
will trigger an error thanks to this line which is added in debug mode
https://github.com/odoo/odoo/blob/2e4c704d80812aabe28ae491e28c5faa4c27d693/addons/web/static/lib/owl/owl.js#L4486

opw-4703868

closes odoo#210469

X-original-commit: 3e2679a
Signed-off-by: Vlad Stroia (vlst) <[email protected]>
Signed-off-by: Pierre-Louis Hance (plha) <[email protected]>
Approach:

- When the entire content of a single table cell is selected, store the
`ev.clientX` value once the cell content is fully selected. Afterward, if
the mouse moves in the direction of the selection (left or right) by a
sensitivity threshold of 5px, the entire cell is selected.

Steps to Reproduce:

- Create a table (e.g., using /table).
- Add multiple blocks with varying text lengths inside a cell.
- Try selecting all the content inside the cell using the mouse.
- Observe that the cell does not get selected.

Before this commit:

- The cell does not get selected when all content inside the cell
is selected with the mouse.

After this commit:

- The entire cell is selected when the content is fully selected.

task-4743170

closes odoo#210992

X-original-commit: 4cadc40
Signed-off-by: David Monjoie (dmo) <[email protected]>
Signed-off-by: Adnan Chaudhary (adch) <[email protected]>
Since 56a666c, the declaration of
`_inherits` is now required.
We can thus revert 6577920, as it is
not needed anymore.

closes odoo#210498

X-original-commit: 8d8bcd6
Signed-off-by: Christophe Simonis (chs) <[email protected]>
Steps to reproduce:
	1. Create a portal user.
	2. Create an automation rule to send an email as a message.
	Example:
	https://drive.google.com/file/d/1mIa4R7a2Z2fnkngOMD7zN2t9Z2XHhGY7/view
	3. Now, add the portal user as a follower on a task.
	4. Change the state of a task to execute an automation rule.
	5. Email will be received by a portal user but it will not be visible on the messaging history on the portal.

Cause:
This is happening because when running an automation rule that will send
an email we set the 'mail.message' state as System notification by default
which leads that this mail will be sent normally to every follower of the
record but will be only shown in the chat history for internal users not portal
as we are just showing 'comment', 'incoming_email' and 'outgoing_email' messages.

Fix:
Checking if the server action that is being run is sending an email we will
set the state of the 'mail.message' as 'auto_comment' and add 'auto_comment'
to the domain of the field website_message_id which is for the messages
shown to the portal user in his view

opw-4459754

closes odoo#210959

X-original-commit: 2dcb51d
Related: odoo/enterprise#86048
Signed-off-by: Xavier Bol (xbo) <[email protected]>
Signed-off-by: Youssef Bashandy (yoba) <[email protected]>
lvsz and others added 28 commits May 22, 2025 22:33
Versions
--------
- master

Steps
-----
1. Go to Renting / Products;
2. click a product.

Issue
-----
Odoo Client Error:
`EvalError: Can not evaluate python expression: (bool(parent.product_variant_count < 2))`

Cause
-----
Commit 81b3421 added highlighting required fields in an existing
records. In order to do this, it validates fields that are visible.
Issue is with nested fields, it attempts to validate them before their
parent record has been evaluated, leading to the `EvalError`.

Solution
--------
As we only want to check fields of the root record that are editable,
skip early field validation for fields that are read-only or have a
parent record.

opw-4789252

closes odoo#210753

Signed-off-by: Aaron Bohy (aab) <[email protected]>
In this commit, we use roundDecimals in humanReadable and formatFloat
functions instead of using .toFixed() javascript method.
This latest function in JavaScript sometimes gives unexpected rounding
results due to floating-point precision limitations.

closes odoo#178162

closes odoo#208133

Signed-off-by: Aaron Bohy (aab) <[email protected]>
Steps to reproduce:
- Install accounting, Sales apps
- Setup two companies for the current user with two diff currencies
- In company A, make a SO on a product and create an invoice
- Validate and confirm the invoice.
- Go to accounting, reporting, invoice analysis, and add group for
  the product
- Select the report of that specific invoice posted
- Observe the values untaxed_total, avg_price, inventory_value and
  price_margin
- Switch to company B, and add a currency rate between both
  currencies to observe a difference
- Make sure that you are selecting both companies, but B as the main
  company
- Go again to the report of the same Invoice.
- Observe the values again.

Issue:
When changing the currency, the fields untaxed_total and
price_avg are updated using the currency rate of the current
main company. However, inventory_value is not updated.

This inconsistency affects the calculation of price_margin,
which relies on both untaxed_total and inventory_value.
As a result, price_margin is computed incorrectly.

opw-4582973

closes odoo#211044

X-original-commit: 91ba2bd
Signed-off-by: Florian Gilbert (flg) <[email protected]>
- Fixes the error coming from using discounts in invoices: the node
`AllowanceChargeReasonCode` was added while not accepted by the
Turkish implementation.

- Fixes the error coming from invoices using a different currency than
the company one (TRY). Although the documentation says the node
`PricingExchangeRate` is only needed "If the prices of goods or services
on the invoice are shown in a currency other than the
'Document Currency", and our file did indeed use only one currency at a
time (either all TRY or all USD amounts, e.g.), the server was still
refusing our file.

- Limits the decimal precision to 2 for most amoutns, as requested by
the nilvera format.

- Use uppercase on invoice names when putting them in the xml, Nilvera
doesn't accept lowercase.

task-4356940

closes odoo#211154

X-original-commit: 445ee63
Signed-off-by: Ali Alfie (alal) <[email protected]>
Signed-off-by: Pierre-Rodéric Roose (prro) <[email protected]>
1. Display email of the recipients if email is given otherwise
fallback to `Unnamed`.

  Steps to reproduce
  ==============
  1. Create a contact with no name.
  2. Open the chatter from any document.
  3. Try to send a message to the contact without name.

  -> Tag without name will be shown

  From Commit[1], we added a possibility to show partner's information or enter
  missing email address with Commit[2]. In the case when partner didn't have
  name set, tags's text was shown blank.

  After this commit, tags of widget many2many_tags_email having no name will
  show email if given otherwise "Unnamed".

2. Account
   Account send invoice wizard will allow partners without email as the opened
   wizard will ask for the email.

3. SMS
  If sending sms fails because of account unregistered, we will redirect the user
  on click of the red SMS button to the IAP SMS account if user can access,
  otherwise the normal popover is shown as usual.

Commit[1] - odoo@abdb765
Commit[2] - odoo@2bbf118

Task-4711346

closes odoo#211014

X-original-commit: a0167ef
Signed-off-by: Damien Abeloos (abd) <[email protected]>
Before this commit, it was not possible to update in batch the future
driver of many vehicle because a check made during the update expects
there is only one vehicle to update.

This commit fixes the issue to be able to alter the future driver on
many vehicle at the same time.

closes odoo#211050

X-original-commit: 1827a98
Signed-off-by: Bertrand Dossogne (bedo) <[email protected]>
This reverts commit d413a98.

This fix was decided after odoo/enterprise#74127
that was trying to prevent invoicing users to see accounting features,
when it seemed to be unwanted to have the two property accounts fields
required while having no CoA installed.

The issue is, now when having Accounting installed, we can create a user
without having CoA as these two fields are not required anymore, but
we end up with a error message when creating an invoice ('no CoA
installed') although we could be have added accounts manually instead
of installing a CoAi (which is not possible for invoicing user).
In this situation, we should be able to create a contact, and having these
fields required will force the user to create them.

Finally, it is ok to revert the full chain, as the original issue is
fixed by this commit odoo/enterprise@68f6c1f

We keep the field `is_coa_installed` for stable policy compliance, it
will be removed in master.

closes odoo#210989

X-original-commit: ac45d72
Related: odoo/upgrade#7723
Signed-off-by: John Laterre (jol) <[email protected]>
Signed-off-by: Guillaume Vanleynseele (guva) <[email protected]>
- Added currency symbol to Unit Price for clarity.
- Aligned "Quantity, Unit Price, Taxes, Discount, Amount" values with Product Name.
- Displayed Terms & Conditions, Payment Terms, and Payment Communication below the total amount block.

task-4600237

closes odoo#201225

Signed-off-by: Maximilien La Barre (malb) <[email protected]>
Before this commit, an error would occur if the "/chatbot/restart"
rpc came after the bus notification related to the restart message.

It occurs because the chat bot model pushes the restart message into
the channel's message without checking if it was already done by the
new message notification handler.

Since the thread template sets the message id as a `t-key`, we cannot
have the same message twice. This would lead to the chat bot flow tour
failing silently on runbot when this happens.

This commit ensures the restart message will only be added to the
thread's message once.

fixes runbot-181545

closes odoo#211145

X-original-commit: 074124f
Signed-off-by: Sébastien Theys (seb) <[email protected]>
Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
Steps to Reproduce :

- Drag and drop text snippet / or select some text.
- Apply the back-ground color to the text.
- Click on the Animate button.
- You will notice that the background got removed/misplaced.

The issue was caused because the animated text is wrapped in an element
with "display: inline-block". To fix the bug, we moved the element with
the background color inside the wrapper of the animated text, instead of
keeping it outside.

This fix works as long as the animated text is exactly the same as the
one with the background color. If only a portion of the text with a
background color is animated, the fix doesn’t work. That case was too
complex to handle, and in any case, the most common user scenarios are
now fixed.

task-4690318

closes odoo#211148

X-original-commit: fa077bc
Signed-off-by: Outagant Mehdi (mou) <[email protected]>
Signed-off-by: Benjamin Vray (bvr) <[email protected]>
Before this PR, the name_search function would perform a search on
products by injecting a list of ids in the domain instead of using a
subquery. In cases where this list of ids is way too big, the search
query becomes extremely slow.

This PR uses a subquery instead in the domain to avoid this problem.

Benchmarks:

|Num. products| Before PR | After PR |
|-------------|-----------|----------|
|28801	      | 65 s      | <1 s     |

opw-4743566

closes odoo#211019

X-original-commit: c167912
Signed-off-by: Victor Feyens (vfe) <[email protected]>
Signed-off-by: Mohamed Kasem (kasm) <[email protected]>
We revert the changes brought by odoo#199007 and odoo#173618.

Task ID: 4798097

Part-of: odoo#210131
Related: odoo/enterprise#85880
Signed-off-by: Mathieu Duckerts-Antoine (dam) <[email protected]>
We revert partially the commit 5a1825c: we split and describe facets
like before. Several things are kept:

- we maintain the order of the facets: when a domain is edited/split, we
insert the corresponding facets where the old one was.
- we handle the groupbys of a favorite in the kanban view in the same way
- a facet not modified is not split and kept as it was before the opening
of the domain selector dialog.

Task ID: 4798097

Part-of: odoo#210131
Related: odoo/enterprise#85880
Signed-off-by: Mathieu Duckerts-Antoine (dam) <[email protected]>
We modify the display of some operators in the search bar facets and
the domain selector in readonly mode. The operators <= and >= are
removed since they can be reconstructed easily with the other operators.
The simplification of trees is done more carefully: it keeps the order
of the children.

Task ID: 4798097

Part-of: odoo#210131
Related: odoo/enterprise#85880
Signed-off-by: Mathieu Duckerts-Antoine (dam) <[email protected]>
The facet tooltips for the custom filters now look like to what is
displayed in the domain selector in readonly mode.

Task ID: 4798097

closes odoo#210131

Related: odoo/enterprise#85880
Signed-off-by: Mathieu Duckerts-Antoine (dam) <[email protected]>
- Changed 'In Progress' tag from green to orange to indicate that  further
  actions are still required.
- Changed 'Paid' tag from grey to green, as no further user action is needed.
- Task Id: 4797098

closes odoo#211171

X-original-commit: b7f6e36
Signed-off-by: Josse Colpaert (jco) <[email protected]>
Signed-off-by: Smit Joshi (smjo) <[email protected]>
closes odoo#210902

X-original-commit: fbe6f2a
Signed-off-by: Martin Trigaux (mat) <[email protected]>
Continuation of the fix:
7de3b32

closes odoo#211181

Signed-off-by: Rémy Voet (ryv) <[email protected]>
Follow-up of odoo#210304

PR above improve message actions placement in mobile in card layout,
such as in Inbox. However it makes a regression in placement of other
message actions.

This commit fixes the issue by keeping the card visual of message
actions as the fix for card layout and same visual as before the
fix for non-card messages.

closes odoo#211104

X-original-commit: 80009d2
Signed-off-by: Alexandre Kühn (aku) <[email protected]>
This commit introduces manual input for lines 01, 04, 10, and 25 in the mod.111
report. The previous automatic calculation based on tax tags was unreliable and
could produce inaccurate values, so manual entry ensures the data correctly
reflects actual figures.

task-4797773

closes odoo#211178

X-original-commit: 97fe24c
Signed-off-by: Josse Colpaert (jco) <[email protected]>
Signed-off-by: Harsh Trivedi (hatr) <[email protected]>
This commit fixes the `disconnect during vacuum should ask for reload`
test that was non-deterministic as it was triggering websocket
reconnection too early, resulting in the wrong event being sent.

fixes runbot-223185

closes odoo#211185

X-original-commit: 024b1c4
Signed-off-by: Didier Debondt (did) <[email protected]>
Before this patch, it was impossible to resequence vendor bills if already sent to SII/tbai.

However, it is required to be able to resequence them, and the move name isn't sent anymore since odoo#195113 was merged.

Thus, here I'm lifting that constraint to allow accountants do the resequencing.

@moduon MT-8728 OPW-4567144

closes odoo#211092

X-original-commit: 91056d8
Signed-off-by: Josse Colpaert (jco) <[email protected]>
…round_per_line

- Fix wrong 'return' instead of 'break'
- Fix '_import_base_line_extra_tax_data':

>>> float_round(1196.8849999999998, precision_digits=2)
1196.89
>>> currency.compare_amounts(1196.89, 1196.8849999999998)
0
>>> currency.is_zero(1196.89 - 1196.8849999999998)
False

We have to use the float comparison instead of subtracting them.

- Fix delta distribution for down payment/global discount using round_per_line:

Currently, when doing a down payment, we aggregate the base lines first.
Then, we fix the tax amounts using manual_tax_amounts and then, we distribute the delta
to reach the expected value.
That way is too global and becomes an issue when using round_per_line.
For example, when performing a down payment of 100%, we could end up with
a base and tax amounts that are not the same than the original document.

So this commit changes a bit the logic by fixing the tax amounts using manual_tax_amounts
first. Then, we aggregate the lines including manual_tax_amounts.
Then, we distribute the delta.
That way, the results is way closer to a round_per_line computation
when choosen.

opw-4685953

closes odoo#211129

X-original-commit: cd3b5b1
Related: odoo/enterprise#86135
Signed-off-by: Antoine Dupuis (andu) <[email protected]>
Signed-off-by: Laurent Smet (las) <[email protected]>
*: base, base_automation, mail, sms

This commit simplifies server actions automated naming and makes the
related necessary changes to the kanban view as well.

Task id: opw-4736084

closes odoo#207706

Related: odoo/enterprise#84271
Signed-off-by: Lucas Perais (lpe) <[email protected]>
The "animate text" option is missing from the initial refactor of the website builder
…eeded for animate text

The popover for "animate text" in the toolbar closes when the user clicks in it or in a popover of the option inside it. 

The attribute used by the toolbar to stay opened even in case of outside focus is used on the popovers
…n open frame

Items in a BuilderSelect are instanciated twice when it opens. The way
`isActiveItem` works is confused by the fact there are several items
telling they are active (the two instances of the same item in this case),
and it marks the corresponding id as inactive for a frame causing flicker

This spurious update is avoided by considering an item active if it is the
selected one or if iit has the same id as the selected one
The toggle to highlight animated text was missing from the initial refactor
of website builder
@blse-odoo blse-odoo force-pushed the master-mysterious-egg-4-blse branch from 1a88e66 to e6d745a Compare May 23, 2025 07:25
@blse-odoo blse-odoo closed this May 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.