2

レコードの状態に応じて特定の色でビューかんばんにアイテムを表示する方法を教えてください。

私はこのようなことを試みています

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

しかし、私は「スケジュールされた」人だけでなく、すべての要素を見ました。

ありがとう :)

4

1 に答える 1

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 演算子と比較する場合、通常は Field オブジェクト自体ではなく、フィールドのvalue orを使用します。値が日付、数値などの特定のレンダリングを必要とする場合とのみ異なります。raw_valuevalueraw_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)}">

最後の例は、公式の OpenERP ディストリビューションの多くの既定のかんばんビューで行われていることと似ています。

于 2013-11-05T12:08:17.853 に答える