Я пытался использовать t-attf-class
для отключения кнопки в разделе header
в Odoo (v11). Я создал кнопку в заголовке в файле вида xml и связал ее с действием в модели, действие работает отлично. Я пытаюсь отключить кнопку, основываясь на условии state
объекта, я нашел в источнике Odoo следующий шаблон:
<t t-name="FieldStatus.content.button">
<t t-set="disabled" t-value="!clickable || i.selected"/>
<button type="button" t-att-data-value="i.id" t-att-disabled="disabled ? 'disabled' : undefined"
t-attf-class="btn btn-sm o_arrow_button btn-#{i.selected ? 'primary' : 'default'}#{disabled ? ' disabled' : ''}">
<t t-esc="i.display_name"/>
</button>
</t>
Поэтому я пытаюсь сделать то же самое для этого кнопка:
<form string="Form Name">
<header>
...
<button name="action_delete" string="Delete" type="object" t-attf-class="btn-danger #{state == 'done'?' disabled': ''}" t-att-disabled="state == 'done' ? 'disabled': undefined"/>
...
</header>
модель содержит поле state
, которое принимает одно из значений: ['draft', 'pending', 'done']
Это действие action_delete
определено в модели и работает нормально. Я попытался использовать <attribute>
внутри кнопки и атрибут t-if
внутри и снаружи кнопки без удачи.
PS Этот вопрос отличается и ответ не работает в этом случае, также это может быть достигнуто с помощью атрибута invisible
, который намного проще, но мы не хотим этого делать.