2017-09-25 14 views
2

ビューのフィールドのドメインを設定したいと思います。複数のフィールドを検索関数に渡すにはどうすればよいですか? Odoo 9

<record id="view_pack_operation_details_form_extend" model="ir.ui.view"> 
    <field name="name">stock.pack.operation.details.form.extend</field> 
    <field name="model">stock.pack.operation</field> 
    <field name="inherit_id" ref="stock.view_pack_operation_details_form"/> 
    <field name="arch" type="xml"> 
    <xpath expr="//field[@name='location_dest_id']" position="replace">    
     <field name="show_all_locations_checkbox"/> 
     <field name="location_dest_id" domain="[('is_empty', '=', picking_destination_location_id)]"/> 
    </xpath> 
    </field> 
</record> 

私は検索機能を作成しましたが、1つのオペランドしか受け付けません。

is_empty = fields.Boolean(compute='compute_is_empty', search='search_is_empty') 


def search_is_empty(self, operator, operand): 
    ids = [] 

    # I need here the value of show_all_locations_checkbox 
    show_all_locations = VALUE_OF_CHECKBOX 
    locations = self.env['stock.location'].search([('location_id', '=', operand)]) 
    for location in locations: 
     stock_quant = len(self.env['stock.quant'].search([('location_id', '=', location.id)])) 
     if show_all_locations: 
      ids.append(location.id) 
     else: 
      if stock_quant == 0: 
       ids.append(location.id) 

    return [('id', 'in', ids)] 

ドメインオペランドに複数のフィールドを渡すオプションはありますか?

+1

実際はありませんが、渡したデータ型で再生することができます。たとえば、フィールドを渡す代わりに、辞書/リストを渡すことができます – dccdany

+0

もちろん、ありがとう! – dccdany

答えて

1

複数のオペランドを渡すことはできませんが、渡したデータ型で再生できます。たとえば、フィールドを渡す代わりに、辞書/リストを渡すことができます。

関連する問題