2016-08-08 3 views
1

다른보기의 동작을 호출하는 트리보기에서 "만들기"단추 앞이나 뒤에 단추를 추가하려고합니다.odoo에 버튼을 추가하는 방법은 무엇입니까?

하지만 헤더 태그를 사용하여 xml에서 odoo 헤더에 단추를 추가하려고하지 않았습니다.

+1

어떤보기에서 버튼을 추가 하시겠습니까? – mokiSRB

+0

안녕하세요 @ mokiSRB, 기본 단추를 만들기 전후에 단추를 추가하고 싶습니다. –

+1

이 버튼은 일반적인보기 확장 ('ir.ui.view' 레코드)에 배치 할 수 없습니다. 요구 사항을 충족 시키려면 전체 odoo 클라이언트 (QWeb보기)를 확장해야합니다. – CZoellner

답변

2

ListView.buttons QWEB 템플릿을 확장해야합니다. 새로운 뷰를 정의

openerp.module_name = function(instance){ 

instance.web.ListView.include({ 
    load_list: function(data) { 
     this._super(data); 
     if (this.$buttons) { 
      this.$buttons.find('.oe_my_button').off().click(this.proxy('do_the_job')) ; 
     } 
    }, 
    do_the_job: function() { 

     this.do_action({ 
      name: _t("View name"), 
      type: "ir.actions.act_window", 
      res_model: "object", 
      domain : [], 
      views: [[false, "list"],[false, "tree"]], 
      target: 'new', 
      context: {}, 
      view_type : 'list', 
      view_mode : 'list' 
     }); 
    } 
}); 
} 

: 버튼의 논리 (static/src/js에서 파일을 생성)를 정의하는

<?xml version="1.0" encoding="utf-8"?> 

<template xml:space="preserve"> 
    <t t-extend="ListView.buttons"> 
     <t t-jquery="button.oe_list_add" t-operation="after"> 
      <button t-if="widget.dataset.model == 'model_name'" class="oe_button oe_my_button oe_highlight" type="button">My Button</button> 
     </t> 
    </t> 
</template> 

사용 JavaScript :

버튼을 추가하는 static/src/xml 아래 Qweb을 템플릿을 정의 모듈 자산이 추가됩니다 ( module_name_view.xml) :

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 
     <template id="assets_backend_module_name" name="module_name assets" inherit_id="web.assets_backend"> 
     <xpath expr="." position="inside"> 
      <script type="text/javascript" src="/module_name/static/src/js/script.js"></script> 
     </xpath> 
    </template> 
</data> 

편집 __openerp__.py 및 추가 다음 절 : 자세한 내용은 Building Interface Extensions에서

'data': [ 
    'module_name_view.xml', 
    ... 
], 
'qweb': ['static/src/xml/*.xml'], 

봐.