有人可以告诉我,我可以根据记录的状态在具有特定颜色的视图看板中显示项目。
我正在尝试这样的事情
<div t-attf-class="#{record.state=='scheduled' ? oe_kanban_color_#{kanban_getcolor(1)} : oe_kanban_color_#{kanban_getcolor(0)}">
但我查看了所有元素,而不仅仅是那些处于“预定”状态的人。
谢谢:)
答案 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
仅允许替换占位符。value
或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-class
并让kanban_getcolor()
根据状态字符串选择颜色:
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.state.value)}">
最后一个示例与官方OpenERP发行版中的许多默认看板视图中的内容类似。