奥多。有限制的下拉菜单
Odoo. Dropdown with limits
我的模型中有一些 One2Many 字段。我在视图中为 tree 元素设置了 limit = 5。但是如何将具有可能值(80-200-500 等)的列表更改为我的自定义列表(例如:10-15 等)?
这是我的 xml:
<!--
info about view:
<record model="ir.ui.view" id="view_my_id_employee_form">
<field name="name">hr.employee.property.form.inherit</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form" />
-->
<field name="adaptation_result_ids">
<tree default_order="date desc" limit="5">
<field name="name"/>
<field name="date"/>
</tree>
</field>
也许可以在设置中使用 Window 操作 ?
我尝试了不同的方法,但都是徒劳的。
你能帮我解决问题吗?
提前谢谢你。
/addons/web/static/src/js/views/list_view.js
render_pager: function($node) {
//...
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>' +
'<option value="NaN">' + _t("Unlimited") + '</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');
});
//...
}
/my_module/template.xml
<openerp>
<data>
<template id="assets_backend_tree_pager" name="tree pager" inherit_id="web.assets_backend">
<xpath expr="//script[@src='/web/static/src/js/views/list_view.js']" position="replace">
<script type="text/javascript" src="/my_module/static/src/js/views/list_view.js"></script>
</xpath>
</template>
</data>
</openerp>
/my_module/static/src/js/views/list_view.js
// TODO code
我的模型中有一些 One2Many 字段。我在视图中为 tree 元素设置了 limit = 5。但是如何将具有可能值(80-200-500 等)的列表更改为我的自定义列表(例如:10-15 等)?
这是我的 xml:
<!--
info about view:
<record model="ir.ui.view" id="view_my_id_employee_form">
<field name="name">hr.employee.property.form.inherit</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form" />
-->
<field name="adaptation_result_ids">
<tree default_order="date desc" limit="5">
<field name="name"/>
<field name="date"/>
</tree>
</field>
也许可以在设置中使用 Window 操作 ?
我尝试了不同的方法,但都是徒劳的。 你能帮我解决问题吗? 提前谢谢你。
/addons/web/static/src/js/views/list_view.js
render_pager: function($node) {
//...
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>' +
'<option value="NaN">' + _t("Unlimited") + '</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');
});
//...
}
/my_module/template.xml
<openerp>
<data>
<template id="assets_backend_tree_pager" name="tree pager" inherit_id="web.assets_backend">
<xpath expr="//script[@src='/web/static/src/js/views/list_view.js']" position="replace">
<script type="text/javascript" src="/my_module/static/src/js/views/list_view.js"></script>
</xpath>
</template>
</data>
</openerp>
/my_module/static/src/js/views/list_view.js
// TODO code