Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

一个workflow的问题



  • 自认为对workflow还是比较熟。(以前做过)但是这次怎么也不成功,请各位老大帮我看看。
    症状是,显示按钮正常(workflow的显示也是正常的),就是点击按钮后,状态不能切换。
    py文件中
    [code]
    'state':fields.selection([
                                              ('new','新义工'),
                                              ('normal','正式义工'),
                                              ('advanced','高级义工')],'义工级别',readonly=True,select=True),
    [/code]
    workflow.xml
    [code]
    <?xml version="1.0" encoding="UTF-8"?>
    <openerp>
    <data>
            <record id="aflsyg_volunteer_workflow" model="workflow">
                <field name="name">aflsyg.volunteer.workflow</field>
                <field name="osv">aflsyg.volunteer</field>
                <field name="on_create">True</field>
            </record>
           
            <record id="act_volunteer_new" model="workflow.activity">
            <field name="wkf_id" ref="aflsyg_volunteer_workflow"/>
            <field name="flow_start">True</field>
            <field name="name">new</field>
            <field name="kind">function</field>
            <field name="action">write({'state':'new'})</field>
            </record>
       
            <record id="act_volunteer_normal" model="workflow.activity">
            <field name="wkf_id" ref="aflsyg_volunteer_workflow"/>
            <field name="name">normal</field>
            <field name="kind">function</field>
                <field name="action">write({'state':'normal'})</field>
            </record>
           
            <record id="act_volunteer_advanced" model="workflow.activity">
            <field name="wkf_id" ref="aflsyg_volunteer_workflow"/>
            <field name="name">advance</field>
            <field name="kind">function</field>
                <field name="action">write({'state':'advanced'})</field>
                <field name="flow_stop">True</field>
            </record>
             
            <record id="trans_new_normal" model="workflow.transition">
                <field name="act_from" ref="act_volunteer_new"/>
                <field name="act_to" ref="act_volunteer_normal"/>
                <field name="signal">be_normal</field>
            </record>

            <record id="trans_normal_advanced" model="workflow.transition">
                <field name="act_from" ref="act_volunteer_normal"/>
                <field name="act_to" ref="act_volunteer_advanced"/>
                <field name="signal">be_advanced</field>
            </record>        <!--  -->
    </data>
    </openerp>[/code]
    view.xml中
    [code]
    <button name="be_normal" string="晋升为正式义工" states="new" icon="gtk-convert"/>
    <button name="be_advanced" string="晋升为高级义工" states="normal" icon="gtk-convert"/>
    [/code]



  • 自认为对workflow还是比较熟。(以前做过)但是这次怎么也不成功,请各位老大帮我看看。
    症状是,显示按钮正常(workflow的显示也是正常的),就是点击按钮后,状态不能切换。
    py文件中
    [code]
    'state':fields.selection([
                                              ('new','新义工'),
                                              ('normal','正式义工'),
                                              ('advanced','高级义工')],'义工级别',readonly=True,select=True),
    [/code]
    workflow.xml
    [code]
    <?xml version="1.0" encoding="UTF-8"?>
    <openerp>
    <data>
            <record id="aflsyg_volunteer_workflow" model="workflow">
                <field name="name">aflsyg.volunteer.workflow</field>
                <field name="osv">aflsyg.volunteer</field>
                <field name="on_create">True</field>
            </record>
           
            <record id="act_volunteer_new" model="workflow.activity">
            <field name="wkf_id" ref="aflsyg_volunteer_workflow"/>
            <field name="flow_start">True</field>
            <field name="name">new</field>
            <field name="kind">function</field>
            <field name="action">write({'state':'new'})</field>
            </record>
       
            <record id="act_volunteer_normal" model="workflow.activity">
            <field name="wkf_id" ref="aflsyg_volunteer_workflow"/>
            <field name="name">normal</field>
            <field name="kind">function</field>
                <field name="action">write({'state':'normal'})</field>
            </record>
           
            <record id="act_volunteer_advanced" model="workflow.activity">
            <field name="wkf_id" ref="aflsyg_volunteer_workflow"/>
            <field name="name">advance</field>
            <field name="kind">function</field>
                <field name="action">write({'state':'advanced'})</field>
                <field name="flow_stop">True</field>
            </record>
             
            <record id="trans_new_normal" model="workflow.transition">
                <field name="act_from" ref="act_volunteer_new"/>
                <field name="act_to" ref="act_volunteer_normal"/>
                <field name="signal">be_normal</field>
            </record>

            <record id="trans_normal_advanced" model="workflow.transition">
                <field name="act_from" ref="act_volunteer_normal"/>
                <field name="act_to" ref="act_volunteer_advanced"/>
                <field name="signal">be_advanced</field>
            </record>        <!--  -->
    </data>
    </openerp>[/code]
    view.xml中
    [code]
    <button name="be_normal" string="晋升为正式义工" states="new" icon="gtk-convert"/>
    <button name="be_advanced" string="晋升为高级义工" states="normal" icon="gtk-convert"/>
    [/code]


  • 管理员

    把state字段中的readonly属性去掉。(不好意思,楼上的写法没错,selection 字段加readonly属性在这里完全没错)

    楼主最后证实自己的代码完全无误。



  • 去掉 readonly属性还是不行。
    PS
    现在搞定了,不是程序问题。
    只是以前我对state字段,命名重复了。后来虽说删了,还是影响了。
    这次重新建立数据库之后,就搞定了。
    谢谢校长


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待