如何根据合作伙伴表单中的字段将自定义过滤器/自定义搜索字段添加到销售订单视图
How can add a Custom filter / Custom search field to Sale Order view based on a field in the partner form
我在合作伙伴表单中有一个字段 card_customer
。我需要的是我必须根据字段 card_customer
添加销售订单的自定义过滤器。选择此过滤器时,我需要销售订单,其中 card_customer
字段等于 True
.
的客户
这可以通过创建过滤器 "technically" 来实现。到目前为止,普通用户无法在香草 Odoo 中做到这一点。希望这一功能有一天会出现。
"Technically" 表示在自定义模块中或在客户端中使用调试模式。 Odoo 可以在此类过滤器的域中使用 dot-Notation。管理员可以使用它直接在客户端中创建自定义过滤器。
正在调试模式下创建
- 激活调试模式
- 要么转到 Settings/Technical/user-defined 过滤器,要么在销售订单列表视图的调试上下文菜单中打开 "Manage filters"
- 创建过滤器
在自定义模块中创建过滤器
<record id="my_customer_filter" model="ir.filters">
<field name="action_id" eval="False"/>
<field name="active" eval="True"/>
<field name="context">{}</field>
<field name="domain">[["partner_id.card_customer","=",True]]</field>
<field name="is_default" eval="True"/>
<field name="model_id">sale.order</field>
<field name="name">cart_customer is true</field>
<field name="sort">[]</field>
</record>
在自定义模块的搜索视图中创建过滤器
<record id="view_sales_order_filter" model="ir.ui.view">
<field name="name">sale.order.list.select</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_sales_order_filter" />
<field name="arch" type="xml">
<filter name="need_message" position="after">
<filter name="filter_card_customer_true" string="card_customer is true"
domain="[('partner_id.card_customer','=',True)]" />
</filter>
</field>
</record>
您可以在搜索视图中创建一个过滤器,通过继承销售订单的基本搜索视图,并创建一个新视图。
<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>
我在合作伙伴表单中有一个字段 card_customer
。我需要的是我必须根据字段 card_customer
添加销售订单的自定义过滤器。选择此过滤器时,我需要销售订单,其中 card_customer
字段等于 True
.
这可以通过创建过滤器 "technically" 来实现。到目前为止,普通用户无法在香草 Odoo 中做到这一点。希望这一功能有一天会出现。
"Technically" 表示在自定义模块中或在客户端中使用调试模式。 Odoo 可以在此类过滤器的域中使用 dot-Notation。管理员可以使用它直接在客户端中创建自定义过滤器。
正在调试模式下创建
- 激活调试模式
- 要么转到 Settings/Technical/user-defined 过滤器,要么在销售订单列表视图的调试上下文菜单中打开 "Manage filters"
- 创建过滤器
在自定义模块中创建过滤器
<record id="my_customer_filter" model="ir.filters">
<field name="action_id" eval="False"/>
<field name="active" eval="True"/>
<field name="context">{}</field>
<field name="domain">[["partner_id.card_customer","=",True]]</field>
<field name="is_default" eval="True"/>
<field name="model_id">sale.order</field>
<field name="name">cart_customer is true</field>
<field name="sort">[]</field>
</record>
在自定义模块的搜索视图中创建过滤器
<record id="view_sales_order_filter" model="ir.ui.view">
<field name="name">sale.order.list.select</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_sales_order_filter" />
<field name="arch" type="xml">
<filter name="need_message" position="after">
<filter name="filter_card_customer_true" string="card_customer is true"
domain="[('partner_id.card_customer','=',True)]" />
</filter>
</field>
</record>
您可以在搜索视图中创建一个过滤器,通过继承销售订单的基本搜索视图,并创建一个新视图。
<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>