Skip to content

[FIX] website: do not redirect after editing menus from the builder #4766

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

robinlej
Copy link

Steps to reproduce:

  • Edit a page
  • Click on a menu item and click on the "Edit menu" icon
  • Add an item and save => The iframe is reloaded, but leads to a 404 instead of staying on the same page.

This is because when passing a URL to reloadEditor, the given string is then encoded with encodeURIComponent, which will append the string to the current domain. We can just leave the parameter empty.

@robodoo
Copy link

robodoo commented May 21, 2025

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

@ged-odoo ged-odoo force-pushed the master-mysterious-egg-next branch from 6e36b56 to 48edd7d Compare May 22, 2025 07:31
@robinlej robinlej force-pushed the master-mysterious-egg-role-7 branch from 8837af6 to 3f350ff Compare May 22, 2025 09:23
Atovange and others added 27 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]>
Before this commit it was not possible to start the Ace editor (via its owl wrapper codeEditor)
with an initial cursor position.

After this commit it is now possible to do just that. This comes handy in the use case where:
- one makes modification on the edited resource.
- saves the result. This could mean that the codeEditor must be restarted from scratch (reloading all the data)
- functionally stay on the saved resource at the right position.

Note that the onChange call back now received the position at which the edition *started*.

closes odoo#211016

X-original-commit: ef957fe
Related: odoo/enterprise#86075
Signed-off-by: Bastien Pierre (ipb) <[email protected]>
Signed-off-by: Lucas Perais (lpe) <[email protected]>
Versions
--------
- 17.0+

Steps
-----
1. Create a coupon that grants a discount;
2. add a second reward giving free products;
3. use a product tag to turn it into a multiproduct reward;
4. save program, generate coupons, and copy a code;
5. add the free product tag to two or more products;
6. go to eCommerce;
7. add any product to cart and go to checkout;
8. apply coupon code;
9. claim a reward.

Issue
-----
- Claiming a free product results in a traceback.
- Claiming the discount does not apply the discount.

Cause
-----
Commit db3ffae modified the reward claiming logic to allow for
multiproduct rewards, but overlooked the possibility of the program
having multiple rewards, multiproduct being one of them.

It therefore passes all of the coupon's rewards to `_apply_reward`,
which only expects a single reward.

This is also a consequence of commit 6525d5f, which moved part of
the `claim_reward` logic to `pricelist`, without passing which reward
was claimed to `pricelist`.

Solution
--------
Add an optional `reward_id` parameter to `pricelist`, letting it know
which reward we intend to claim.

opw-4778945

closes odoo#210817

X-original-commit: 4441dab
Signed-off-by: Levi Siuzdak <[email protected]>
Remove module `test_limits` as it is not used.

closes odoo#205333

Signed-off-by: Raphael Collet <[email protected]>
Scheduler view in mail has been updated recently, trigerring an update
of calendar view. However this may break installing new calendar
override on old mail view. This happens if you have installed mail
before the update, and install calendar after pulling updated code.

We therefore update the xpath of override in calendar to be more
resilient.

Followup of odoo#210043

closes odoo#211017

X-original-commit: 70a3603
Signed-off-by: Thibault Delavallee (tde) <[email protected]>
shag-odoo and others added 28 commits May 24, 2025 02:04
**=pos_restaurant,pos_self_order
Following this commit:
- Default preset label `Eat In` is been updated to `Dine In`

task-4815385

closes odoo#211433

Signed-off-by: Vlad Stroia (vlst) <[email protected]>
Task-4675789

closes odoo#210986

Signed-off-by: Sébastien Theys (seb) <[email protected]>
These fields are completely unused, and even considering those as
"purely informative", they were removed from the location form since
[1].

[1] 9410e0c

closes odoo#210844

Related: odoo/upgrade#7711
Signed-off-by: William Henrotin (whe) <[email protected]>
Fix runbot error when using preset timing in tour. Now we have an async lock for the function `openPresetTiming` so when opening this popup we make sure the previous one is finished.
Also inside the tour `test_preset_timing` we added a step to wait for the syncrhonization to be finished before opening the preset timing popup again.

runbot error: 213368

closes odoo#210888

X-original-commit: 51d74e2
Signed-off-by: Vlad Stroia (vlst) <[email protected]>
Signed-off-by: Manu Vaillant (manv) <[email protected]>
Following [1], the blog page reverted to using the first blog post as
the cover. However, the title of the page ("Our Latest Posts") was made
non-editable and, consequently, non-translatable, which is not ideal.

This commit addresses the issue by making the title editable, ensuring
it can also be translated.

[1]: odoo@05ef95d

opw-4289735

closes odoo#211400

X-original-commit: ec49429
Signed-off-by: Benjamin Vray (bvr) <[email protected]>
Signed-off-by: Serge Bayet (seba) <[email protected]>
Account 461411, set by default on the sales taxes in LU localization
does not need to be reconcilable as only payables and receivables defined
in tax groups have to be

opw-4749885

closes odoo#211482

X-original-commit: 78b4ad9
Signed-off-by: Florian Gilbert (flg) <[email protected]>
Signed-off-by: Andrea Grazioso (agr) <[email protected]>
Follow up of commit odoo@64c2067

In this commit-
we remove the method `_get_l10n_in_customer_invoice_title` because it is
of no longer use and as mentioned above in the above commit it was
historical mistake and now we only replace the invoice title becuase
as per the government guidelines an invoice having tax would have
title of `Tax Invoice`

closes odoo#211162

Signed-off-by: Josse Colpaert (jco) <[email protected]>
When viewing the valuation in the past, the default measures 'Remaining
Qty' and 'Remaining Value' are irrevelant. Instead, display the
'Quantity' and 'Total Value'.

opw-4517548

closes odoo#211523

X-original-commit: 2e43bee
Signed-off-by: William Henrotin (whe) <[email protected]>
Signed-off-by: Walravens Mathieu (wama) <[email protected]>
Since [1], domain name matching in get_current_website did not account
for punycode encoding, making it impossible to use non-ASCII domain
names (e.g., düsseldorf.localhost).

This commit fixes the issue by normalizing the incoming domain to
Unicode, then encoding it to punycode for comparison with stored website
domains, ensuring correct resolution of websites with internationalized
domain names.

[1]: odoo@4a20244

task-4756915

closes odoo#211524

X-original-commit: 2eaa5a2
Signed-off-by: Quentin Smetz (qsm) <[email protected]>
Signed-off-by: Serge Bayet (seba) <[email protected]>
Before this commit, when the user creates a SOL from scratch inside the
form view of a task and would like to also create and edit the product
linked to that new SOL, a traceback is occurred because a certain field
cannot be computed correctly. The reason is because the form view loaded
is the one of the `product.template` module instead of
`product.product`.

This commit adds a new product form view to hide the product type if
the user creates a product inside the SOL form view displayed when he
creates a SOL in sale_line_id field of `project.task` model. This commit
also changes the form view to load for `product.product` model to use
the one added inside that commit.

task-4781817

closes odoo#211364

X-original-commit: 3863b0c
Signed-off-by: Xavier Bol (xbo) <[email protected]>
Odoo part of the IAP PR.
Add some more error codes that will be sent by the IAP server,
in order to provide more useful errors for the users.

closes odoo#211549

X-original-commit: a98522c
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <[email protected]>
Signed-off-by: Nicolas Viseur (vin) <[email protected]>
In commit odoo@8b539c1, taxes were mapped with fiscal position, but some taxes are
still remaining, and also mapped taxes are not worked with branch company
fiscals, so with this commit, those remaining taxes will be mapped with
their corresponding fiscal positions, and also branch company issue will be
solved.

closes odoo#211577

X-original-commit: bd6cd2d
Signed-off-by: Josse Colpaert (jco) <[email protected]>
Signed-off-by: Jay Savaliya (jasa) <[email protected]>
Previously, record synchronization was based on the pos.order model, so
if the write_date of the order was more recent on the server, it was
re-downloaded with its sub-records. The problem was that by changing an
orderline, the order object was not necessarily updated, so its
write_date remained the same.

Now all records and their write_dates are compared, so that records can
be re-downloaded independently of their order. Trusted config commands
are also re-downloaded.

The records compared are only those that can be created from the PoS
frontend.

closes odoo#208999

X-original-commit: 434b634
Signed-off-by: Vlad Stroia (vlst) <[email protected]>
Signed-off-by: David Monnom (moda) <[email protected]>
Before this commit,
mapping over `suggestedPartners['res.partner']` without checking caused
runtime errors when the RPC returned no data.

removed the mapping step and adding data to store as returned by server

task-4737958

closes odoo#211355

X-original-commit: e1b1c1b
Signed-off-by: Alexandre Kühn (aku) <[email protected]>
When user decides to have separate address for delivery and payment,
delivery address does not have vat field, which gives an error.
This commit fixes the issue.

closes odoo#211569

X-original-commit: 64c279e
Signed-off-by: Paolo Gatti (pgi) <[email protected]>
…er language

closes odoo#211567

X-original-commit: 3fa2fe3
Signed-off-by: Khushi Srivastava (khsr) <[email protected]>
This is a follow-up to odoo@c52e740.

closes odoo#211581

X-original-commit: ccd8ec1
Signed-off-by: David Monjoie (dmo) <[email protected]>
Improve both chart templates by reworking them to
better follow the ASBE and ASSBE account lists.

task-3386893

closes odoo#211585

X-original-commit: 9ee9b99
Related: odoo/enterprise#86379
Signed-off-by: John Laterre (jol) <[email protected]>
Signed-off-by: Nicolas Viseur (vin) <[email protected]>
Commit 4fbd88a changed the forecast widget decoration on
`stock.move` but made it visible on receipt. As it doens't make sense to
see a potential forecast issue on a incoming move, this commit hides the
widget in those cases.
Moreover, we introduce a computation difference between internal and
delivery transfers. Internal transfers will be marked as `Available` if
the entire demand quantity is available. Deliveries need only a positive
forecast quantity to be marked as `Available`.

closes odoo#211578

Task: 4747117
X-original-commit: 32a825a
Signed-off-by: Quentin Wolfs (quwo) <[email protected]>
Signed-off-by: William Henrotin (whe) <[email protected]>
Description of the issue this commit addresses:

The name of a demo reconciliation model brought by [this commit](odoo@9e7db1e)
is not the exact one we want.

Desired behavior after this commit is merged:

"Bank Fees (label bank fees)" becomes "Bank Fees "

task-none

X-original-commit: 8321ca6
Part-of: odoo#211579
Signed-off-by: John Laterre (jol) <[email protected]>
Signed-off-by: Thomas Becquevort (thbe) <[email protected]>
Description of the issue this commit addresses:

Since the adaptation of the demo data from [this commit](odoo@9e7db1e), a bunch of new
partners are used for different purposes. Since OpenWood is belgian, it causes
moves lines to automatically use belgian taxes in the moves of the demo belgian
company breaking the amounts of the reconciliation.

Desired behavior after this commit is merged:

OpenWood is moved to Luxembourg, another french speaking non US country whiches
demo company is way less used and should cause less problematic conflicts.

task-none

X-original-commit: 24a16c4
Part-of: odoo#211579
Signed-off-by: John Laterre (jol) <[email protected]>
Signed-off-by: Thomas Becquevort (thbe) <[email protected]>
Description of the issue this commit addresses:

Some bank statement demo data are confusing or are displaying multiple features
at the same time. Some other could be improved too.

Desired behavior after this commit is merged:

- The bank statement lines are reordered so the reconciliation on OpenWood is
more intuitive with dates that match the new order.
- The first button is always "Set Partner", in some case, running the reco
models once will change it to better fit the line but as the button only change
if something is changed on the view, we manually set them. "Label with Bank
Fees" and "Receivable"
- The 1.980$ amount was chosen so no automatic reconciliation would happen with
the 2.000$ invoice. The amount is changed to the amount of the invoice but the
label does not point to the invoice, stopping the automatic reconciliation too.
- The 750$ line is linked to a partner that has a lot of invoices and credit
notes confusing the user in noise. The invoice and line are moved to a new one.
- The "Initial Balance" line is already reconciled with the "equity_unaffected"
account of the chosen CoA.

task-none

closes odoo#211579

X-original-commit: 0ca26f7
Signed-off-by: John Laterre (jol) <[email protected]>
Signed-off-by: Thomas Becquevort (thbe) <[email protected]>
Before this commit, when a message has at least 1 reaction,
using the quick reaction button in mobile displayed the
emoji picker that shared the viewport of message list.

This makes it hardly practical.

This happens because the `useEmojiPicker()` in message reactions
provide a ref, and this ref in mobile is used as a target to mount
the emoji picker. This feature is useful for discuss composer to
place emoji picker nicely under the composer input. In desktop the
ref is used for click target of popover.

In practice the passing of ref in mobile is niche use-case: most
of the time it should open in bottom screen as a dialog in a similar
fashion as popover.

This commit fixes the issue by making 1st param of `useEmojiPicker`
only act as the toggler part . In mobile to provide the container of
emoji picker, one need to call `open(ref)` explicitly.

Task-4800688

closes odoo#211564

X-original-commit: 8016a68
Signed-off-by: Alexandre Kühn (aku) <[email protected]>
odoo#112126 introduced an inconstency
on the or ir.attachment._search(). Fix it to reproduce the old behavior.

task-4818972
Revert partially odoo#189428

PR above was a piece of making calls more transparent among
browser tabs. One aspect was to enable most call actions in
all tabs, while the PR above solved accidental disconnect from
closing or refreshing tab making call.

Solution was to jump the call to another tab. While this is
good to keep the call ongoing with no friction in action that
reloads the page that had originally the call, in practice this
jump to another tab can actually make it harder to find the tab
that is actually making the call. This is especially bothering
because not all call actions are available in other tabs of the
call due to browser limitations, e.g. enabling camera and screen
sharing.

This commit disabled the feature for call to jump to another tab.
Instead, it asks user to confirm the closing or refresh of tab
while there's a call, similarly to when there was only 1 tab
before this commit.

closes odoo#211589

X-original-commit: 212893e
Signed-off-by: Alexandre Kühn (aku) <[email protected]>
Steps to reproduce:
- Edit a page
- Click on a menu item and click on the "Edit menu" icon
- Add an item and save
=> The iframe is reloaded, but leads to a 404 instead of staying on the
same page.

This is because when passing a URL to `reloadEditor`, the given string
is then encoded with `encodeURIComponent`, which will append the string
to the current domain. We can just leave the parameter empty.

This PR follows [the refactor into html_builder].

[the refactor into html_builder]: odoo@9fe45e2b7ddb

Related to task-4367641
@robinlej robinlej force-pushed the master-mysterious-egg-role-7 branch from b022c00 to 97e60f6 Compare May 26, 2025 07:39
@robinlej robinlej closed this May 26, 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.