2015-11-13 18 views
7

Ich habe ein Feld One2Many in meinem Modell. Ich setze Limit = 5 für Baum Element in Sicht. Aber wie kann ich die Liste mit möglichen Werten (80-200-500 usw.) auf meine benutzerdefinierte Liste ändern (zum Beispiel: 10-15-etc.)?Odoo. Dropdown mit Grenzen

enter image description here

Hier mein 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> 

Vielleicht ist es möglich, Fenster Aktionen in Einstellungen?

enter image description here

Ich habe versucht, verschiedene Möglichkeiten, aber alles umsonst. Können Sie mir bei meinem Problem helfen? Vielen Dank im Voraus.

+0

Ich verstehe Ihre Frage nicht, Sie meinen, die Domäne der one2many beschränken ?, in diesem Fall, die Domäne auf was parametrieren ?. Wenn ich in die richtige Richtung bin, wäre der beste Fall ein anderes Feld in Ihrem Adaptationsergebnisobjekt (wie ein boolescher), um Unterschiede zu machen, und dann einen Domainfilter in der one2many – dccdany

+0

Ich muss nur mögliche Werte für das Dropdown (für bestimmte Felder in Sicht). 'adaptation_result_ids' - es ist One2Many Feld. Und ich muss meine Liste für mögliche Werte nur für dieses _tree_ Element setzen. Es ist möglich? –

+0

Ja, aber nehmen wir an, dass Sie 5 Elemente haben: 200, 300, 500, 1000 und 2500, und Sie möchten 200, 300 und 500 anzeigen. Was ist der Unterschied zwischen denen, die Sie zeigen wollen? will nicht zeigen (1000 - 2500)? – dccdany

Antwort

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/static/src/js/Ansichten /list_view.js

// TODO code