跳到主要内容

Kanban view

Kanban 视图是一种标准的 Odoo 视图(类似于表单和列表视图),但它们的结构更加灵活。事实上,每张卡片的结构是表单元素(包括基本的 HTML)和 QWeb 的混合。

最小的栗子:

<kanban>

<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<field name="name"/>
</div>
</t>
</templates>
</kanban>

对以上代码进行拆解说明:

  • <templates>: 定义 QWeb 模板模板列表。Kanban 视图必须至少定义一个根模板 kanban-box,该模板将为每条记录渲染一次。
  • <t t-name="kanban-box">: <t> 是 QWeb 指令的占位符元素。在这种情况下,它用于设置模板的名称为 kanban-box。
  • <div class="oe_kanban_global_click">:oe_kanban_global_click 使 <div> 具有可点击性,以打开记录。
  • <field name="name"/>:这将在视图中添加名为 "name" 的字段。

kanban中可调用的属性:

record:一个对象,其属性为所有请求的字段。每个字段都有两个属性,valueraw_value。前者根据当前用户的参数进行格式化,而后者是从 read() 直接获取的值。

当我们需要字段的值但不想在视图中显示它时,可以将其添加到 <templates> 元素之外。例如下面的state字段。

<kanban>
<field name="state"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<field name="name"/>
<div t-if="record.state.raw_value == 'new'">
This is new!
</div>
</div>
</t>
</templates>
</kanban>

看板在分组情况下禁用拖拽

在v13之后,可以在kanban的标签内添加属性records_draggable="0"