我创建了一个具有fieldstate的模块,它具有以下属性“draft”、“open”、“paid”、“cancel”。在xml中,我有一个按钮confirm,当用户单击此按钮时,状态必须从“draft”更改为“open”。但是,代码不起作用,状态不变。有什么线索吗? 谢谢
以下是我的代码:
(一)模块.py在
'state': fields.selection([('draft', "New"), ('open', "Awaiting Payments"), ('paid', "Paid"), ('cancel', "Cancelled")], 'Status', default='draft', track_visibility='onchange'),
def action_draft(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'state':'draft'})
def action_open(self , cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'state':'open'})
def action_paid(self , cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'state':'paid'})
def action_cancel(self , cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'state':'cancel'})
(二)模块.xml在
^{pr2}$(三)工作流.xml在
<openerp>
<data>
<record model="workflow" id="wkf_land2">
<field name="name">m.wkf.land2</field>
<field name="osv">m.land2</field>
<field name="on_create">True</field>
</record>
<!-- Draft-->
<record model="workflow.activity" id="land_draft">
<field name="name">draft</field>
<field name="wkf_id" ref="wkf_land2"/>
<field name="flow_start" eval="True"/>
</record>
<!-- Awaiting Payments-->
<record model="workflow.activity" id="land_open">
<field name="name">open</field>
<field name="wkf_id" ref="wkf_land2"/>
<field name="kind">function</field>
<field name="action">write({'state':'open'})</field>
</record>
<!--Paid-->
<record model="workflow.activity" id="land_paid">
<field name="name">paid</field>
<field name="wkf_id" ref="wkf_land2"/>
<field name="kind">function</field>
<field name="action">write({'state':'paid'})</field>
<field name="flow_stop">True</field>
</record>
<!--Cancel-->
<record model="workflow.activity" id="land_cancel">
<field name="name">cancel</field>
<field name="wkf_id" ref="wkf_land2"/>
<field name="kind">function</field>
<field name="action">write({'state':'cancel'})</field>
<field name="flow_stop">True</field>
</record>
<!-- WORKFLOW TRANSITION -->
<record model="workflow.transition" id="land_draft_to_open">
<field name="act_from" ref="land_draft"/>
<field name="act_to" ref="land_open"/>
<field name="condition">True</field>
<field name="signal">button_confirm</field>
</record>
<record model="workflow.transition" id="land_open_to_paid">
<field name="act_from" ref="land_open"/>
<field name="act_to" ref="land_paid"/>
<field name="condition">True</field>
<field name="signal">button_register</field>
</record>
<record model="workflow.transition" id="land_paid_to_cancel">
<field name="act_from" ref="land_paid"/>
<field name="act_to" ref="land_cancel"/>
<field name="signal">button_cancel</field>
<field name="condition">True</field>
</record>
<record model="workflow.transition" id="land_draft_to_cancel">
<field name="act_from" ref="land_draft"/>
<field name="act_to" ref="land_cancel"/>
<field name="signal">button_cancel</field>
<field name="condition">True</field>
</record>
<record model="workflow.transition" id="land_open_to_cancel">
<field name="act_from" ref="land_open"/>
<field name="act_to" ref="land_cancel"/>
<field name="signal">button_cancel</field>
<field name="condition">True</field>
</record>
</data>
</openerp>
按钮的名称应该与函数的名称相同。在
示例:
以及
^{pr2}$相关问题 更多 >
编程相关推荐