在弹出窗口中显示要删除的项目 window
Show to be deleted items in popup window
我正在使用 Odoo 10e。我想要一个简单的功能,每当我想从列表视图或仅从特定列表视图中删除一个或多个项目时。我想显示所有选择删除的项目,以在弹出窗口 window 中显示它们的名称,以便用户可以快速查看他要删除的内容。我知道用户可以在列表视图中看到详细信息,但我想以模型 window 的形式向用户展示这将被删除。确定要删除吗?
如果用户单击“确认”,则正常删除案例应该有效。
据我研究和研究,我认为它应该是关于覆盖 Web 模块中 list_view.js
中的 do_delete
方法的。但我对 javascript Odoo 的覆盖知之甚少。
这是我如何做的一个例子。
我为你的模型调用了 name_get 并记录了 ids,这个名字列表,我用所选 ids 的信息更改了确认消息的文本。
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();
});
});;
},
我正在使用 Odoo 10e。我想要一个简单的功能,每当我想从列表视图或仅从特定列表视图中删除一个或多个项目时。我想显示所有选择删除的项目,以在弹出窗口 window 中显示它们的名称,以便用户可以快速查看他要删除的内容。我知道用户可以在列表视图中看到详细信息,但我想以模型 window 的形式向用户展示这将被删除。确定要删除吗?
如果用户单击“确认”,则正常删除案例应该有效。
据我研究和研究,我认为它应该是关于覆盖 Web 模块中 list_view.js
中的 do_delete
方法的。但我对 javascript Odoo 的覆盖知之甚少。
这是我如何做的一个例子。
我为你的模型调用了 name_get 并记录了 ids,这个名字列表,我用所选 ids 的信息更改了确认消息的文本。
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();
});
});;
},