Skip to Content
Menu
This question has been flagged

Hi guys,

I have to create a dynamic custom search filter in order to filter results based on criterion set to the domain. The value set on criterion has to be dynamic and recovered by context.

In particular, I have a many2many field in wizard and when I insert a value, Odoo opens another wizard where it is possible search/filter/group by and select elements to add in field.


Many2many field is defined as follows:

<field name="pricelist_item_ids" context="{'search_default_pricelist': 1, 'pricelist_id_id': 12}">


My custom filter is defined as follows:

<record model="ir.ui.view" id="view_filter1">

            <field name="model">model</field>

            <field name="type">search</field>

            <field name="arch" type="xml">

                    <search string="">

                        <filter string="Selected Pricelist" name="pricelist" domain="[('pricelist_id','=', DYNAMIC VALUE)]"/>

                    </search>

            </field>

</record>

In DYNAMIC VALUE I would recover "pricelist_id_id" in context but Odoo return a KeyError because it can't find key "pricelist_id_id" in the context.


If I try to insert a static value in domain, my custom filter works in a right way!

domain="[('pricelist_id','=', 12)]


Any solutions? 

Thanks

Avatar
Discard
Best Answer

[EDIT] This doesn't work. I believe its because the _domain_pricelist function executes without awareness of context.


A domain function on your pricelist field of the wizard should work.

@api.model

def _domain_pricelist(self):
return [('pricelist_id', '=', self._context.get('pricelist_id_id')]
pricelist = fields.Many2many(..., domain=_domain_pricelist)
Avatar
Discard
Related Posts Replies Views Activity
2
Nov 24
1318
0
Jun 24
546
2
Nov 23
1211
7
Apr 21
18379
1
Oct 20
3359