【发布时间】:2014-08-21 07:35:23
【问题描述】:
我在合作伙伴表单中创建了按钮以显示与它的另一个模型关系。它与合作伙伴表单上的机会、会议、销售按钮等相同的按钮显示其所有机会、会议、销售等。
代码如下:
型号:
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}"> 需要更多东西吗?我在这里错过了什么?
【问题讨论】: