<p>如果我想在屏幕中的选定行上运行一些代码,我将使用带有<code>client_action_multi</code>的向导。这里的<a href="http://bazaar.launchpad.net/~zaber/openobject-addons/main/view/2972/promise_date/wizard/wizard_sanity_checked.py" rel="nofollow">a wizard I wrote</a>只是在选股时设置了一个“健全检查”标志:</p>
<pre><code>import wizard
import pooler
def _set_flags(self, cr, uid, data, context):
stock_picking_obj = pooler.get_pool(cr.dbname).get('stock.picking')
move_ids = data['ids']
picking_ids = stock_picking_obj.search(
cr,
uid,
[('move_lines', 'in', move_ids)])
stock_picking_obj.write(cr, uid, picking_ids, {'sanity_checked': True})
return {}
class sanity_checked(wizard.interface):
states = {
'init': {
'actions': [_set_flags],
'result': {'type': 'state', 'state':'end'}
},
}
sanity_checked('promise.date.sanity.checked')
</code></pre>
<p>我<a href="http://bazaar.launchpad.net/~zaber/openobject-addons/main/view/2972/promise_date/stock_view.xml#L210" rel="nofollow">configure the wizard</a>与<code>client_action_multi</code>一起使用,以便可以在列表中的选定记录上执行它:</p>
^{pr2}$
<p>要实际运行向导,请单击菜单栏中的“操作”按钮。在</p>