2016-09-16 73 views
2

我可以擴展銷售訂單視圖並添加2個靜態字段。我的代碼是這樣的:顯示銷售訂單表中的值列表

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

rule_name=fields.Char('Règle') 
rule_total = fields.Float('Montant de règle') 
rule_exist=fields.Boolean(default=False) 

而對於視圖:

<record id="remise1_view_order_form" model="ir.ui.view"> 
     <field name="name">sale.order.remse1.form</field> 
     <field name="model">sale.order</field> 
     <field name="inherit_id" ref="sale.view_order_form"/> 
     <field name="arch" type="xml"> 
      <field name="amount_untaxed" position="before"> 
       <field name='rule_exist' invisible="1" /> 
       <field name="rule_name" nolabel="1" attrs="{'invisible':[('rule_exist', '!=', True)]}" readonly="1" /> 
       <field name="rule_total" nolabel="1" widget='monetary' attrs="{'invisible':[('rule_exist', '!=', True)]}" readonly="1" options="{'currency_field': 'currency_id'}"></field> 

      </field> 

     </field> 
    </record> 

而結果:

enter image description here

現在我有一個列表[( 「solde1」,1000 ),( 「solde2」,2000年)...]。由於該列表是動態的,我不知道要生成的字段數量。

怎樣的形式顯示列表,以便HT以上價格我要

solde1: 1000 
solde2: 2000 
.... 
Montant HT: value 

回答

2

表單視圖真的不允許輕易這種性質的動態元素。如果您確定知道最多可以有x個項目,您可以在每個元素(field1,field2,field2)上使用attrs="{'invisible': [('condition','=', True)]}",這將允許您僅在approprate條件下顯示field-n,但唯一的元素是爲了真正動態的n元素而設置的是一個或者多個領域。

Qweb具有foreach模板功能,但是這在常規窗體視圖中不可用。

0

AFAIK實現動態生成視圖的唯一方法是覆蓋「fields_view_get」方法並即時處理xml。