从listview中的寻呼机中删除“无限制”选项

时间:2014-02-28 07:49:54

标签: openerp

我想删除unlimited中寻呼机下拉列表的listview选项。 我们在res_partner中有200,000多个联系人,如果有人选择unlimited,我们4Gb服务器的内存会填满并崩溃。因此,我们需要这种(临时)解决方法。

这就是我现在所拥有的,它完美无缺但我发现view_list.js硬编码了下拉选择列表,所以我不得不在我的覆盖功能中重复这一点。 OpenErp应该选择变量,但是还没有发生。我需要更多的第二意见,这将是一个更好的解决方案。之后我想询问OpenErp是否可以解决这个问题或提出更动态的解决方案。

/*---------------------------------------------------------
* remove unlimited option on listview for res_partner
*---------------------------------------------------------*/

openerp.web_remove_unlimited = function(instance) {

// here you may tweak globals object, if any, and play with on_* or do_* callbacks on them

instance.web.ListView.include({
    load_list: function(data) {
        var self = this;
        var ret = this._super.apply(this, arguments);
        if (this.dataset.model=='res.partner') {
          this.$pager.find('.oe_list_pager_state')
                .click(function (e) {
                    e.stopPropagation();
                    var $this = $(this);

                    var $select = $('<select>')
                        .appendTo($this.empty())
                        .click(function (e) {e.stopPropagation();})
                        .append('<option value="80">80</option>' +
                                '<option value="200">200</option>' +
                                '<option value="500">500</option>' +
                                '<option value="2000">2000</option>')
                        .change(function () {
                            var val = parseInt($select.val(), 10);
                            self._limit = (isNaN(val) ? null : val);
                            self.page = 0;
                            self.reload_content();
                        }).blur(function() {
                            $(this).trigger('change');
                        })
                        .val(self._limit || 'NaN');
                });
        }
        return ret;
    },
 });
};

0 个答案:

没有答案