当项目/用户将其任务下放到包含非他拥有的任务的目标阶段时,就会发生这种情况。
显然,Odoo通过project.task.sequence
记住阶段内任务的堆栈顺序,并在项目/用户完成放置操作时更新所有任务卡的sequence
字段。但由于项目/用户无权修改其他用户的任务(project.task
对象类型)。 Odoo服务器引发了如下所示的异常。
访问限制是通过以下项目/用户记录规则实现的:
Name: Project/Task: only assignee and creator can modify task
Object: Task (project.task)
Apply for: Write
Domain filter: ['|',('user_id','=',user.id),('create_uid','=',user.id)]
Group name: Project/User
这个问题有解决办法吗?
在撰写本文时,错误可以在http://demo.odoo.com当前正在运行的Odoo版本8.asas~6上重现。
请注意,默认情况下,人力资源/员工可以修改未分配给他们的任务,因此记录规则“项目/任务:员工:公共,门户,员工或(关注者和关注者)的写入和删除访问权限)首先必须删除“。
答案 0 :(得分:0)
无法想出更好的解决方案,所以我只是做了以下黑客攻击:
在 ODOO_ROOT / models.py 文件中添加_write
openerp.models.BaseModel
函数的顶部:
def _write(self, cr, user, ids, vals, context=None):
# use admin if just writing to 'sequence' field of model 'project.task'
if self._name == 'project.task' and vals.keys() == ['sequence']:
user = SUPERUSER_ID
这可能没问题,因为序列字段并不是一个非常重要的字段,可以防止非所有者随意修改。