2017-10-23 14 views
2

私はOdoo 10eを使用しています。リストビューまたは特定のリストビューから1つまたは複数のアイテムを削除したいときはいつでも、シンプルな機能が必要です。私は、彼が削除しようとしているものをユーザーが素早く見直すことができるように、ポップアップウィンドウに名前を表示するために削除されたすべてのアイテムを表示したい。私はユーザーがリストビューで詳細を見ることができることを知っているが、私はこれが削除されるモデルウィンドウの形でユーザーに垣間見ることをしたい。削除してもよろしいですか?ポップアップウィンドウで削除されたアイテムを表示する

ユーザーが[確認]をクリックすると、通常の削除ケースが機能するはずです。

これまでの研究では、Webモジュールのlist_view.jsdo_deleteメソッドをオーバーライドする方法が必要であると考えました。しかし、私はOdooのJavaScriptのオーバーライドについてはあまり知らなかった。

+0

あなたのOdooのすべてのメソッド削除に必要ですか? – jo541

+0

例を作成しようとしています。だから、あなたが私にすべての/と特定のビューについて知らせてくれるなら、それは良いでしょう。 – Ancient

+0

それはV10コミュニティのためのものですか? – jo541

答えて

3

これは私がどのようにそれを行うかの例です。

あなたのモデルとレコードID(この名前のリスト)のname_getを呼び出し、選択したIDの情報でメッセージを確認するテキストを変更します。

do_delete: function (ids) { 

    new Model(this.model) 
    .call('name_get', [ids, this.dataset.get_context()]).done(function (names) { 


     var text = _t("Do you really want to remove these records?") + ' '+ names.join(' \n') 
     if (!(ids.length && confirm(text))) { 
      return; 
     } 
     var self = this; 

     return $.when(this.dataset.unlink(ids)).done(function() { 
      _(ids).each(function (id) { 
       self.records.remove(self.records.get(id)); 
      }); 
      // Hide the table if there is no more record in the dataset 
      if (self.display_nocontent_helper()) { 
       self.no_result(); 
      } else { 
       if (self.records.length && self.current_min === 1) { 
        // Reload the list view if we delete all the records of the first page 
        self.reload(); 
       } else if (self.records.length && self.dataset.size() > 0) { 
        // Load previous page if the current one is empty 
        self.pager.previous(); 
       } 
       // Reload the list view if we are not on the last page 
       if (self.current_min + self._limit - 1 < self.dataset.size()) { 
        self.reload(); 
       } 
      } 
      self.update_pager(self.dataset); 
      self.compute_aggregates(); 
     }); 
    });; 
}, 
+0

私はこのエラー「ReferenceError:Model is not defined」を取得しています。また、モデルから 'Name'以外のフィールドを取得したい場合は、私に知らせてください。 – Ancient

+0

' var model = require( 'web.DataModel'); 'を必要とし、' .call( 'name_get'、 ... 'によって '.call(' read '、[ids、[' name '、' display_name ']、this.dataset.get_context()])' – jo541

+0

よろしくお願いします。あなたは素晴らしいです! – Ancient

関連する問題