CRM 模块中的 Many2one res.partner 过滤器
Many2one res.partner Filter in CRM module
我正在尝试在 CRM 模块的商机部分对客户应用分组依据。
我想将 customers/opportunities 分组到 industry
。
我在 res.partner
中使用过类似的代码,但我无法解决这个问题!
models.py
x_industry_id = fields.Many2one(string="Industry", comodel_name="res.partner")
views.xml
<record id="view_crm_case_opportunities_filter_inherit" model="ir.ui.view">
<field name="name">crm.lead.search.opportunity</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/>
<field name="arch" type="xml">
<xpath expr="//search" position="inside">
<filter name="x_industry_id" string="Industry" context="{'group_by':'x_industry_id'}" domain="[('industry_id','!=', False)]"/>
</xpath>
</field>
</record>
我也遇到了过滤器和使用相同方法的其他组的相同问题。
它们看起来不像正常人!
如何将组和过滤器应用于不同的模型
删除 domain
参数并将过滤器放在 search
标签的 group
标签内,因为您正在尝试创建 group,不是 域过滤器:
<record id="view_crm_case_opportunities_filter_inherit" model="ir.ui.view">
<field name="name">crm.lead.search.opportunity</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/>
<field name="arch" type="xml">
<xpath expr="//search/group" position="inside">
<filter name="x_industry_id" string="Industry" context="{'group_by':'x_industry_id'}"/>
</xpath>
</field>
</record>
在 search
视图中有三种过滤器:
按文本过滤:允许用户将字段与某些文本进行比较,并找到与表达式匹配的记录。他们使用 field
标签和 filter_domain
或 operator
等参数(例如:<field name="lost_reason"/>
)。
按域过滤:允许用户单击您创建的过滤器并仅查看与您指定的域匹配的记录。他们使用 filter
标签和 domain
参数等(例如:<filter string="My Pipeline" name="assigned_to_me" domain="[('user_id', '=', uid)]" help="Opportunities that are assigned to me"/>
)。
按组过滤:允许用户按字段对记录进行分组。它们位于搜索视图中的 group
标签内,使用 filter
标签和 context
参数(使用关键字 group_by
),等等(例如:<filter string="Salesperson" context="{'group_by':'user_id'}"/>
).
所以我认为你混合了两种过滤器。这就是为什么你应该删除 domain
.
当然,检查你是否在 __manifest__.py
文件中添加了 crm
依赖,然后重启 Odoo 服务(更新你的模块)。
我正在尝试在 CRM 模块的商机部分对客户应用分组依据。
我想将 customers/opportunities 分组到 industry
。
我在 res.partner
中使用过类似的代码,但我无法解决这个问题!
models.py
x_industry_id = fields.Many2one(string="Industry", comodel_name="res.partner")
views.xml
<record id="view_crm_case_opportunities_filter_inherit" model="ir.ui.view">
<field name="name">crm.lead.search.opportunity</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/>
<field name="arch" type="xml">
<xpath expr="//search" position="inside">
<filter name="x_industry_id" string="Industry" context="{'group_by':'x_industry_id'}" domain="[('industry_id','!=', False)]"/>
</xpath>
</field>
</record>
我也遇到了过滤器和使用相同方法的其他组的相同问题。
它们看起来不像正常人!
如何将组和过滤器应用于不同的模型
删除 domain
参数并将过滤器放在 search
标签的 group
标签内,因为您正在尝试创建 group,不是 域过滤器:
<record id="view_crm_case_opportunities_filter_inherit" model="ir.ui.view">
<field name="name">crm.lead.search.opportunity</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/>
<field name="arch" type="xml">
<xpath expr="//search/group" position="inside">
<filter name="x_industry_id" string="Industry" context="{'group_by':'x_industry_id'}"/>
</xpath>
</field>
</record>
在 search
视图中有三种过滤器:
按文本过滤:允许用户将字段与某些文本进行比较,并找到与表达式匹配的记录。他们使用
field
标签和filter_domain
或operator
等参数(例如:<field name="lost_reason"/>
)。按域过滤:允许用户单击您创建的过滤器并仅查看与您指定的域匹配的记录。他们使用
filter
标签和domain
参数等(例如:<filter string="My Pipeline" name="assigned_to_me" domain="[('user_id', '=', uid)]" help="Opportunities that are assigned to me"/>
)。按组过滤:允许用户按字段对记录进行分组。它们位于搜索视图中的
group
标签内,使用filter
标签和context
参数(使用关键字group_by
),等等(例如:<filter string="Salesperson" context="{'group_by':'user_id'}"/>
).
所以我认为你混合了两种过滤器。这就是为什么你应该删除 domain
.
当然,检查你是否在 __manifest__.py
文件中添加了 crm
依赖,然后重启 Odoo 服务(更新你的模块)。