2017-01-26 3 views
1

Я хотел бы обычай просмотра списка отступы в моем пользовательском модуле, поэтому я продолжил, как следующим образом:Применение JS настройки только для пользовательского модуля или взглядов - Odoo

my_custom_module.js:

odoo.define('my_custom_module', function(require){ 
    'use strict'; 
    var core = require('web.core'); 
    var List = core.view_registry.get('list'); 
    var QWeb = core.qweb; 
    List.List.include({ 
     render: function() { 
      var self = this; 
      this.$current.html(
       QWeb.render('ListView.rows', _.extend({}, this, { 
         render_cell: function() { 
          return self.render_cell.apply(self, arguments); } 
        }))); 
      this.pad_table_to(1); 
     }, 
    }); 
}); 

И в my XML:

<?xml version="1.0" encoding="UTF-8"?> 
<odoo> 
    <template id="assets_backend" name="my_custom_module assets" inherit_id="web.assets_backend"> 
     <xpath expr="." position="inside"> 
      <script src="/my_custom_module/static/src/js/my_custom_module.js" type="text/javascript" /> 
     </xpath> 
    </template> 
</odoo> 

Но проблема в том, что это касается всех моих модулей Odoo!

Как я могу указать, что настройка применяется только к моему my_custom_module?

Спасибо за помощь :)

ответ

0

Используя List.List.include({ ... вы расширить уже существующую функциональность списка виджетов. Что вам нужно сделать, это create your own widget, который расширяет список и назначает его вашему виду.

Если вы не хотите, и хотите продолжить этот подход, вы можете добавить элемент к своему представлению, который будет использоваться в качестве крюк, который вы можете использовать, является крючком, поэтому вы можете применять изменения только к вашим представлениям. Например вставить элемент на ваш взгляд:

<div style="visibility: hidden" id="my_view" /> 

, а затем в вашем JavaScript:

if ($("#my_view").length) { 

// your element exists, that means the javascript code runs on your view and your custom code should be executed. 

} else { 

// another list is being rendered and you should not run any custom code. 
} 
Смежные вопросы