Odoo 9中的工作流

2024-10-05 10:49:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个具有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>

Tags: tonamerefidfieldmodelopenrecord

热门问题