2015-11-13 99 views
7

我的模型中有一些One2Many字段。我設置了limit = 5元素的視圖。但是我怎樣才能將可能的值(80-200-500等)更改爲我的自定義列表(例如:10-15等)?Odoo。有限制的下拉列表

enter image description here

這裏我的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> 

也許有可能使用窗口操作的設置?

enter image description here

我嘗試不同的方法,但一切都是徒勞。 你能幫我解決問題嗎? 預先感謝您。

+0

我不明白你的問題,你的意思是限制one2many的領域?在這種情況下,限制域到什麼parametter?如果im在正確的方向,最好的情況是你的自適應結果對象中的另一個字段(如布爾值),然後在one2many中添加一個域過濾器 – dccdany

+0

我只需要更改下拉列表中的可能值(對於特定視野中的字段)。 'adaptation_result_ids' - 它是One2Many字段。我需要爲我的列表設置僅用於此_tree_元素的可能值。有可能的? –

+0

是的,但讓我們假設你有5項:200,300,500,1000和2500,並且你想顯示200,300和500.你想要顯示那些你說的那些有什麼不同不想顯示(1000 - 2500)? – dccdany

回答

5

/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 /靜態/ SRC/JS /視圖/list_view.js

// TODO code