我的概念是我在Odoo上有5种不同的访问级别。
我想检查登录用户是否在列表中(列表是由自动操作创建的),如果是,则显示字段,否则将其隐藏。
我的代码:
list_of_users= []
if record.user_id.partner_id.id: #level 1 user add on list
list_of_users.append(record.user_id.partner_id.id)
if record.user_id.sale_team_id.user_id.partner_id.id: #level 2 user add on list
list_of_users.append(record.user_id.sale_team_id.user_id.partner_id.id)
if record.user_id.sale_team_id.regional_manager_id.partner_id.id: #level 3 user add on list
list_of_users.append(record.user_id.sale_team_id.regional_manager_id.partner_id.id)
user_ids = record.env['res.users'].search([])
flag = record.env['res.users'].search([('groups_id','ilike','L4')])
for user_ids in flag: #level 4 and 5 users add on list
user_record = record.env['res.users'].browse(user_ids)
list_of_users.append(user_ids.partner_id.id)
record.update({'x_partner_follower_custom': [(6, 0, list_of_users)]})
在视图上,我在要显示/隐藏的字段上使用attrs="{'invisible': [('x_partner_follower_custom', '=', False)]}"
x_partner_follower_custom
:many2很多合作伙伴字段
您可以看到即时通讯使用户返回查看,但是attrs
似乎设置不正确。知道如何解决吗?
答案 0 :(得分:0)
首先,该字段不应为stored
,并且必须每次都对其进行计算,因为它会根据当前记录的depends
的值user
除去store
:
@api.depends('x_partner_follower_custom')
def user_exist(self):
for rec in self:
if rec.x_partner_follower_custom and self.env.user.partner_id.id in rec.x_partner_follower_custom.ids:
rec.your_boolean_field_name = True
else:
rec.your_boolean_field_name = False
因此该字段取决于x_partner_follower_custom
,而当前登录的用户不应为stored
。