Я разместил кнопки (значок зеленой стрелки) в древовидной структуре. Я хочу показать кнопку, только если в записи есть Билль (BOM). У меня есть логика, как это выяснить, но не знаю, как выборочно отображать или скрывать кнопку.Выборочно отобразить или скрыть кнопку в дереве в OpenERP
Кроме того, при загрузке представления необходимо активировать действие кнопки отображения или скрытия. Как я могу это сделать, поскольку нет события view_on_load, например, в Visual Basic?
Вот вид дерева:
Вот как кнопки определены в XML-файле:
<!-- mrp_bom -->
<record id="adamson_mrp_bom_form_view" model="ir.ui.view">
<field name="name">adamson.mrp.bom.form.view</field>
<field name="model">mrp.bom</field>
<field name="type">form</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view" />
<field name="arch" type="xml">
<xpath expr="//notebook/page[@string='Components']/field/tree[@string='Components']/field[@name='sequence']" position="before" >
<button class="oe_inline oe_stat_button" type="object" string="Go!" icon="gtk-go-forward" name="action_go" />
</xpath>
Вот логика, как найти, если есть BOM или не для конкретного продукта. Обратите внимание на список bom_ids, который, скорее всего, будет иметь только одно значение. Эта логика используется для действия кнопки, но ее можно использовать для выбора кнопки show или нет.
class mrp_bom_line(osv.osv):
_inherit = 'mrp.bom.line'
def action_go(self, cr, uid, ids, context=None):
bom_obj = self.pool.get('mrp.bom')
for bom_line in self.browse(cr, uid, ids, context=context):
if bom_line.product_id.default_code > '300':
bom_ids = bom_obj.search(cr, uid, [('product_id', '=', bom_line.product_id.id)], context=context)
if bom_ids:
Я не знаю, как выбрать 'selection_field_name'. По этой причине я обновил свой вопрос с помощью логического кода. Если вы можете дать мне пример, это было бы здорово. Благодаря! – Nebojsa
Могу ли я узнать, из какого поля условия вы хотите скрыть/показать кнопку? –
В коде есть список bom_ids, который является индикатором, если конкретный продукт имеет спецификацию (спецификацию). Этот список, скорее всего, будет иметь только один элемент. Если список пуст, сделайте кнопку невидимой. Если в списке bom_ids есть элемент, нажмите кнопку. – Nebojsa