我想在“草稿”阶段显示用户无法导出草稿阶段数据的验证。我知道'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();
}
},
});
});
您可以使用此方法def view_init(self, fields)。在此,您可以添加验证。
谢谢