Odoo Help


OpenERP Workflow (ver 7)

on 5/6/13, 9:39 AM 5,206 views

I go through openerp doc for create work flow to my model.its worked correctly in first 3 stages. ex : 'new','assigned','negotiation' but not worked for 'won','lost' levels.

here is my relevant codes in model class.i added state column to here as additionally.

class bpl_work_update(osv.osv): def mymod_new(self, cr, uid, ids):#trigger when save work update self.write(cr, uid, ids, {'state': 'new'}) return True

def mymod_assigned(self, cr, uid, ids):
    self.write(cr, uid, ids, {'state': 'assigned'})
    return True

def mymod_negotiation(self, cr, uid, ids):
    self.write(cr, uid, ids, {'state': 'negotiation'})
    return True

def mymod_won(self, cr, uid, ids):
    self.write(cr, uid, ids, {'state': 'won'})
    return True

def mymod_lost(self, cr, uid, ids):
    self.write(cr, uid, ids, {'state': 'lost'})
    return True

_name = "bpl.work.update"
_description = "BPL Work Update"
_columns = {
    'bpl_company_id':fields.many2one('res.company', 'Company', help='Company'),
    'bpl_estate_id':fields.many2one('bpl.estate.n.registration', 'Estate', help='Estate', domain="[('company_id','=',bpl_company_id)]", required=True),
    'bpl_division_id':fields.many2one('bpl.division.n.registration', 'Division', help='Division', domain="[('estate_id','=',bpl_estate_id)]", required=True),
    'ref_no': fields.char('Reference No', size=10,),
    'offered_date': fields.date('Offered Date'),
    'work_offers_id':fields.many2one('bpl.work.offer', 'Work Offer', domain="['&',('bpl_company_id','=',bpl_company_id),('bpl_estate_id','=',bpl_estate_id),'&',('bpl_division_id','=',bpl_division_id),'|',('gang_no','=',gang_no),('date_of_offer','=',offered_date)]"),
    'gang_no': fields.char('Gang No', size=10, required=True),
    'selected_tea_workers_update_line_ids': fields.one2many('bpl.selected.tea.workers.update.line', 'work_id', 'Tea Work Offers', ondelete="cascade"),
    'selected_rubber_workers_update_line_ids': fields.one2many('bpl.selected.rubber.workers.update.line', 'work_id', 'Rubber Offers', ondelete="cascade"),
    'selected_sundry_workers_update_line_ids': fields.one2many('bpl.selected.sundry.workers.update.line', 'work_id', 'Sundry Offers', ondelete="cascade"),
    'selected_other_workers_update_line_ids': fields.one2many('bpl.selected.other.workers.update.line', 'work_id', 'Sundry Offers', ondelete="cascade"),
    'casual_eligible': fields.boolean('Casual Eligible', help="Casual Eligible"),
    'state': fields.selection([('new', 'New'), ('assigned', 'Assigned'), ('negotiation', 'Negotiation'), ('won', 'Approved'), ('lost', 'Refused')], 'Workflow', readonly=True),

_defaults = {


here is relevant part of my view xml & seems here is the issue.because first 3 buttons visible correctly at the stages. but won/lost buttons are not shows there.

    <button name="mymod_assigned" string="Assigned" states="new"
        class="oe_highlight" type="workflow" />
    <button name="mymod_negotiation" string="In Negotiation"
        states="assigned" class="oe_highlight" type="workflow" />
    <button name="mymod_won" string="Approved" states="negotiating"
        class="oe_highlight" type="workflow" />
    <button name="mymod_lost" string="Refused" states="negotiating"
        class="oe_highlight" type="workflow" />

    <field name="state" widget="statusbar"
        statusbar_colors='{"new":"blue","assigned":"blue","negotiation":"blue","won":"red","lost":"red"}' />

here is my work_flow xml.i just copy & paste here from openerp documentation and changed only <field name="osv">bpl.work.update</field>

<?xml version="1.0" encoding="utf-8"?>

<!-- workflow -->

<record model="workflow" id="wkf_mymod">
    <field name="name">mymod.wkf</field>
    <field name="osv">bpl.work.update</field>
    <field name="on_create" eval='True' />

<!-- workflow activity -->

<record model="workflow.activity" id="act_new">
    <field name="wkf_id" ref="wkf_mymod" />
    <field name="flow_start" eval='True' />
    <field name="name">new</field>
    <field name="kind">function</field>
    <field name="action">mymod_new()</field>

<record model="workflow.activity" id="act_assigned">
    <field name="wkf_id" ref="wkf_mymod" />
    <field name="name">assigned</field>
    <field name="kind">function</field>
    <field name="action">mymod_assigned()</field>

<record model="workflow.activity" id="act_negotiation">
    <field name="wkf_id" ref="wkf_mymod" />
    <field name="name">negotiation</field>
    <field name="kind">function</field>
    <field name="action">mymod_negotiation()</field>

<record model="workflow.activity" id="act_won">
    <field name="wkf_id" ref="wkf_mymod" />
    <field name="name">won</field>
    <field name="kind">function</field>
    <field name="action">mymod_won()</field>
    <field name="flow_stop" eval='True' />

<record model="workflow.activity" id="act_lost">
    <field name="wkf_id" ref="wkf_mymod" />
    <field name="name">lost</field>
    <field name="kind">function</field>
    <field name="action">mymod_lost()</field>
    <field name="flow_stop" eval='True' />

<!-- workflow transition -->

<record model="workflow.transition" id="t1">
    <field name="act_from" ref="act_new" />
    <field name="act_to" ref="act_assigned" />
    <field name="signal">mymod_assigned</field>
    <field name="group_id" ref="group_checkroll_user" />

<record model="workflow.transition" id="t2">
    <field name="act_from" ref="act_assigned" />
    <field name="act_to" ref="act_negotiation" />
    <field name="signal">mymod_negotiation</field>
    <field name="group_id" ref="group_checkroll_manager" />

<record model="workflow.transition" id="t3">
    <field name="act_from" ref="act_negotiation" />
    <field name="act_to" ref="act_won" />
    <field name="signal">mymod_won</field>
    <field name="group_id" ref="group_checkroll_manager" />
<record model="workflow.transition" id="t4">
    <field name="act_from" ref="act_negotiation" />
    <field name="act_to" ref="act_lost" />
    <field name="signal">mymod_lost</field>
    <field name="group_id" ref="group_checkroll_manager" />


please help me to sort out this issue.

for your easiness i attached photo here.see that its only done 3 stages.unable to cancel or approved (won & lost)

On 5/8/13, 7:17 AM

'state': fields.selection([('new', 'New'), ('assigned', 'Assigned'), ('negotiation', 'Negotiation'), ('won', 'Approved'), ('lost', 'Refused')], 'Workflow', readonly=True),

Your code: state='negotiating'

<button name="mymod_won" string="Approved" **states="negotiating" **="" class="oe_highlight" type="workflow"/> <button name="mymod_lost" string="Refused" **states="negotiating" **="" class="oe_highlight" type="workflow"/> You must change states="negotiation"

thanks DNT.its worked :-)

on 5/8/13, 8:28 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 5/6/13, 9:39 AM
Seen: 5206 times
Last updated: 3/16/15, 8:10 AM