+
Web Domain Field
+
+
+

+
In order to mitigate limitations with domains in views, now you can define
+a computed field in a domain attribute and It’s related method will return
+the domain to apply.
+
Table of contents
+
+
+
+
When you define a view you can specify on the relational fields a domain
+attribute. This attribute is evaluated as filter to apply when displaying
+existing records for selection.
+
+<field name="product_id" domain="[('type','=','product')]"/>
+
+
The value provided for the domain attribute must be a string representing a
+valid Odoo domain. This string is evaluated on the client side in a
+restricted context where we can reference as right operand the values of
+fields present into the form and a limited set of functions.
+
In this context it’s hard to build complex domain and we are facing to some
+limitations as:
+
+
+- The syntax to include in your domain a criteria involving values from a
+x2many field is complex.
+- The right side of domain in case of x2many can involve huge amount of ids
+(performance problem).
+- Domains computed by an onchange on an other field are not recomputed when
+you modify the form and don’t modify the field triggering the onchange.
+- It’s not possible to extend an existing domain. You must completely redefine
+the domain in your specialized addon
+- etc…
+
+
+
In order to mitigate these limitations this new addon allows you to use the
+value of a field as domain of an other field in the xml definition of your
+view.
+
+<field name="product_id_domain" invisible="1"/>
+<field name="product_id" domain="product_id_domain"/>
+
+
The field used as domain must provide the domain as a JSON encoded string.
+
+product_id_domain = fields.Char(
+ compute="_compute_product_id_domain",
+ readonly=True,
+ store=False,
+)
+
+@api.multi
+@api.depends('name')
+def _compute_product_id_domain(self):
+ for rec in self:
+ rec.product_id_domain = json.dumps(
+ [('type', '=', 'product'), ('name', 'like', rec.name)]
+ )
+
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/web project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+