单击按钮(绿色箭头)后,它会在新的浏览器选项卡中启动一个URL,这是所需的行为,但按钮本身将被禁用。当我右键单击禁用按钮,然后选择"检查元素",我看到:
<button disabled="disabled" type="button" class="" title="Go!">
看起来OpenERP添加了属性&#34; disabled&#34;按钮功能&#34; action_go&#34;回报。
当然,我希望我的按钮在点击后保持启用状态。我怎么能这样做?
以下是表单上的样子:
以下是定义按钮的xml代码部分:
<!-- mrp_bom -->
<record id="adamson_mrp_bom_form_view" model="ir.ui.view">
<field name="name">adamson.mrp.bom.form.view</field>
<field name="model">mrp.bom</field>
<field name="type">form</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view" />
<field name="arch" type="xml">
<xpath expr="//notebook/page[@string='Components']/field/tree[@string='Components']/field[@name='sequence']" position="before" >
<field name="flag_bom_present" invisible="1" />
<button class="oe_inline oe_stat_button" type="object" readonly="0" string="Go!" icon="gtk-go-forward" name="action_go"
attrs="{'invisible':[('flag_bom_present','=',False)]}" />
</xpath>
这是按钮操作代码:
class mrp_bom_line(osv.osv):
_inherit = 'mrp.bom.line'
def action_go(self, cr, uid, ids, context=None):
bom_obj = self.pool.get('mrp.bom')
action_obj = self.pool.get('ir.actions.act_window')
id_s = action_obj.search(cr, uid, [('name', '=','Bill of Materials' ), ('context', '=','{}' )])
for rec in action_obj.browse(cr, uid, id_s, context=context):
action = rec.id
url = '/web#id=%s&view_type=form&model=mrp.bom&action=' + str(action)
for bom_line in self.browse(cr, uid, ids, context=context):
if bom_line.product_id.default_code > '300':
bom_ids = bom_obj.search(cr, uid, [('product_id', '=', bom_line.product_id.id)], context=context)
if bom_ids:
return {'type': 'ir.actions.act_url',
'res_model': 'ir.actions.act_url',
'url':url % bom_ids[0] ,
'nodestroy': True,
'target': 'new'}
return True
答案 0 :(得分:0)
在openerp 7中对我来说同样的问题。
但: 如果将按钮放在树中,它将无法工作。如果您将其放在表单上,则无法自动禁用&#34;
这是因为修复了错误: https://bugs.launchpad.net/openerp-web/+bug/1078157