Odoo - search_default不起作用?

时间:2014-08-21 07:35:24

标签: view openerp odoo

我在合作伙伴表单中创建了按钮,以显示与其相关的另一个模型。与合作伙伴表格中的机会,会议,销售按钮相同的按钮显示其所有机会,会议,销售等。

代码如下所示:

型号:

from openerp import models, fields
from openerp import api
class res_partner(models.Model):
    _inherit = 'res.partner'

    service_ids = fields.One2many('calendar.service', 'partner_id', 'Calendar Services')
    service_count = fields.Integer('Services', compute='_count_services')

    @api.one
    @api.depends('service_ids')
    def _count_services(self):
        self.service_count = len(self.service_ids)

动作:

    <record id="action_calendar_service" model="ir.actions.act_window">
        <field name="name">Services</field>
        <field name="res_model">calendar.service</field>
        <field name="view_mode">tree,calendar,form</field>
        <field name="view_id" ref="view_calendar_service_tree"/>
        <field name="search_view_id" ref="view_calendar_service_search"/>
        <field name="help" type="html">
          <p class="oe_view_nocontent_create">
            Click to create new service.
          </p>
        </field>
    </record>

查看:

    <record id="view_partners_form_service1" model="ir.ui.view">
        <field name="name">view.res.partner.form.crm.inherited1</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="crm.view_partners_form_crm1"/>
        <field eval="18" name="priority"/>
        <field name="arch" type="xml">
                <button name="schedule_meeting" position="after">
                    <button
                        class="oe_inline oe_stat_button"
                        attrs="{'invisible': [('customer', '=', False)]}"
                        name="%(calendar_service.action_calendar_service)d"
                        icon="fa-star"
                        type="action"
                        context="{'search_default_partner_id': active_id}">
                        <field name="service_count" string="Services" widget="statinfo"/>
                    </button>
                </button>
        </field>
    </record>

除了一件事,一切都适用于那个按钮。它不会使用partner_id(按下按钮的那个)过滤结果,并打开所有'calendar.service'记录。但它应该只显示该特定合作伙伴的那些。 context="{'search_default_partner_id': active_id}">需要更多内容吗?我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

终于找到了遗漏的东西。我需要添加这一行:

<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>

在我的模型搜索视图中。没有它,它不使用search_default过滤器。