显示导出操作的验证单击特定条件 Odoo 13

Show validation for export action click on specific condition Odoo 13

我想在 'draft' 阶段显示用户无法导出草稿阶段数据的验证。我知道 'def export_data(self, fields_to_export)' 函数,但它在 select 字段之后起作用。我只想在单击导出操作时进行验证。所以,任何人都可以建议我使用哪个功能来满足我的要求。我正在使用 Odoo 13。

提前致谢。

您可以使用此方法def view_init(self, fields)。在此,您可以添加您的验证。

谢谢

一种方法是覆盖 ListController_onExportData

检查以下代码(它使用 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();
            }
        },
    });

});