Skip to Content
This question has been flagged
1 Reply
8370 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 = {
             'bpl_company_id':_default_company,
             'offered_date':fields.date.context_today,
             }

bpl_work_update()

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.

<header>
    <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_visible="new,assigned,negotiation,won,lost"
        statusbar_colors='{"new":"blue","assigned":"blue","negotiation":"blue","won":"red","lost":"red"}' />
</header>

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"?>
<openerp>
<data>

<!-- 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' />
</record>

<!-- 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>

<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>

<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>

<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>

<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' />
</record>

<!-- 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>

<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>

<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>
'won','lost'
<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" />
</record>


</data>
</openerp>

please help me to sort out this issue.
thanks

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

Avatar
Discard
Best Answer

'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"

Avatar
Discard
Author

thanks DNT.its worked :-)

Related Posts Replies Views Activity
0
Mar 15
2884
0
Dec 17
4699
1
Mar 15
8277
2
Dec 23
10960
3
Jul 22
20617