odoo 打開form 視圖 默認爲編輯狀態

爲了編輯方便,客戶會經常要求 odoo 打開form 視圖
默認爲編輯狀態 或者根據某些條件 爲編輯狀態

下面介紹兩種方式進行

1、在form 初始化加載時進行攔截,設置屬性打開編輯狀態



    FormView.include({

        /***
         * ,滿足條件,form 視圖打開時默認編輯
         */
        init: function (parent, dataset, views, flags, options) {
            var self = this;

            var index = dataset.index;
            var row_id = dataset.ids[index];
            var res_model = '';
            if (flags && flags.action) {
                res_model = flags.action.res_model;
            }
            if (res_model && row_id) {
                var clicks = new Model(res_model);
                clicks.call('check_is_true', [res_model, row_id]).done(function (message) {
                    if (message) {
                        flags.initial_mode = 'edit';
                        flags.form = {'action_buttons': true, 'options': {'mode': 'edit'}};
                    }
                });
            }

            self._super.apply(self, arguments);
        }
    });



2、在用戶點擊 行 時,進行攔截,然後判斷增加屬性 再跳轉

 ListView.List.include({

        row_clicked: function (e) {
            var self = this;
            var index = self.dataset.index;
            var row_id = self.dataset.ids[index];
            var res_model;
            var result = this._super.apply.bind(this._super, this, arguments);
            if (self.options.action) {
                res_model = self.options.action.res_model;
            } else {
                return result();
            }
            var clicks = new Model(res_model);
            return clicks.call('check_is_true', [res_model, row_id]).done(function (message) {
                if (message) {
                    var action = {
                        'type': 'ir.actions.act_window',
                        'res_model': self.options.action.res_model,
                        'res_id': row_id,
                        'views': [self.options.action.views[1]],
                        'view_mode': self.options.action.view_mode,
                        'target': self.options.action.target,
                        'flags': {'form': {'action_buttons': true, 'options': {'mode': 'edit'}}},
                    };
                    if (row_id) {
                        return self.view.do_action(action);
                    }
                } else {
                    return result();
                }
            });

        }
    });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章