make account.invoice form' no editable'发票状态是否已付款'

时间:2015-07-03 23:29:05

标签: button hide openerp edit odoo

我尝试使用account.invoice表格' no editable'发票状态是否已付款'。 这是我在acount.invoice类中的代码:

def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False):
        result=super(account_invoice, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
        if(view_type=='form'):
            invoice=self.pool.get('account.invoice')
            active_id=context.get('active_id',False)
            current_state=invoice.browse(cr,uid,active_id).state
            if current_state=="paid":
                result['arch']='''<form string="Invoice" edit="false" ....................></form>'''
        return result

但看起来像context.get(&#39; active_id&#39;,False)总是返回&#34; false&#34;。

提前感谢:)

1 个答案:

答案 0 :(得分:0)

您可以修改您不希望别人编辑的字段的XML,并为其提供如下属性:

<field name="your_field" attrs="{'readonly':[('state','in','paid')]}"/>

或者您可以从模型继承write方法并插入检查以查看当前状态并引发异常。

编辑: 您可以通过编辑表单隐藏/删除按钮

<form string="NAMEOFFORM" create="false" edit="false" version="7.0"></form>