在我的模块中,用户可以保存自己的记录并编辑自己的记录。并且还可以查看其他用户的记录。用户无法编辑其他用户的详细信息但可以查看。我想要的是,我想以只读模式打开另一个用户的记录。但是用户自己的记录应该处于正常模式。最重要的是,对于管理员,它应该处于正常模式(可编辑模式)。我怎么能在odoo中做到这一点?
答案 0 :(得分:0)
这可以通过使用布尔字段来完成。
is_belongs = fields.Boolean('Own record',default=True)
在模型中添加布尔字段。
写一个这样的函数..
def make_readonly(self):
if self.pool['res.users'].has_group(self._cr, self.env.user.id, 'base.group_manager'):
is_belongs = True //This will work if admin is logged in//
elif self.create_uid == self.env.user:
is_belongs = True
elif self.create_uid != self.env.user:
is_belongs = False
这里create_uid是odoo的保留字段。
保留字段 Odoo在所有模型中创建了几个字段。这些字段由系统管理,不应写入。如果有用或必要,可以阅读它们:
此字段为创建记录的用户提供。此字段的值是创建记录的用户。所以当管理员和记录登录的所有者is_belongs的值为True时。对于其他用户,其值将为False
然后在视图中添加过滤器
{'readonly':[('is_belongs','=',False)]}
然后,表单视图将仅为那些不是记录所有者的用户读取,但对于管理员和记录所有者将处于正常模式。