function - 显示导出操作的验证点击特定条件 Odoo 13
问题描述
我想在“草稿”阶段显示用户无法导出草稿阶段数据的验证。我知道'def export_data(self,fields_to_export)'函数,但它在选择字段后起作用。我只想在单击导出操作时进行验证。所以,任何人都可以建议我使用哪个功能来满足我的要求。我正在使用 Odoo 13。
提前致谢。
解决方案
一种方法是覆盖 _onExportData
.ListController
检查以下代码(它使用state
字段):
odoo.define("stack_overflow", function(require) {
"use strict";
var listController = require("web.ListController");
var dialog = require("web.Dialog");
listController.include({
/**
* Opens the Export Dialog
*
* @private
*/
_onExportData: function () {
var self = this;
var do_export = true;
// Avoid calling `read` when `state` field is not available
if (self.initialState.fields.hasOwnProperty('state')) {
self._rpc({
model: self.modelName,
method: 'read',
args: [self.getSelectedIds(), ['state']],
}).then(function (result) {
// Check if we have at least one draft record
for(var index in result) {
var item = result[index];
if (item.state === 'draft') {
do_export = false;
break;
}
}
if (do_export) {
self._getExportDialogWidget().open();
} else {
dialog.alert(self, "You can't export draft stage data!", {});
}
});
} else {
this._getExportDialogWidget().open();
}
},
});
});
推荐阅读
- android - 我什么时候需要在 Gradle 依赖项中使用 Kapt?
- r - 将二分网络的 igraph 布局从垂直方向旋转到水平方向
- java-8 - 将循环中的处理转换为将许多列表更新为 CompletableFuture
- c# - WinForms TopLevel false 表单与 TextBox 鼠标选择混淆
- c# - C#,计算文件名(掩码)中的数据块/块。示例 Smith_John_1234_06202019.zip
- junit5 - @ValueSource(classes= .....) 有什么用
- mysql - 如何忽略表 1 中的记录(谁的 fk-refrence 必须存在于表 2 中)但条件不满足
- python - 将字符串中的 i 个连续相同字符分组到列表中
- c# - 与 linq 结合使用时需要更新集合中的值
- c++ - 需要帮助理解'string ltrim(const string &)'的含义