Use [] to find tag! Example: [flutter, javascript]

Odoo - Search View and Filters

Odoo - Search View and Filters

Artikel ini dibukukan pada buku Odoo ERP Development
access_time 06 February 2025 remove_red_eye 496 Kali spellcheck 537 Kata, 3370 Karakter
#odoo #xml

Search View in Odoo is a feature that allows users to search and filter data in list views. With Search View, we can add search fields, custom filters, groups, and advanced search features to enhance the user experience.

Definition of Search View

Search View in Odoo is defined in an XML file and used to add search elements to a specific model. It consists of search fields, filters, groups, and favorites.

Basic Example of a Search View

Here is a basic example of defining a Search View in Odoo 18:

<record id="view_example_search" model="ir.ui.view">
    <field name="name">example.search</field>
    <field name="model">example.model</field>
    <field name="arch" type="xml">
        <search>
            <field name="name"/>
            <filter string="Active Records" name="active" domain="[('active', '=', True)]"/>
            <filter string="Category A" domain="[('category', '=', 'A')]"/>
            <group string="Group By">
                <filter string="Category" name="group_category" context="{'group_by': 'category'}"/>
                <filter string="Date" name="group_date" context="{'group_by': 'date'}"/>
            </group>
        </search>
    </field>
</record>

Explanation

  • <field name="name"/> → Adds a searchable field.
  • <filter> → Adds a custom filter based on specific conditions.
  • <group> → Adds options to group data by a specific field.

Search View Elements

Odoo 18 supports several main elements in Search View:

1. Search Fields

Allows users to search for data based on a specific attribute.

<field name="customer"/>

2. Filters

Filters are used to refine data based on conditions.

<filter string="Paid" domain="[('state', '=', 'paid')]"/>

3. Group (Group By)

Groups search results based on a field.

<group string="Group By">
    <filter string="Customer" name="group_customer" context="{'group_by': 'customer_id'}"/>
</group>

4. Favorites

Favorites allow users to save frequently used searches.

<filter string="My Orders" name="my_orders" domain="[('user_id', '=', uid)]" context="{'group_by': 'date'}"/>

Example: Custom Module Search View

If you have an order.model, here is an example search view to enhance search functionality:

<record id="view_order_search" model="ir.ui.view">
    <field name="name">order.search</field>
    <field name="model">order.model</field>
    <field name="arch" type="xml">
        <search>
            <field name="name"/>
            <field name="customer_id"/>
            <filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"/>
            <filter string="Pending" name="pending" domain="[('state', '=', 'pending')]"/>
            <group string="Group By">
                <filter string="Customer" name="group_customer" context="{'group_by': 'customer_id'}"/>
                <filter string="Order Date" name="group_date" context="{'group_by': 'date'}"/>
            </group>
        </search>
    </field>
</record>

Conclusion

Search View in Odoo 18 helps users efficiently search and filter data, improving usability and data management within the Odoo application.

Artikel ini dibukukan pada buku Odoo ERP Development
Navigasi Konten