We can set default grouping and filters in Actions from XML views definitions.
I’m taking example from a custom search view upon stock.move model:
<record model="ir.ui.view" id="custom_view_stock_search">
<field name="name">stock.move.custom.search</field>
<field name="model">stock.move</field>
<field name="arch" type="xml">
<search string="Stock Moves">
<field name="origin" filter_domain="['|', '|', ('origin', 'ilike', self), ('name', 'ilike', self), ('picking_id', 'ilike', self)]" string="Reference"/>
<field name="date" groups="base.group_no_one"/>
<separator/>
<filter string="Incoming" name="incoming" domain="[('location_id.usage', 'not in', ('internal', 'transit')), ('location_dest_id.usage', 'in', ('internal', 'transit'))]"/>
<filter string="Outgoing" name="outgoing" domain="[('location_id.usage', 'in', ('internal', 'transit')), ('location_dest_id.usage', 'not in', ('internal', 'transit'))]"/>
<group expand="0" string="Group By">
<filter string="Owner" name="owner" domain="[]" context="{'group_by':'owner_id'}"/>
<filter string="Product" name="by_product" domain="[]" context="{'group_by':'product_id'}"/>
</group>
</search>
</field>
</record>In the action we have also the example using two fields of group by:
<record id="stock_move_treeview_custom_action" model="ir.actions.act_window">
<field name="name">Conto vendita</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stock.move</field>
<field name="view_mode">tree,form</field>
<field name="view_type">form</field>
<field name="view_id" ref="stock_move_treeview_custom"/>
<field name="search_view_id" ref="custom_view_stock_search"/>
<field name="context">{'group_by':['owner_id', 'product_id'],'search_default_outgoing': 1}</field>
</record>In the action context we have used a group by two fields, we can specify only one or refer to a filter name of the search view in the following ways:
<field name="context">{'search_default_group_owner': 1}</field>
<field name="context">{'group_by': 'owner_id'}</field>