2017-01-26 1 views
1

Je voudrais Voir la liste personnalisée de rembourrage dans mon module personnalisé, donc je continuai comme suit:Appliquer la personnalisation JS uniquement pour le module personnalisé ou vues - 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); 
     }, 
    }); 
}); 

Et en mon 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> 

Mais le problème est que cela s'applique à tous mes modules Odoo!

Comment puis-je spécifier que la personnalisation s'applique uniquement à my_custom_module?

Merci pour l'aide :)

Répondre

0

En utilisant List.List.include({ ... vous étendre les fonctionnalités déjà existantes du widget List. Ce que vous avez à faire est create your own widget qui étend la liste et l'assigner à votre vue

Si vous ne voulez pas et que vous voulez continuer avec l'approche que vous avez déjà, vous pouvez insérer un élément à votre vue qui sera utilisé comme un crochet que vous pouvez utiliser est un crochet afin que vous puissiez appliquer les modifications uniquement à vos vues. Par exemple insérer un élément dans votre vue:

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

Et puis dans votre 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. 
}