2016-08-08 1 views
1

Я хочу добавить кнопку до или после кнопки «Создать» в дереве. Это вызывает действие другого вида.Как добавить кнопку в оду?

Но, поскольку я попробовал тег заголовка, не работает в xml, чтобы добавить кнопку в заголовок odoo.

+1

В каком виде вы хотите добавить кнопку? – mokiSRB

+0

Привет @mokiSRB, я хочу добавить кнопку до или после кнопки создания по умолчанию. –

+1

Эта кнопка не может быть помещена в обычные расширения вида (записи 'ir.ui.view'). Вам необходимо расширить весь клиент-клиент (вид QWeb) для выполнения вашего требования. – CZoellner

ответ

2

Необходимо удлинить шаблон ListView.buttons QWEB.

Определить шаблон Qweb под static/src/xml который добавляет кнопку:

<?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/js):

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' 
     }); 
    } 
}); 
} 

Определить новый вид что добавит активы модуля (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> 

Edit __openerp__.py и добавьте следующие разделы:

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

Посмотрите на Building Interface Extensions для более подробной информации.

 Смежные вопросы

  • Нет связанных вопросов^_^