### 树视图
树视图可以附加属性来进一步自定义它们的行为:
`colors`
自9版:被弃用 `decoration-{$name}`
`decoration-{$name}`
允许根据相应的记录的属性更改行文本的样式。
价值观是Python表达式。对于每一个记录,表达式被记录的属性作为上下文值进行评价,如果“真”,则将相应的样式应用于行。其他的上下文值` UID `(当前用户的ID)和` current_date `(当前日期作为一个字符串的形式` yyyy-mm-dd `)。
`{$name}` 可以是 `bf` (`font-weight: bold`), `it` (`font-style: italic`), 或任何 bootstrap 上下文颜色 (`danger`, `info`,`muted`, `primary`, `success` or `warning`).
~~~ xml
<tree string="Idea Categories" decoration-info="state=='draft'"
decoration-danger="state=='trashed'">
<field name="name"/>
<field name="state"/>
</tree>
~~~
`editable`
“顶”或“底”。让树视图中编辑的地方(而不必通过窗体视图),价值就是新行出现的位置。
练习
列表着色
修改会话树视图,在这样的方式中,会话持续不到5天是彩色的蓝色,和那些持续超过15天是红色的。
修改会话树视图:
*openacademy/views/openacademy.xml*
~~~ xml
<field name="name">session.tree</field>
<field name="model">openacademy.session</field>
<field name="arch" type="xml">
<tree string="Session Tree" colors="#0000ff:duration<5;red:duration>15">
<field name="name"/>
<field name="course_id"/>
<field name="duration" invisible="1"/>
<field name="taken_seats" widget="progressbar"/>
</tree>
</field>
~~~