【发布时间】:2021-01-18 14:43:05
【问题描述】:
我正在开发一个扩展 Odoo 的出勤模块。我的目标是只使满足条件的记录可编辑,而其他记录保持只读。
我创建了一个额外的字段user_editable 来模拟未来的情况,但是这不起作用。所有显示的条目都设置为只读。
我错过了什么?
这些是我根据现有规则改编的记录规则。
<odoo>
<record id="mymodule_attendance_rule_create" model="ir.rule">
<field name="name">user: modify own attendance only</field>
<field name="model_id" ref="hr_attendance.model_hr_attendance"/>
<field name="domain_force">[('employee_id.user_id','=',user.id)]</field>
<field name="perm_read" eval="0"/>
<field name="perm_write" eval="0"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="0"/>
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
</record>
<record id="mymodule_attendance_rule_change" model="ir.rule">
<field name="name">user: modify only last three workdays' attendance</field>
<field name="model_id" ref="hr_attendance.model_hr_attendance"/>
<field name="domain_force">[
('user_editable','=',True),
('employee_id.user_id','=',user.id)
]</field>
<field name="perm_read" eval="0"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="0"/>
<field name="perm_unlink" eval="1"/>
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
</record>
</odoo>
据我了解,当用户尝试编辑条目时,应该评估第二个条目,但是,在安装模块时,在前端是不可编辑的。
这是我的额外字段的定义:
class HrAttendance(models.Model):
_inherit = "hr.attendance"
user_editable = fields.Boolean(string='User editable',
store=True,
compute='_compute_user_editable')
_compute_user_editable 目前只设置“True”。
谢谢!
【问题讨论】: