2017-10-23 12 views
5

私はOdoo 10eを使用しています。私はモジュールにjqueryプラグインを統合したい。外部jQueryプラグインをOdooのリストビューに追加するには?

jQueryプラグインjquery-resizable-columnsを統合したいと思います。それは簡単にテーブルの列のサイズを変更するのに役立ちます、そして、私は特定のモデルのリストビューにこれを適用したいです

プラグインを追加するにはどの方法を拡張する必要がありますか?

答えて

1

私は、Webモジュールにいくつかのウィジェットを拡張する必要があると思います。あなたが同様のにしたいプラグインを追加する必要がありますので、あなたは、sort_by_columnとして宣言イベントがある見ることができるように

instance.web.ListView = instance.web.View.extend(/** @lends instance.web.ListView# */ { 
    _template: 'ListView', 
    display_name: _lt('List'), 
    defaults: { 
     // records can be selected one by one 
     'selectable': true, 
     // list rows can be deleted 
     'deletable': false, 
     // whether the column headers should be displayed 
     'header': true, 
     // display addition button, with that label 
     'addable': _lt("Create"), 
     // whether the list view can be sorted, note that once a view has been 
     // sorted it can not be reordered anymore 
     'sortable': true, 
     // whether the view rows can be reordered (via vertical drag & drop) 
     'reorderable': true, 
     'action_buttons': true, 
     //whether the editable property of the view has to be disabled 
     'disable_editable_mode': false, 
    }, 
    view_type: 'tree', 
    events: { 
     'click thead th.oe_sortable[data-id]': 'sort_by_column' 
    }, 

    // [...] 

    sort_by_column: function (e) { 
     e.stopPropagation(); 
     var $column = $(e.currentTarget); 
     var col_name = $column.data('id'); 
     var field = this.fields_view.fields[col_name]; 
     // test whether the field is sortable 
     if (field && !field.sortable) { 
      return false; 
     } 
     this.dataset.sort(col_name); 
     if($column.hasClass("sortdown") || $column.hasClass("sortup")) { 
      $column.toggleClass("sortup sortdown"); 
     } else { 
      $column.addClass("sortdown"); 
     } 
     $column.siblings('.oe_sortable').removeClass("sortup sortdown"); 

     this.reload_content(); 
    }, 

:ファイル/addons/web/static/src/js/view_list.jsに行く場合は、テーブルをレンダリングするウィジェットを見ることができます方法。

そして、あなたがウィジェットを継承し、修正疑問を持っている場合は、Odoo Documentation

+0

ありがとう@ChesuCR ..これは私が探していたもの、これをどのように構築するかという考えです。それは確かに私を助けるだろう – Ancient

0

あなたの場合、あなたが必要です。

新しいモジュールを作成したり、カスタムモジュールにすでに

を変更するには、file.jsとfile.xmlを作成します。

ファイルのxmlでは、この

<?xml version="1.0" encoding="utf-8"?> 
<odoo> 
    <template id="assets" inherit_id="web.assets_backend"> 
    <xpath expr="." position="inside"> 
    <link rel="stylesheet" href="/module_name/static/src/css/css_file.css"/> 
     <script type="text/javascript" src="/module_name/static/src/js/js_file.js"></script> 
    </xpath> 
    </template> 
</odoo> 

を記述する必要があり、範囲を必要とした後Odooのlist_view.jsは、あなたのプラグインを統合します。

+0

はいに行くことができます 'そして、あなたは範囲を必要とした後Odooのlist_view.jsがあなたのplugin.'を統合するために、これは私がしたい部分です知っている – Ancient

+0

私は明日それを行います。 – jo541

+0

プラグインを追加するにはどのメソッドを拡張する必要がありますか – Ancient

1

.jsファイルでは、最初に特定のリストビューのjを拡張する必要があります。その後、その.jsファイルにカスタムモデル名を付けて実行します。

+0

プラグインを追加するにはどのメソッドを拡張する必要がありますか – Ancient

+0

リストビューではweb.ListView jsを拡張することができ、jsではrelaventメソッドを使用できますそのjsファイルからそのメソッドを使用できますか? –

関連する問題