我通过openerp doc为我的模型创建工作流程。它在前3个阶段正常工作。
例如:'new','assigned','negotiation'
但不适用于'won','lost'
级别。
这是模型class.i中的相关代码。此处另外添加了州列。
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()
这是我的观点的相关部分xml&似乎这里是问题。因为前三个按钮在阶段正确可见。但赢了/丢失按钮不是那里的节目。
<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>
这是我的work_flow xml.i只是复制&amp;从openerp文档粘贴此处并仅更改<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>
请帮我解决这个问题。
感谢
为了您的轻松,我在这里附上。看到它只完成了3个阶段。无法取消或批准(赢得和失去)
答案 0 :(得分:0)
我知道......现在有点晚了。但我遇到了同样的问题。
按钮状态错误。这是“谈判”而不是“谈判”:
<button name="mymod_won" string="Approved" states="negotiation"
class="oe_highlight" type="workflow" />
<button name="mymod_lost" string="Refused" states="negotiation"
class="oe_highlight" type="workflow" />
祝你好运 INGO