Openerp 在弹出窗口中显示要删除的项目

Openerp 在弹出窗口中显示要删除的项目,openerp,odoo-10,odoo-view,Openerp,Odoo 10,Odoo View,我用的是奥多10e。我想要一个简单的功能,每当我想删除一个或多个项目,然后从列表视图或从一个特定的列表视图只。我想显示所有被选中删除的项目,在弹出窗口中显示它们的名称,以便用户可以快速查看他要删除的内容。我知道用户可以在列表视图中看到详细信息,但我想让用户在模型窗口的形状中看到这将被删除。你确定要删除吗 如果用户单击“确认”,则正常的删除案例应该可以工作 就我的研究和工作而言,我认为它应该是关于覆盖web模块中list\u view.js中的do\u delete方法的。但是我对Odoo的jav

我用的是奥多10e。我想要一个简单的功能,每当我想删除一个或多个项目,然后从列表视图或从一个特定的列表视图只。我想显示所有被选中删除的项目,在弹出窗口中显示它们的名称,以便用户可以快速查看他要删除的内容。我知道用户可以在列表视图中看到详细信息,但我想让用户在模型窗口的形状中看到这将被删除。你确定要删除吗

如果用户单击“确认”,则正常的删除案例应该可以工作


就我的研究和工作而言,我认为它应该是关于覆盖web模块中
list\u view.js
中的
do\u delete
方法的。但是我对Odoo的javascript重写知之甚少。

这是我如何做到这一点的一个示例

我为您的模型调用了名称并记录了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();
        });
    });;
},
do_delete:函数(ids){
新模型(this.Model)
.call('name_get',[id,this.dataset.get_context()]).done(函数(名称){
var text=\u t(“是否确实要删除这些记录?”)+“”+名称。加入('\n')
如果(!(id.length&&confirm(text))){
返回;
}
var self=这个;
返回$.when(this.dataset.unlink(id)).done(函数(){
_每个功能(id){
self.records.remove(self.records.get(id));
});
//如果数据集中没有更多记录,则隐藏该表
if(self.display\u nocontent\u helper()){
self.no_result();
}否则{
if(self.records.length&&self.current\u min==1){
//如果删除第一页的所有记录,请重新加载列表视图
self.reload();
}else if(self.records.length&&self.dataset.size()>0){
//如果当前页面为空,则加载上一页
self.pager.previous();
}
//如果不在最后一页,请重新加载列表视图
if(self.current\u min+self.\u limit-1
您的Odoo的所有方法删除都需要它吗?我正在尝试创建一个示例。因此,如果您能让我了解所有人/以及特定的视图,那将是一件好事。这是针对V10社区?V10企业的。我在问题中提到了这一点,我得到了这个错误
ReferenceError:Model未定义
。另外,如果我想从模型中获取除
Name
以外的任何字段,您是否可以告诉我您需要导入
var Model=require('web.DataModel')
并且您可以用
替换
.call('name\u get',…
).call('read',[id,['name','display\u name'],this.dataset.get\u context()]))
谢谢,先生,你太棒了!慢慢地,安全地赞美,我最终会喜欢它的!我遇到了一个问题,它只有在启用
调试模式下才能工作。有什么方法可以解决这个问题吗?