Help

欢迎!

该社区面向专业人士和我们产品和服务的爱好者。
分享和讨论最好的内容和新的营销理念,建立您的专业形象,一起成为更好的营销人员。


0

Button disable for logged in users!

Avatar
Discard
1 Answer
0
Avatar
odoo
Best Answer

Hii,

Use t-if + group check

To fully  remove the button for internal users please try below code:

<template id="cw_sale_order_portal_content_inherit" inherit_id="sale.sale_order_portal_content">



  <xpath expr="//span[@id='shipping_address']/h5" position="replace">

    <h5 class="mb-1">Delivery Address</h5>

  </xpath>



  <xpath expr="//a[contains(normalize-space(text()), 'Accept & Sign')]" position="replace">

    <t t-if="not request.env.user.has_group('base.group_user')">

      <a href="/my/orders/accept" class="btn btn-primary">Accept & Sign</a>

    </t>

  </xpath>


</template>


base.group_user → This is the internal user group.

So not request.env.user.has_group('base.group_user') means: show this only to non-internal users → portal or public .

i hope it is use full

5 Comments
Avatar
Discard
Avatar
odoo
-

I'm getting xpath error

Element '<xpath expr="//a[contains(normalize-space(text()), &#39;Accept &amp; Sign&#39;)]">' cannot be located in parent view

Avatar
odoo
-

Try this improved XPath:
<xpath expr="//a[contains(@href, '/accept') and contains(@class, 'btn-primary')]" position="replace">
<t t-if="not request.env.user.has_group('base.group_user')">
<a href="/my/orders/accept" class="btn btn-primary">Accept &amp; Sign</a>
</t>
</xpath>
contains(@href, '/accept') → Matches the route of the button.

contains(@class, 'btn-primary') → Ensures it's the actual button.
If you're unsure of the structure:

Go to Developer Tools in your browser (F12).

Inspect the "Accept & Sign" button.

Confirm the structure and attributes — like href, class, or even id.
please try this

Avatar
odoo
-

Thanks, but your xpath is also not working.

Avatar
odoo
-

error solve?

Avatar
odoo
-

Yes