2016-11-11 1 views
0

Я создал модель версии, добавить отношение к модели продукта, как это:Как исправить добавление домена в поле внутри поля one2many в Odoo?

class product_template(models.Model): 
    _inherit = 'product.template' 

    versions_ids = fields.Many2many('mymodel.version',string='Versions') 

class sale_order(models.Model): 
    _inherit = 'sale.order' 

    version_filter = fields.Many2one('mymodel.version') 

добавить поле «version_filter с точкой зрения sale.order, и теперь хочет фильтровать поиск продукта по этому соотношению, но только те, будучи не добавляя предыдущие addded

как это:

<record id="sale_filter_append" model="ir.ui.view"> 
    <field name="name">sale.order.form</field> 
    <field name="model">sale.order</field> 
    <field name="inherit_id" ref="sale.view_order_form"/> 
    <field name="arch" type="xml"> 
     <xpath expr="//field[@name='order_line']" position="before"> 
      <group colspan="4"> 
       <field name="version_filter"/> 
      </group> 
     </xpath> 
     <xpath expr="//field[@name='product_id']" position="replace"> 
      <field name="product_id" 
        context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'uom':product_uom, 'company_id': parent.company_id}" 
        attrs="{'readonly': ['|', ('qty_invoiced', '&gt;', 0), ('procurement_ids', '!=', [])]}" 
        domain="[('version_filter', 'in', versions_ids)]" 
      /> 
     </xpath> 
    </field> 
</record> 

Но поле "product_id" никогда не заменит

.

Я предпочел бы сделать модальную форму, как в опции «Найти больше» в многопользовательских полях ... но если кто-то может помочь мне фильтровать по домену, то order_line product_id его более чем нормально

Спасибо за чтение!

ответ

0

Проблема есть с xpath. Вы должны попробовать следовать.

Если вы хотите добавить домен в строку заказа клиента -> product_id в виде формы и древовидной структуре, то пример приведен ниже.

<xpath expr="//notebook/page[@string='Order Lines']/field[@name='order_line']/form/group[1]/group/field[@name='product_id']" position="attributes">     
    <attribute name = "domain">Add your domain</attribute> 
</xpath> 

<xpath expr="//notebook/page[@string='Order Lines']/field[@name='order_line']/tree[@string='Sales Order Lines']/field[@name='product_id']" position="replace"> 
    <field name="product_id" context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'uom':product_uom, 'company_id': parent.company_id}" 
     attrs="{'readonly': ['|', ('qty_invoiced', '&gt;', 0), ('procurement_ids', '!=', [])]}" 
     domain="[('version_filter', 'in', versions_ids)]" />   
</xpath>