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();
                }
            });

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