2013-11-04 31 views
2

有人可以告訴我,根據記錄的狀態,我可以以何種方式在具有特定顏色的視圖看板中顯示物品。根據OpenERP 7中的記錄狀態顯示動態看板顏色

我想是這樣的

<div t-attf-class="#{record.state=='scheduled' ? oe_kanban_color_#{kanban_getcolor(1)} : oe_kanban_color_#{kanban_getcolor(0)}"> 

,但我看了所有的元素,而不僅僅是那些誰是在「預定」。

謝謝:)

回答

3

如果您複製/粘貼正是你在視圖定義類型,那麼你的t-attf- class屬性的格式不正確,所有的記錄將有下面的類:

class="#{record.state=='scheduled' ? oe_kanban_color_1 : oe_kanban_color_0" 

這由於CSS類的優先級,會導致它們都具有oe_kanban_color_1樣式。

一些提示:

  • 爲了避免着色的一些記錄,你可以省略oe_kanban_color_X完全在某些情況下
  • 可以使用t-att-class屬性允許任意JavaScript表達式,這取決於你想要什麼做。相比之下,t-attf-class只允許替換佔位符。
  • 將字段值與Javascript運算符進行比較時,通常需要使用該字段的value或,而不是字段對象本身。 value只會在raw_value之間變化,當值需要特定的渲染時,如日期,數字等。
  • kanban_getcolor()函數接受任何整數或字符串並返回10個默認看板顏色索引之一。

基於上述,下面可能是更接近你試圖做什麼(請注意t-att-class屬性:

<div t-att-class="record.state.value == 'scheduled' ? 
        'oe_kanban_color_1' : 
        'oe_kanban_color_0' "> 

或者,你可以使用t-attf-class,讓kanban_getcolor()挑基於一種顏色在狀態字符串上:

<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.state.value)}"> 

最後一個例子與許多默認kanb所做的類似OpenERP正式發佈的觀點。

+0

非常感謝您的信息!,非常有用。感謝您的幫助可以理解並解決我遇到的問題。 –