跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. 创建人为当前用户则显示,其余人则隐藏按钮

创建人为当前用户则显示,其余人则隐藏按钮

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
17 帖子 9 发布者 7.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 萧 离线
    萧 离线
    萧云飞
    写于 最后由 编辑
    #1

    新人向各位朋友问好了。最近在做一个模块的二次开发时遇见了一种需求:
        在form视图中有个按钮B,还有一个many2one字段A(关联的res.users),当当前用户的id等于这个的id时,这个按钮B显示,否则隐藏。
    我试着设置了下attrs="{'invisibal':[('A.id','!=',uid)]}" 但是会报错,报错信息显示uid没有定义,现在不知道怎么弄了,大家能帮我解答下么?

    1 条回复 最后回复
    0
    • 静 离线
      静 离线
      静静
      写于 最后由 编辑
      #2

      用户组判断。

      1 条回复 最后回复
      0
      • 萧 离线
        萧 离线
        萧云飞
        写于 最后由 编辑
        #3

        [quote author=开阖-静静 link=topic=17417.msg31498#msg31498 date=1448264724]
        用户组判断。
        [/quote]

        你的意思是给button设置groups属性吗?但是能看见这个按钮和不能看见这个按钮的用户都是属于同一个组的。

        1 条回复 最后回复
        0
        • 静 离线
          静 离线
          静静
          写于 最后由 编辑
          #4

          那就自定义一个用户组,让谁看谁在里边。

          1 条回复 最后回复
          0
          • W 离线
            W 离线
            wjfonhand
            写于 最后由 编辑
            #5

            可以试一下在form对应的act_window里用context传uid,然后在invisible属性里用context.get()

            GoodERP -- Odoo China fork

            1 条回复 最后回复
            0
            • 萧 离线
              萧 离线
              萧云飞
              写于 最后由 编辑
              #6

              感谢各位,已找到个笨方法,我在实体里面多定义了boolean个字段A,然后用compute的方式判断当前用户是不是创建人,并且不保存在数据库中,然后设置A的值,然后再在button中判断A字段的值,用以控制button的显示或则隐藏。

              1 条回复 最后回复
              0
              • 萧 离线
                萧 离线
                萧云飞
                写于 最后由 编辑
                #7

                [quote author=Jeff link=topic=17417.msg31504#msg31504 date=1448336441]
                可以试一下在form对应的act_window里用context传uid,然后在invisible属性里用context.get()
                [/quote]

                感谢,我抽空的时候再试试,然后贴出答案

                1 条回复 最后回复
                0
                • O 离线
                  O 离线
                  oldbro
                  写于 最后由 编辑
                  #8

                  也许可以在acces rulers.xml里添加domain_force

                  1 条回复 最后回复
                  0
                  • N 离线
                    N 离线
                    newnewman80
                    写于 最后由 编辑
                    #9

                    在考量odoo中,想问问二次开发的工作量一般会有多大的呢?

                    1 条回复 最后回复
                    0
                    • A 离线
                      A 离线
                      a136794drt
                      写于 最后由 编辑
                      #10

                      在action定义里面写context,传入uid,如何在ui视图获取当前用户?

                      1 条回复 最后回复
                      0
                      • 周 离线
                        周 离线
                        周士超
                        写于 最后由 编辑
                        #11

                        [quote author=Jeff link=topic=17417.msg31504#msg31504 date=1448336441]
                        可以试一下在form对应的act_window里用context传uid,然后在invisible属性里用context.get()
                        [/quote]
                        感觉这个是正解

                        1 条回复 最后回复
                        0
                        • W 离线
                          W 离线
                          wjfonhand
                          写于 最后由 编辑
                          #12

                          试了一下,没发现什么好办法。可能只有在按钮点击之后判断报错了。不太友好。

                          GoodERP -- Odoo China fork

                          1 条回复 最后回复
                          0
                          • KevinKongK 离线
                            KevinKongK 离线
                            KevinKong
                            写于 最后由 编辑
                            #13

                            系统不认识uid,你就让它认识uid嘛~~~

                            重写orm.py中的transfer_node_to_modifiers方法

                            <br />def transfer_node_to_modifiers(node, modifiers, context=None, in_tree_view=False):<br />	if node.get(&#039;attrs&#039;):<br />		if &#039;uid&#039; in&nbsp; node.get(&#039;attrs&#039;):<br />			uid = 1#获取当前登录用户的id,怎么获取?留个坑,拒绝伸手党~<br />		modifiers.update(eval(node.get(&#039;attrs&#039;)))<br />
                            



                            bingo~ 以后就可以愉快地在attrs里和uid进行玩耍啦! 😮 😮 😮 😮

                            1 条回复 最后回复
                            0
                            • I 离线
                              I 离线
                              iooop
                              写于 最后由 编辑
                              #14

                              另外一个方案是覆盖一下field_view_get()方法,修改返回给浏览器的XML。

                              1 条回复 最后回复
                              0
                              • KevinKongK 离线
                                KevinKongK 离线
                                KevinKong
                                写于 最后由 编辑
                                #15

                                [quote author=iooop link=topic=17417.msg31545#msg31545 date=1448954462]
                                另外一个方案是覆盖一下field_view_get()方法,修改返回给浏览器的XML。
                                [/quote]

                                field_view_get 可以解决当前页面的问题,但不具有普适性。

                                1 条回复 最后回复
                                0
                                • 萧 离线
                                  萧 离线
                                  萧云飞
                                  写于 最后由 编辑
                                  #16

                                  [quote author=KevinKong link=topic=17417.msg31544#msg31544 date=1448953273]
                                  系统不认识uid,你就让它认识uid嘛~~~

                                  重写orm.py中的transfer_node_to_modifiers方法

                                  <br />def transfer_node_to_modifiers(node, modifiers, context=None, in_tree_view=False):<br />	if node.get(&#039;attrs&#039;):<br />		if &#039;uid&#039; in&nbsp; node.get(&#039;attrs&#039;):<br />			uid = 1#获取当前登录用户的id,怎么获取?留个坑,拒绝伸手党~<br />		modifiers.update(eval(node.get(&#039;attrs&#039;)))<br />
                                  



                                  bingo~ 以后就可以愉快地在attrs里和uid进行玩耍啦! 😮 😮 😮 😮
                                  [/quote]

                                  谢谢你的提示哦,已经能获取了

                                  1 条回复 最后回复
                                  0

                                  • 登录

                                  • 没有帐号? 注册

                                  • 登录或注册以进行搜索。
                                  • 第一个帖子
                                    最后一个帖子
                                  0
                                  • 版块
                                  • 标签
                                  • 热门
                                  • 用户
                                  • 群组