0c3e66340dc6e354b2b84534d45ef0b991df8a6a
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>
…
…
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
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%