2016-12-28 8 views
0

新しいツリービューを設定する関数を実行しようとしています。私は、関数を実行して、1つのボタンだけで行われるツリービューにリダイレクトする必要があります。それをして私を助けてください。Openerpボタンクリック時の他のビューへの再入力

My機能は、ボタン

<record model="ir.ui.view" id="edit_leave_score_card_form"> 
      <field name="name">leave.score.card.form</field> 
      <field name="model">leave.score.card</field> 
      <field name="arch" type="xml"> 
       <form string="Leave Score Card" create="false" edit="false" version="7.0"> 
       <sheet> 
        <button string="Generate" type="object" name="populate_values" class="oe_highlight"/>       


        </sheet> 
        </form> 
      </field> 
     </record> 

私がリダイレクトされますする必要がツリービューで

def populate_values(self, cr, uid, ids, context={}): 

     result = {'value': {}} 
     today = datetime.datetime.now() 
     tt=today.date() 
     emps=self.pool.get('hr.employee').search(cr, uid, [('current_status','=','active')], context=context) 
     if emps: 
      #... 
      #... 
      #... 
      return { 
       'name':_("leave.score.card.tree"), 
       'view_mode': 'tree', 
       'view_id': '%(open_leave_score_card_tree)d', 
       'views': [('tree'),('graph')], 
       'view_type': 'graph', 
       'res_id' : '%(open_leave_score_card)d', 
       'res_model': 'leave.score.card', 
       'type': 'ir.actions.act_window', 
       'target': 'new', 
      } 

フォームビューである

<record model="ir.ui.view" id="view_leave_score_card_tree"> 
      <field name="name">leave.score.card.tree</field> 
      <field name="model">leave.score.card</field> 
      <field name="arch" type="xml"> 

      <tree string="Leave Score Card To the Date" create="false" edit="false" colors="red:available_medical &lt; 0.0; red:available_casual &lt; 0.0">      
         <field name="employee_id" /> 
         <field name="category_id" /> 
         <field name="taken_medical" /> 
         <field name="taken_casual" /> 
         <field name="taken_annual" /> 
         <field name="taken_spc" />  
         <field name="available_medical" /> 
         <field name="available_casual" /> 
         <field name="available_annual" /> 
         <field name="available_spc" /> 
         <field name="sec_id" invisible="1" /> 


       </tree> 
      </field> 
     </record> 

アクションウィンドウ

<record id="open_leave_score_card" model="ir.actions.act_window"> 
      <field name="name">Leave Score Card Form</field> 
      <field name="type">ir.actions.act_window</field> 
      <field name="res_model">leave.score.card</field> 
      <field name="view_type">form</field> 
      <field name="view_mode">form</field> 

     </record> 

     <record id="open_leave_score_card_tree" model="ir.actions.act_window"> 
      <field name="name">Leave Score Card Tree</field> 
      <field name="type">ir.actions.act_window</field> 
      <field name="res_model">leave.score.card</field> 
      <field name="view_type">form</field>    
      <field name="view_mode">tree,graph</field> 
      <field name="view_id" eval="view_leave_score_card_tree"/> 
      <field name="search_view_id" ref="view_leave_score_card_search"/> 
     </record> 

ボタンコールは完全にそのための任意の関数を書くこと

答えて

1

不要をリダイレクトないので、私は間違っていた場所を私に教えてください。私はあなたがボタンをクリックしている間、従業員のスコアカードを印刷したいと思います。

スコアカードの更新アクションは次のとおりです。

<record id="open_leave_score_card_tree" model="ir.actions.act_window"> 
    <field name="name">Leave Score Card Tree</field> 
    <field name="type">ir.actions.act_window</field> 
    <field name="res_model">leave.score.card</field> 
    <field name="view_type">form</field>    
    <field name="view_mode">tree,graph</field> 
    <field name="view_id" eval="view_leave_score_card_tree"/> 
    <field name="search_view_id" ref="view_leave_score_card_search"/> 
    <field name="context">{ 
       'search_default_employee_id': [active_id], 
       'default_employee_id': active_id, 
       'active_test': False,} 
    </field> 
</record> 

次に、xmlのボタンコードを次のように変更します。

<button string="Generate" type="action" name="%(open_leave_score_card_tree)d" class="oe_highlight"/>       

機能を削除する必要はありません。そして、何も変更せずに既存のコードでそれをやりたいのであれば、関数から戻ってくる動的アクションでドメインを設定してください。

あなたの関数では、view_typeと間違って書かれていますが、リストビューを返す場合はグラフではありません。

def populate_values(self, cr, uid, ids, context={}): 
    today = datetime.datetime.now() 
    tt=today.date() 
    emps=self.pool.get('hr.employee').search(cr, uid, [('current_status','=','active')], context=context) 
    if emps: 
     return { 
      'name':_("leave.score.card.tree"), 
      'view_mode': 'tree', 
      'view_id': '%(open_leave_score_card_tree)d', 
      'views': [('tree'),('graph')], 
      'view_type': 'form', 
      'res_id' : '%(open_leave_score_card)d', 
      'res_model': 'leave.score.card', 
      'type': 'ir.actions.act_window', 
      'domain' : [('employee_id','in', ids)], 
      'target': 'new', 
     } 
    return True 
関連する問題