Odoo Help

Welcome!

This community 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.

2

OpenERP Workflow (ver 7)

By
priyankahdp
on 5/6/13, 9:39 AM 5,055 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)

2
DNTQ
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 :-)

priyankahdp
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 community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

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