xpath-Как заменить действие окна в Odoo

Мне нужно заменить функцию кнопки, которая является действием окна в представлении формы sale.order, чтобы сделать кнопку видимой для определенной группы пользователей. Как этого добиться.

Это функция кнопки, которая будет заменена:

<button name="%(action_view_sale_advance_payment_inv)d" string="Create Invoice"        
    type="action" class="btn-primary"                       
    attrs="{'invisible': [('invoice_status', '!=', 'to invoice')]}"/> 

<button name="%(action_view_sale_advance_payment_inv)d" string="Create Invoice"                            
    type="action" context="{'default_advance_payment_method': 'percentage'}"                            
    attrs="{'invisible': ['|',('invoice_status', '!=', 'no'), ('state', '!=', 'sale')]}"/> 

person Pravitha V    schedule 28.02.2017    source источник
comment
Это действительно сложно.   -  person CZoellner    schedule 28.02.2017
comment
Да, это так. Я пробовал ‹xpath expr=//form/sheet/header/button[@name='456'] position=replace/›, но не работал   -  person Pravitha V    schedule 28.02.2017
comment
Никогда не используйте фиксированные значения, такие как идентификатор действия. Большая проблема заключается в том, что единственными пригодными для использования атрибутами для различения обеих кнопок являются питонические, за исключением первой кнопки, где можно использовать class. Но вам придется искать другие расширения, если вы используете больше модуля sale.   -  person CZoellner    schedule 28.02.2017
comment
Извините, я, кажется, не понимаю, что вы пытаетесь сделать, поэтому у вас есть кнопка с действием, и вы хотите что-то изменить? Это действие? Или видимость кнопки?   -  person George Daramouskas    schedule 01.03.2017


Ответы (1)


I think you need to inherit the action in the button
<record id="action_view_sale_advance_payment_inv" model="ir.actions.act_window">
            <field name="name">Invoice Order</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">sale.advance.payment.inv</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="target">new</field>
            <field name="groups_id" eval="[(4,ref('base.group_sale_salesman'))]"/>
        </record>

Унаследованное действие:

купить действие вызова с названием модуля

<record id="sale.action_view_sale_advance_payment_inv" model="ir.actions.act_window">
            <field name="name">Invoice Order</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">sale.advance.payment.inv</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="target">new</field>
            <field name="groups_id" eval="[(4,ref('base.group_sale_salesman'))]"/>
        </record>

Затем вы можете указать определенную группу в group_id

person Vishnu VaNnErI    schedule 28.02.2017