2

could someone tell me in what way I can display the items in a view kanban with a specific color according to the state that is the record.

I'm trying something like this

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

but I looked ALL elements and not only those who are in the "scheduled".

Thanks :)

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 运算符进行比较时,您通常希望使用字段的value or raw_value,而不是 Field 对象本身。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-classkanban_getcolor()根据状态字符串选择颜色:

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

最后一个示例类似于在官方 OpenERP 发行版中的许多默认看板视图中所做的。

于 2013-11-05T12:08:17.853 回答