ODOO 設置Form頁面的編輯、創建按鈕,按照一定條件進行自定義隱藏(ODOO_v12測試通過)


odoo.define('rp_hide_edit_btn_v12.hide_edit_btn', function (require) {
    "use strict";

    var FormController = require('web.FormController');
    var core = require('web.core');
    var _t = core._t;

    FormController.include({

        /**
         * @private
         */
        _updateButtons: function () {
            this._super.apply(this, arguments);
            if (this.$buttons && this.mode === 'readonly') {
                var self = this;
                var attrs = this.renderer.arch.attrs;
                var action_edit = ['edit','create'];
                _.each(action_edit, function (action) {
                    var expr = attrs['rp_' + action];
                    var res = expr ? self._evalExpression(expr) : self.activeActions[action];
                    self.$buttons.find('.o_form_button_' + action).toggleClass('o_hidden', !res);
                });
            }
        },

        _evalExpression: function (expr) {
            var tokens = py.tokenize(expr);
            var tree = py.parse(tokens);
            var evalcontext = this.renderer.state.evalContext
            var expr_eval = py.evaluate(tree, evalcontext)
            return py.PY_isTrue(expr_eval);
        }
    });
});

通過重寫FormController的 _updateButtons方法,完成自定義隱藏。可以另起一個模塊寫上面代碼,也可以將代碼直接寫在FormController的源碼中。

使用方法:

<form rp_edit="progress=='制單'">


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM