如何基于合作伙伴表单中的字段将“自定义过滤器/自定义搜索”字段添加到“销售订单”视图中

时间:2019-05-29 07:21:55

标签: odoo odoo-11 odoo-view

我有一个伙伴形式的字段python manage.py migrate 。我需要的是我必须基于字段card_customer添加用于销售订单的自定义过滤器。选择此过滤器时,我需要销售订单,其中有card_customer字段等于card_customer的客户。

2 个答案:

答案 0 :(得分:2)

可以通过“技术上”创建过滤器来实现。普通用户无法在香草Odoo沙发上做到这一点。希望这一功能将在一天之内。

“技术上”是指在自定义模块中或通过在客户端中使用调试模式。 Odoo可以在此类过滤器的域中使用点符号。管理员可以使用它直接在客户端中创建自定义过滤器。

在调试模式下创建

  1. 激活调试模式
  2. 转到设置/技术/用户定义的过滤器,或在销售订单列表视图的调试上下文菜单中打开“管理过滤器”

enter image description here

  1. 创建过滤器

enter image description here

在自定义模块中创建过滤器

  <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>

答案 1 :(得分:1)

您可以通过继承销售订单的基本搜索视图在搜索视图中创建过滤器,并创建一个新视图。

<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>