Alexandre Kühn 0c3e66340d [FIX] mail: properly compare discuss models with toRaw
Before this commit, discuss models were compared with object
reference, e.g. `thread_1 === thread_2`.

This is unsafe with `owl.reactive()`, because it wraps the objects
in a Proxy, and different proxies may map to a same raw object.

This commit fixes the issue by defining `.eq()` and `.in()` methods
on discuss models, which makes comparison on raw value rather than
proxy/reactive one.

This PR also introduce "not" variants, e.g. `.notEq()`, which eases
readability by having "not" and "eq" next to each other.
These "not" variants must be used without optional chaining,
otherwise this gives the opposite result. For example:

```js
const [t1, t2] = [Thread.insert()];
t1 === t1     // true (OK)
t1.eq(t1)     // true (OK)
t1.notEq(t1)  // false (OK)
t2?.notEq(t1) // undefined => falsy (notOk)
!t2?.eq(t1)   // true (OK)
```

closes odoo/odoo#133065

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-08-25 12:21:03 +02:00
2023-08-21 14:15:28 +02:00
…
…
…

Build Status Tech Doc Help Nightly Builds

Odoo

Odoo is a suite of web based open source business apps.

The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...

Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.

Getting started with Odoo

For a standard installation please follow the Setup instructions from the documentation.

To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials

S
Description
No description provided
Readme LGPL-3.0
3.4 GiB
Languages
Python 49.6%
JavaScript 47.8%
SCSS 2%
CSS 0.3%
HTML 0.2%