2017-09-08 41 views
2

我一直在用this tutorial構建Odoo 9.1模塊。但是,我創建了由該指令的工作流程不工作(當我點擊確認按鈕,沒有任何反應,沒有錯誤日誌等)服務器操作的工作流程在Odoo 9.1上不起作用

下面是相關的代碼:

models.py(在Session類)

state = fields.Selection([ 
    ('draft', "Draft"), 
    ('confirmed', "Confirmed"), 
    ('done', "Done"), 
]) 

@api.multi 
def action_draft(self): 
    self.state = 'draft' 

@api.multi 
def action_confirm(self): 
    self.state = 'confirmed' 

@api.multi 
def action_done(self): 
    self.state = 'done' 

academy.xml(在會話形式報頭)

<header> 
    <button name="action_draft" type="workflow" 
      string="Reset to draft" 
      states="confirmed,done"/> 
    <button name="action_confirm" type="workflow" 
      string="Confirm" states="draft" 
      class="oe_highlight"/> 
    <button name="action_done" type="workflow" 
      string="Mark as done" states="confirmed" 
      class="oe_highlight"/> 
    <field name="state" widget="statusbar"/> 
</header> 

session_workflow.xml

<?xml version="1.0" encoding="UTF-8"?> 
<openerp> 
    <data> 
     <record model="workflow" id="wkf_session"> 
      <field name="name">OpenAcademy sessions workflow</field> 
      <field name="osv">academy.session</field> 
      <field name="on_create">True</field> 
     </record> 

     <record model="ir.actions.server" id="set_session_to_draft"> 
      <field name="name">Set session to Draft</field> 
      <field name="model_id" ref="model_academy_session"/> 
      <field name="code"> 
model.search([('id', 'in', context['active_ids'])]).action_draft() 
      </field> 
     </record> 
     <record model="workflow.activity" id="draft"> 
      <field name="name">Draft</field> 
      <field name="wkf_id" ref="wkf_session"/> 
      <field name="flow_start" eval="True"/> 
      <field name="kind">dummy</field> 
      <field name="action"></field> 
      <field name="action_id" ref="set_session_to_draft"/> 
     </record> 

     <record model="ir.actions.server" id="set_session_to_confirmed"> 
      <field name="name">Set session to Confirmed</field> 
      <field name="model_id" ref="model_academy_session"/> 
      <field name="code"> 
model.search([('id', 'in', context['active_ids'])]).action_confirm() 
      </field> 
     </record> 
     <record model="workflow.activity" id="confirmed"> 
      <field name="name">Confirmed</field> 
      <field name="wkf_id" ref="wkf_session"/> 
      <field name="kind">dummy</field> 
      <field name="action"></field> 
      <field name="action_id" ref="set_session_to_confirmed"/> 
     </record> 

     <record model="ir.actions.server" id="set_session_to_done"> 
      <field name="name">Set session to Done</field> 
      <field name="model_id" ref="model_academy_session"/> 
      <field name="code"> 
model.search([('id', 'in', context['active_ids'])]).action_done() 
      </field> 
     </record> 
     <record model="workflow.activity" id="done"> 
      <field name="name">Done</field> 
      <field name="wkf_id" ref="wkf_session"/> 
      <field name="kind">dummy</field> 
      <field name="action"></field> 
      <field name="action_id" ref="set_session_to_done"/> 
     </record> 

     <record model="workflow.transition" id="session_draft_to_confirmed"> 
      <field name="act_from" ref="draft"/> 
      <field name="act_to" ref="confirmed"/> 
      <field name="signal">confirm</field> 
     </record> 
     <record model="workflow.transition" id="session_confirmed_to_draft"> 
      <field name="act_from" ref="confirmed"/> 
      <field name="act_to" ref="draft"/> 
      <field name="signal">draft</field> 
     </record> 
     <record model="workflow.transition" id="session_done_to_draft"> 
      <field name="act_from" ref="done"/> 
      <field name="act_to" ref="draft"/> 
      <field name="signal">draft</field> 
     </record> 
     <record model="workflow.transition" id="session_confirmed_to_done"> 
      <field name="act_from" ref="confirmed"/> 
      <field name="act_to" ref="done"/> 
      <field name="signal">done</field> 
     </record> 
     <record model="workflow.transition" id="session_auto_confirm_half_filled"> 
      <field name="act_from" ref="draft"/> 
      <field name="act_to" ref="confirmed"/> 
      <field name="condition">taken_seats &gt; 50</field> 
     </record> 
    </data> 
</openerp> 

出了什麼問題?根據信號值

回答

2

改變按鈕名稱

代碼:

<field name="signal">draft</field> 
<button name="action_draft"... 

變「action_draft」到「草案」

單擊該按鈕時,它會發送按鈕名稱一個信號,所以它們必須是相同的。

相關問題