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账号

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

    Solved 关于继承partner视图无法隐藏email的问题

    Odoo 开发与实施交流
    2
    4
    266
    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.
    • 阿
      阿巴阿巴 last edited by

      目前需要继承partner的表单视图,外部ID是base.view_partner_form。

      问题一:
      我能够成功隐藏其它字段,但是不能隐藏email,

      <xpath expr="//field[@name='email']" position="attributes">
          <attribute name="invisible">1</attribute>
      </xpath>
      

      使用以上的代码,实际出现的界面如下图1:
      4b7c4305-210a-4a77-abf4-0db78c68b507-image.png 图1

      它只隐藏了email的输入框,但是没有完全隐藏email整个字段,看了这个视图的源代码(如下图2),没有发现其它阻碍隐藏的属性。那为什么隐藏会没有成功呢?希望得到解答或帮助。
      bfcc1c72-96ca-478c-8eba-89741363dfbd-image.png 图2

      问题二:
      此外,在图1中,page联系人&地址没有name属性,无法通过以下代码进行隐藏。想询问可以有其它方法能够隐藏这个吗?

      <xpath expr="//page[@name='']" position="attributes">
          <attribute name="invisible">1</attribute>
      </xpath>
      
      digitalsatori 1 Reply Last reply Reply Quote 0
      • digitalsatori
        digitalsatori 管理员 @阿巴阿巴 last edited by

        @阿巴阿巴 在 关于继承partner视图无法隐藏email的问题 中说:

        它只隐藏了email的输入框,但是没有完全隐藏email整个字段,看了这个视图的源代码(如下图2),没有发现其它阻碍隐藏的属性。那为什么隐藏会没有成功呢?希望得到解答或帮助。

        这个email字段的视图在mail模块中被修改过了:

        <xpath expr="//field[@name='email']" position="replace">
                            <field name="is_blacklisted" invisible="1"/>
                            <label for="email" class="oe_inline"/>
                            <div class="o_row o_row_readonly">
                                <button name="mail_action_blacklist_remove" class="fa fa-ban text-danger" title="This email is blacklisted for mass mailings. Click to unblacklist." type="object" context="{'default_email': email}" groups="base.group_user" attrs="{'invisible': [('is_blacklisted', '=', False)]}"/>
                                <field name="email" widget="email" context="{'gravatar_image': True}" attrs="{'required': [('user_ids','!=', [])]}"/>
                            </div>
                        </xpath>
        

        所以要隐藏email字段的label还需要:

        <xpath expr="//label[@for='email']" position="attributes">
          <attribute name="invisible">1</attribute>
        </xpath>
        

        @阿巴阿巴 在 关于继承partner视图无法隐藏email的问题 中说:

        问题二:
        此外,在图1中,page联系人&地址没有name属性,无法通过以下代码进行隐藏。想询问可以有其它方法能够隐藏这个吗?

        有name属性啊
        res_partner_views_xml___Users_tony_odoo_projects_biw_odoo_src_odoo_addons_base_views_.png
        当然你可以学习一下xpath语法,没有name也是可以定位的。

        【上海先安科技】(tony AT openerp.cn)

        阿 1 Reply Last reply Reply Quote 0
        • digitalsatori
          digitalsatori 管理员 @阿巴阿巴 last edited by

          @阿巴阿巴 在 关于继承partner视图无法隐藏email的问题 中说:

          它只隐藏了email的输入框,但是没有完全隐藏email整个字段,看了这个视图的源代码(如下图2),没有发现其它阻碍隐藏的属性。那为什么隐藏会没有成功呢?希望得到解答或帮助。

          这个email字段的视图在mail模块中被修改过了:

          <xpath expr="//field[@name='email']" position="replace">
                              <field name="is_blacklisted" invisible="1"/>
                              <label for="email" class="oe_inline"/>
                              <div class="o_row o_row_readonly">
                                  <button name="mail_action_blacklist_remove" class="fa fa-ban text-danger" title="This email is blacklisted for mass mailings. Click to unblacklist." type="object" context="{'default_email': email}" groups="base.group_user" attrs="{'invisible': [('is_blacklisted', '=', False)]}"/>
                                  <field name="email" widget="email" context="{'gravatar_image': True}" attrs="{'required': [('user_ids','!=', [])]}"/>
                              </div>
                          </xpath>
          

          所以要隐藏email字段的label还需要:

          <xpath expr="//label[@for='email']" position="attributes">
            <attribute name="invisible">1</attribute>
          </xpath>
          

          @阿巴阿巴 在 关于继承partner视图无法隐藏email的问题 中说:

          问题二:
          此外,在图1中,page联系人&地址没有name属性,无法通过以下代码进行隐藏。想询问可以有其它方法能够隐藏这个吗?

          有name属性啊
          res_partner_views_xml___Users_tony_odoo_projects_biw_odoo_src_odoo_addons_base_views_.png
          当然你可以学习一下xpath语法,没有name也是可以定位的。

          【上海先安科技】(tony AT openerp.cn)

          阿 1 Reply Last reply Reply Quote 0
          • 阿
            阿巴阿巴 @digitalsatori last edited by

            @digitalsatori
            问题一:
            通过您的办法解决了我的问题,非常感谢!
            同时我也发现,在“编辑视图:表单”里没办法看到这个视图被继承后的属性,但是通过“字段视图获取”,能看到继承的属性。
            c2d82193-f1c3-4669-84a1-1629d142bce5-image.png
            下图是找到了label属性的:
            3a04d77c-b079-43f3-868f-08612fafe961-image.png
            问题二:
            我的版本是odoo13,我仍然没有发现page里有name属性,通过查找//page[@autofocus='autofocus']来定位到这个页进行隐藏的。

            此外,我有个新问题,关于多个查找路径的,我的代码如下:

            <xpath expr="//page[@autofocus='autofocus'] | //page[@name='sales_purchases'] | //page[@name='internal_notes']" 
                                   position="attributes">
                <attribute name="invisible">1</attribute>
            </xpath>
            

            这段代码并没有按照预期进行三个页面的隐藏,实际效果是只隐藏了第一个页面。请问这个原因是什么?假如我要隐藏多个页面,有没有简洁的写法,而不是每个页面写一个查找?

            digitalsatori 1 Reply Last reply Reply Quote 0
            • digitalsatori
              digitalsatori 管理员 @阿巴阿巴 last edited by

              @阿巴阿巴 在 关于继承partner视图无法隐藏email的问题 中说:

              请问这个原因是什么?假如我要隐藏多个页面,有没有简洁的写法,而不是每个页面写一个查找?

              就我所知每个页面都要有一个xpath的定位,没有简洁写法。

              【上海先安科技】(tony AT openerp.cn)

              1 Reply Last reply Reply Quote 0
              • Topic has been marked as a question  digitalsatori digitalsatori 
              • Topic has been marked as solved  digitalsatori digitalsatori 
              • First post
                Last post