我试图根据用户允许的公司过滤记录,将在联系人中显示。你知道怎么做吗?提前感谢。我非常感谢你的回答/事先的建议。用户允许的公司:公司A和公司B
只显示这类公司的记录。
<record id="rule_custom_user_contacts" model="ir.rule">
<field name="name"> Record for CUstom Users Only</field>
<field name="model_id" ref="base.model_res_partner" />
<field name="domain_force">['|',('company_id','!=', False),('company_id','=', user.company_id.id)]</field>
<field name="perm_read" eval="True" />
<field name="perm_write" eval="False" />
<field name="perm_create" eval="False" />
<field name="perm_unlink" eval="False" />
<field name="groups" eval="[(4, ref('mymdule.group_custom_user'))]" />
</record>
为了更好地理解和跟踪代码,我建议在res.partner模型中定义一个函数并返回您的域,其中包含您想要的任何逻辑因此在记录规则中调用它,为此请查看示例
class ResPartner(models.Model):
_inherit = 'res.partner'
def set_contract_domain(self):
#do any logic to get ids of user's companies and put it in user_companies_id
domain = [('company_id', 'in', user_companies_id)]
return domain
在XML文件中你需要这样命名:
<record id="user_access_rule" model="ir.rule">
<field name="name"> Record for Custom Users Only</field>
<field name="model_id" ref="model_model_res_partner"/>
<field name="global" eval="True"/>
<field name="domain_force">user.env['res.partner'].set_contract_domain()</field>
</record>
我希望它对你有用:)