添加Kanban卡选项菜单

来自Odoo V
跳转至: 导航搜索

看板卡片可以有一个选项菜单,放在右上角。通常的操作是编辑或删除记录,但它有可能通过一个按钮调用的任何动作。我们也有一个小部件设置卡的颜色可用。

以下是在oe_kanban_content元件的顶部添加选项菜单的基准HTML代码:

<div class="o_dropdown_kanban dropdown">
<!-- Top-right drop down menu here... -->
<a class="dropdown-toggle btn" data-toggle="dropdown" href="#">
<span class="fa fa-bars fa-lg"/>
</a>
<ul class="dropdown-menu" role="menu" arialabelledby="dLabel">
<!-- Edit and Delete actions, if available: -->
<t t-if="widget.editable">
<li><a type="edit">Edit</a></li>
</t>
<t t-if="widget.deletable">
<li><a type="delete">Delete</a></li>
</t>
<!-- Call a server-side Model method: -->
<t t-if="!record.is_done.value">
<li><a name="do_toggle_done" type="object">Set as 
Done</a>
</li>
</t>
<!-- Color picker option: -->
<li>
<ul class="oe_kanban_colorpicker" data-field="color"/>
</li>
</ul></div>

注意,如果在视图的某处没有<field name="is_done" />,以上内容不会有效,因为它采用的是一个表达式。如果我们不需要在模板中使用它,我们可以在<templates>元素之前声明它,正如我们在定义<kanban>视图时所做的那样。

下拉菜单是基本的HTML<a> 元素的列表。某些选项,如编辑和删除,只有在满足某些条件时才可用。这用t-if Qweb指令实现。在随后的章节中,我们解释这个和其他的Qweb指令的更多细节。

Widget全局变量表示当前看板记录, JavaScript对象负责当前的看板卡片的渲染。两个特别有用的性质是widget.editable和widget.deletable,用于检测是否动作可用。 我们还可以看到如何根据记录的字段值显示或隐藏选项。只会is_done字段没有被设置时,Set as Done选项才会显示。

最后一个选项使用color数据字段添加颜色选择特殊部件,用来选择并更改卡片的背景颜色。