This question has been flagged
1 Reply
40850 Views

Hello,

When I click on "Products" under the sales tab there is a filter already applied ("can be sold"). Is there a way to change this default filter (or perhaps even to a more complex advanced search) for each view / on a user basis?

Thanks for the help!

Lawrence

Avatar
Discard
Best Answer

Hi,

you must create a module to inherit action you want to modify,

see :

inherit action

example in 6.1 :

for produt search in product/product_view.xml, the search view for product is defined in this code :

<record id="product_search_form_view" model="ir.ui.view">
        <field name="name">product.search.form</field>
        <field name="model">product.product</field>
        <field name="type">search</field>
        <field name="arch" type="xml">
            <search string="Product">
               <filter string="Services" icon="terp-accessories-archiver" domain="[('type','=','service')]"/>
               <filter string="Products" icon="terp-accessories-archiver" domain="['|',('type','=','product'),('type','=','consu')]" help="Both stockable and consumable products"/>
               <separator orientation="vertical"/>
               <filter string="To Sell" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
               <filter name="filter_to_purchase" string="To Purchase" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]" />
               <separator orientation="vertical"/>
               <field name="name"
                    filter_domain="['|', ('name','ilike',self),('default_code','ilike',self)]"/>
               <field name="categ_id" widget="selection" operator="child_of" groups="base.group_extended"/>
               <newline/>
               <group expand="0" string="Context..." groups="base.group_extended">
                   <field name="pricelist_id" widget="selection" context="{'pricelist': self}" />
                   <separator orientation="vertical" groups="base.group_multi_company" />
                   <field name="company_id" widget="selection" groups="base.group_multi_company" />
               </group>
               <newline/>
               <group  expand='0' string='Group by...' groups="base.group_extended">
                   <filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}" groups="base.group_extended"/>
                   <separator orientation="vertical"/>
                   <filter string='Default UOM' icon="terp-mrp" domain="[]" context="{'group_by' : 'uom_id'}" />
                   <separator orientation="vertical"/>
                   <filter string='Type' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'type'}" />
                   <separator orientation="vertical" groups="base.group_multi_company"/>
                   <filter string='Company' icon="terp-go-home" domain="[]" context="{'group_by' : 'company_id'}" groups="base.group_multi_company" />
               </group>

            </search>
        </field>
    </record>

you have a filter defines for your description :

<filter string="To Sell" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>

the default filter is defined in the action, in the code with the reference to th search view id :

<field name="search_view_id" ref="product_search_form_view"/>

in :

<record id="product_normal_action_sell" model="ir.actions.act_window">
        <field name="name">Products</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">product.product</field>
        <field name="view_mode">tree,form,kanban</field>
        <field name="view_type">form</field>
        <field name="context">{"search_default_filter_to_sell":1}</field>
        <field name="view_id" ref="product_product_tree_view"/>  
        <field name="search_view_id" ref="product_search_form_view"/>            
        <field name="help">You must define a Product for everything you buy or sell. Products can be raw materials, stockable products, consumables or services. The Product form contains detailed information about your products related to procurement logistics, sales price, product category, suppliers and so on.</field>
    </record>

the default filter is defined like this : search_default + field name filter, in your case : search_default_filter_to_sell

to have the filter on, the value defined is 1 (True): "search_default_filter_to_sell":1

for your need, give the value 0 in your inherited action (False)

you can do the same thing for every search view.

you can activate one or more filter default in a list separated by comma.

<field name="context">{"search_default_filter_to_sell":0,"search_default_filter_to_purchase":1}</field>

just put default filter you want with value 1 or 0, by default filter is to 0 for each filter.

Bye

Avatar
Discard

This is very helpful. Thanks a lot!!