2017-10-23 10 views
2

나는 Odoo 10e를 사용하고 있습니다. 목록보기 또는 특정 목록보기에서만 하나 이상의 항목을 삭제하려고 할 때마다 간단한 기능을 원합니다. 팝업 창에서 삭제 된 항목을 모두 표시하여 이름을 팝업 창에 표시하여 사용자가 삭제할 항목을 빠르게 검토 할 수있게하려고합니다. 사용자가 목록보기에서 세부 정보를 볼 수 있지만이 삭제 될 것입니다 모델 창 모양에서 사용자에게 엿볼주고 싶습니다. 삭제 하시겠습니까?팝업 창에서 삭제 된 항목 표시

사용자가 확인을 클릭하면 정상적인 삭제 사례가 작동합니다.

지금까지 연구하고 작업 한 결과, 웹 모듈의 list_view.js에있는 do_delete 메서드를 재정의하는 것과 관련하여 아이디어가 있어야합니다. 하지만 난 Odoo에 대한 자바 스크립트 재정의에 대해 많이 알지 못했다.

+0

모든 방법으로 귀하의 Odoo를 삭제 하시겠습니까? – jo541

+0

예제를 만들려고합니다. 그래서 모든 것이/특정보기에 대해 알려 주면 좋을 것입니다. – Ancient

+0

V10 커뮤니티입니까? – jo541

답변

3

이것은 내가하는 방법의 예입니다.

모델의 name_get 및 레코드 ID (이 이름 목록)를 선택한 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'. 또한 모델명이 아닌 다른 필드를 가져오고 싶다면 알려 주실 수 있습니다 – Ancient

+0

import 'var model = require ('web.DataModel '); 그리고'.call ('name_get ', ... '에 의해 .call ('읽기 ', [ids, ['name ','display_name '], this.dataset.get_context()])' – jo541

+0

감사합니다 각하, 넌 훌륭해! – Ancient