Odoo 中文社区

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    关于结合人力资源模块利用domain设置角色权限问题总结

    Odoo 开发与实施交流
    2
    4
    2316
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Q
      qq9299381 last edited by

      OE中的domain很牛也很可恶,没有什么很详细的说明
      我测试的结果:
      'a'='b' 这个条件中,
      a可以是本对象字段,也可以是字段many2one对应的,例如常见的oecn_training_lesson中,teacher为many2one 对应res.users,
      那么公式可以这样写:[( 'teacher.login' ,'=','admin')]  意思就是 记录中老师的登录名为admin的记录列出来,注意在a为变量时, 是需要这样'a' 引号的
      b 加引号 'b' 时,是固定值,例如上面的 'admin'
      b 也可以使用变量,例如 user.name 则为当前用户的名字,那么上面公式可以为 [( 'teacher.login','=', user.name)],也就是老师登录名是当前用户名字的记录
      综合上面的情况,求证 销售一部经理,只能看到本部门数据的 情况
      为:[('user_id','in', [workmate.user_id.id  for workmate in user.employee_ids[0].department_id.member_ids])]
      说明:
      1.需要对象中要有user_id字段,虽然默认oe都有create_uid这个字段,但在columns中木定义,这里使用不行,会报错,奇怪,可我用[('create_uid','=',user.id)]时可以,鬼知道为什么
      2. user.employee_ids[0].department_id.member_ids 意思是,当前用户对应的hr中的员工的部门的成员
      (OE,一个登陆帐号,可以对应多个企业员工,这里只取第一个,也就是最好一个帐号就对应一个员工)
      那么上面的意思就是 查出 记录的归属者是当前用户的同事的记录
      这种做法可能有那么点别扭,可不用写代码就可以完成,还算凑合


      1 Reply Last reply Reply Quote 0
      • C
        ccdos last edited by

        不错, 你试试在 columns 再显式定义一下 create_uid

        1 Reply Last reply Reply Quote 0
        • Q
          qq9299381 last edited by

          暂时没考虑部门级别问题,比如上级部门查看下级部门的数据,OE的人员只能属于一个HR部门
          如果可以定义变量类似user这样的
          那么可以定义一个我管辖的用户这样一个变量列表,在[('user_id','in',我管辖的用户)] 这样比较合适
          一直不知道如何去定义这样一个变量
          在column中定义'context_department_id': fields.function(_get_self_department_ids,type="hr.department"), 类似这样定义部门,这个department_id好像也不能用在domain中,但从浏览器上确实看到department_id的值在前台的params中,每次post到后台时,都会把这个department_id送到OE-server,
          而且这个department_id函数定义返回的结果是可定义的字段类型,没有[1,2,3]这种列表方式,也不好在domian中用in去处理

          1 Reply Last reply Reply Quote 0
          • First post
            Last post