2016-12-07 5 views
4

Я хочу, чтобы добавить кнопку к дереву Order_Line в форме продажи, я добавил так:Как добавить кнопку на дереве внутри формы в Odoo 10?

<xpath expr="/form/sheet/notebook/page[1]/field[@name='order_line']/tree/field[@name='price_subtotal']" position="after"> 
    <button name="%{action_view_wizard}d" string="" type="action" icon="fa-archive" attrs="{'invisible':[('product_id','=', False)]}"/> 
</xpath> 

И мастер определяется

<record id="check_stock" model="ir.ui.view"> 
    <field name="name">sale_warehouse.check_stock_wizard</field> 
    <field name="model">sale_warehouse.check_stock_wizard</field> 
    <field name="arch" type="xml"> 
     <form string="Stock by warehouse"> 
      <group col="1"> 
       <field name="stock" nolabel="1"/> 
      </group> 
      <footer> 
       <button string="Close" class="btn-default" special="cancel" /> 
      </footer> 
     </form> 
    </field> 
</record> 

<record id="action_view_wizard" model="ir.actions.act_window"> 
    <field name="name">Stock by warehouse</field> 
    <field name="type">ir.actions.act_window</field> 
    <field name="res_model">sale_warehouse.check_stock_wizard</field> 
    <field name="view_type">form</field> 
    <field name="view_mode">form</field> 
    <field name="view_id" ref="check_stock"/> 
    <field name="target">new</field> 
</record> 

Кнопка добавляется в порядке, но его нагрузки, как отключить, и поэтому при нажатии мастера нет вызова, если я вывожу кнопку из дерева, мастер называется ok, но мне нужно позвонить из order_line, потому что мне нужно передать контекст с помощью product_id строки, чтобы получить запас на каждом складе.

Я использую odoo10. Что я делаю неправильно?

ответ

1

Попробуйте это:

<xpath expr="/form/sheet/notebook/page[1]/field[@name='order_line']/tree position="inside"> 
    <button name="open_view_wizard" string="" type="object" icon="fa-archive" attrs="{'invisible':[('product_id','=', False)]}"/> 
</xpath> 

И затем добавить функцию open_view_wizard к вашей модели продажа и открыть мастер внутри этой функции: например, (Вы, вероятно, нужно изменить этот код немного).

def open_view_wizard(self, cr, uid, ids, context=None): 

      return { 
       'view_type': 'form', 
       'view_mode': 'form', 
       'res_model': 'sale_warehouse.check_stock_wizard', 
       'type': 'ir.actions.act_window', 
       'context': context 
      } 
Смежные вопросы