Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
43918 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit

This is very helpful. Thanks a lot!!

Related Posts Odpovědi Zobrazení Aktivita
1
lis 22
2153
4
lis 23
3317
2
lis 23
3075
7
dub 21
20422
1
říj 20
4818