*模型代码
addons/stock/stock.py
----------------
#移库单执行移库动作(弹出详细框)
@api.cr_uid_ids_context
def do_enter_transfer_details(self, cr, uid, picking, context=None):
pass...
#开启确认框操作(调用)
return self.pool['stock.transfer_details'].wizard_view(cr, uid, created_id, context)
------------------
addons/stock/wizard/stock_transfer_detail.py
------------------
#定义库存移动详情弹出窗体动作
@api.multi
def wizard_view(self):
#采用标准的ref 调用外部标识对象方法
view = self.env.ref('stock.view_stock_enter_transfer_details')
#用字典方式代替了平时的xml定义
return {
'name': _('Enter transfer details'),
'type': 'ir.actions.act_window',
#列表时采用普通列表
'view_type': 'form',
#列出允许使用的视图模式
'view_mode': 'form',
#响应的模型
'res_model': 'stock.transfer_details',
#列出视图,这里只有一对,就用form视图
'views': [(view.id, 'form')],
'view_id': view.id,
#新开窗口
'target': 'new',
#指定打开form视图打开的记录
'res_id': self.ids[0],
#带上上下文
'context': self.env.context,
}
------------------------
* 对应的表单视图
addons/stock/wizard/stock_transfer_detail.xml
--------------------------
<record id="view_stock_enter_transfer_details" model="ir.ui.view">
<field name="name">Enter transfer details</field>
<field name="model">stock.transfer_details</field>
<field name="arch" type="xml">
<form string="Transfer details" version="7">
....
</form>
</field>
</record>
*简约说明