Odoo 8 - 在发票供应商表格中添加按钮

时间:2017-07-25 13:01:06

标签: inheritance openerp odoo-8 odoo-view

我尝试按文档说明添加,当我更新模块时,它不起作用。

<record id="some_example_id" model="ir.ui.view"> 
    <field name="name">example.name</field> 
    <field name="model">account.invoice</field> 
    <field name="inherit_id" ref="account.invoice_supplier_form" /> 
    <field name="arch" type="xml"> 
        <data> 
            <button name="invoice_cancel" position="after"> 
                <button name="test_button" states="draft,proforma2,open" string="test" groups="base.group_no_one" class="oe_highlight"/>
             </button> 
        </data> 
    </field> 
</record> 

Exactly here

4 个答案:

答案 0 :(得分:0)

你的代码对我来说似乎很好。您可以尝试以下提示。

  • 确保清单文件中给出了xml文件名。
  • 活动调试器模式。
  • 从按钮临时删除 groups =&#34; base.group_no_one&#34; 并升级您的模块。

仅供注意:

您的按钮会调用工作流程,因为您没有为按钮提供类型属性。如果你想直接调用python函数,那么我们需要在按钮中添加属性,如

type="object"

答案 1 :(得分:0)

使用xpath表达式来定位并为你添加元素。

    <record id="some_example_id" model="ir.ui.view"> 
        <field name="name">example.name</field> 
        <field name="model">account.invoice</field> 
        <field name="inherit_id" ref="account.invoice_supplier_form" /> 
        <field name="arch" type="xml"> 
                <!-- using xpath target the element that you want to put button inside
                     or after or before ex: header -->  
                <xpath expr="//header" position="inside">
                    <button name="test_button" states="draft,proforma2,open" string="test" groups="base.group_no_one" class="oe_highlight"/>
                </xpath>
        </field> 
    </record> 

答案 2 :(得分:0)

只需从该按钮中删除组,然后按钮就会显示。

<button name="invoice_cancel" position="after"> 
    <button name="test_button" states="draft,proforma2,open" string="test" class="oe_highlight"/>
</button> 

答案 3 :(得分:0)

不要忘记将您的xml文件添加到Odoo模块清单文件__openerp__.py__manifest__.py下的较新版本data

{
    'author': 'me',
    'name': 'My Module',
    'depends': [base],
    # and so on
    'data': [
        'my/path/to/my/views.xml',
        'views/account_invoice_views.xml'  # as in the odoo guideline
    ]
}