Search code examples
odooodoo-11odoo-view

How can add a Custom filter / Custom search field to Sale Order view based on a field in the partner form


I have a field card_customer in partner form. What i need is i have to add a custom filter for sale orders based on the field card_customer. When choosing this filter i need the sale orders, which have customers with card_customer field equaling True.


Solution

  • You can create a filter in search view, by inheriting the base search view of sale order ,and create a new view.

    <data>
        <record id="sale_order_search_inherit_receipt" model="ir.ui.view">
            <field name="name">sale.order.search.receipt</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.sale_order_view_search_inherit_quotation"/>
            <field name="arch" type="xml">
                <xpath expr="//filter[@name='order_confirmed']" position="after"> // Adding the filter after existing filter 'Confirmed Orders'
                    <separator/>
                    <filter string="Card Customer" name="is_card_customer" domain="[('partner_id.card_customer','=', True)]"/>
                    <separator/>
                </xpath>
            </field>
        </record>
    </data>