2013-05-06 4 views
2

나는 처음 3 단계에서 올바르게 작동하는 내 model.its로 작업 흐름을 생성하기 위해 openerp doc을 사용합니다. 예 : 'new','assigned','negotiation' 수준이지만 'won','lost' 수준에서는 작동하지 않습니다.OpenERP Workflow (ver 7)

여기에 모델 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() 

여기 & 여기 보이는 단계에서 제대로 issue.because 처음 3 개 버튼을 볼 수 있습니다 내보기 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> 

여기 그냥 ... <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> 

이 문제를 분류하는 저를 도와주세요 openerp 문서에서 여기 & 붙여 넣기를 복사하여 변경 내 work_flow의 xml.i입니다. 당신의 용이함을위한
감사

은 내가

+1

당신은뿐만 아니라 워크 플로우 인쇄를 넣을 수 있습니다 : 그것은 '협상'과 '협상'아닌가요? – Parthiv

+0

워크 플로우 페이지에 대해 openerp 도움말을 사용하여 정렬했습니다. –

+0

@PriyanRockZ : 동일한 문제에 직면하고 있습니다. 문제가 해결 되었습니까? – dirtyhandsphp

답변

0

내가 알고 ... 그것은 조금 늦은 (& 원 손실)에만 취소 할 3 stages.unable를 수행하거나 승인의 photo 봤죠를 부착. 그러나 나는 똑같은 문제가있었습니다.

버튼 상태가 잘못되었습니다.

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

안부 잉고