你好我想在odoo 11中为每个客户公司创建一个特权contat。我成功返回了视图列表中的所有联系人,我无法通过所选公司过滤它。这是我的代码:
视图:
<odoo>
<data>
<record id="view_partner_form_inherited" model="ir.ui.view">
<field name="name">base.partner.form.acftsales.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="arch" type="xml">
<field name="category_id" position="after">
<field name="privileged_contact" />
<field name="companyId" />
</field>
</field>
</record>
</data>
</odoo>
建模或获取所有联系人(公司A,公司B,......):
class acftsales_company(models.Model):
_inherit = "res.partner"
companyId=fields.Integer('societe id', compute='_get_value')
privileged_contact= fields.Many2one('res.partner', string='Contacts', domain=[('active', '=', True),('customer', '=', True)])
@api.one
def _get_value(self):
self.companyId = self.id
我的失败代码只能过滤当前公司:
privileged_contact= fields.Many2one('res.partner', string='Contacts', domain=[('active', '=', True),('customer', '=', True)],('parent_id', '=', self.id)])
privileged_contact= fields.Many2one('res.partner', string='Contacts', domain=[('active', '=', True),('customer', '=', True)],('parent_id', '=', companyId)])
privileged_contact= fields.Many2one('res.partner', string='Contacts', domain=[('active', '=', True),('customer', '=', True)],('parent_id', '=', env['res.partner'].id)])
privileged_contact= fields.Many2one('res.partner', string='Contact commercial', function=_get_employees)
privileged_contact= fields.Many2one('res.partner', string='Contact commercial', function=_get_employees)
@api.multi
def _get_employees(self):
Partner = self.env['res.partner']
employees = Partner.search([('active', '=', True),('customer', '=', True),('parent_id','=',self.id)])
#privileged_contact
return employees
答案 0 :(得分:1)
我终于成功传递了视图中的所有过滤器
privileged_contact= fields.Many2one('res.partner', string='Contacts')
<field name="companyId" invisible="1" />
<field name="privileged_contact" domain="[('active', '=', True),('customer', '=', True),('parent_id','=',companyId)]"/>
我希望这不是纯粹的客户端计算,并且当它将是很多客户时它不会减慢应用程序...