Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

1

How to change the default filter in place when opening a view?

By
Lawrence
on 5/11/13, 7:46 PM 9,648 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

5

Cyril Gaspard (GEM)

--Cyril Gaspard (GEM)--
4136
| 5 6 8
Paris, France
--Cyril Gaspard (GEM)--

Forum contributor since 2008

Cyril Gaspard (GEM)
On 5/11/13, 9:53 PM

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

This is very helpful. Thanks a lot!!

Buddhima
on 7/24/15, 3:24 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

2 follower(s)

Stats

Asked: 5/11/13, 7:46 PM
Seen: 9648 times
Last updated: 3/16/15, 8:10 AM