Odoo 表单视图中的只读文件

问题描述 投票:0回答:1

我在 Odoo 中构建了一个用于开具发票的模块,项目经理可以在其中批准或拒绝发票。

我正在尝试为小组项目经理创建新的访问权限和记录规则,以便当项目经理登录时,表单视图字段对他们来说是只读的,因此他们无法编辑它。当发票处于等待批准状态时,他们仍然可以访问该页面,并且可以单击按钮,但无法编辑任何字段。

record id="record_rule_project_manager_readonly" model="ir.rule"
    ​field name="name">Project Manager Readonly      
    ​field name="model_id" ref="model_vendor_bill"      
    ​field name="groups" eval="[(4, ref('group_project_manager'))]"     
    ​field name="perm_read" eval="1"       
    ​field name="perm_write" eval="0"      
    ​field name="perm_create" eval="0"      
    ​field name="perm_unlink" eval="0"      
    ​field name="domain_force">[('state', '!=', 'awaiting_approval')
 record

当我进入以项目经理身份登录的页面时,我无法访问该页面。我收到这条消息:

由于安全限制,您无法访问“供应商账单”(vendor.bill) 记录。记录:vendor.bill,2 (id=2) 用户:Boris Veselov (id=41) 此限制是由于以下规则造成的: - 项目经理只读 如有必要,请联系您的管理员以请求访问权限。 我可以做什么来更改代码中的任何内容或无论如何绕过它?

我知道我可以在每个字段中添加一个像这样的属性:

attrs="{'readonly': [('state', '=', 'awaiting_approval')]}"/>

但是针对特定群体,正确的做法是什么?

odoo readonly group access-rights record-rules
1个回答
0
投票

我通过创建一个计算域解决了这个问题。 @api.depends('pmgr_emp_id') def _compute_is_project_manager(自身): 自我记录: is_pm = self.env.user.has_group('AP.group_project_manager') 记录.is_project_manager = is_pm

并将其添加到视图字段的 xml 中: attrs="{'readonly': [('is_project_manager', '=', True)]}"

© www.soinside.com 2019 - 2024. All rights reserved.