添加Kanban卡选项菜单
来自Odoo大V社-odoo中文开发手册
95102545(讨论 | 贡献)2017年8月7日 (一) 15:07的版本 (创建页面,内容为“看板卡片可以有一个选项菜单,放在右上角。通常的操作是编辑或删除记录,但它有可能通过一个按钮调用的任何动作。我们...”)
看板卡片可以有一个选项菜单,放在右上角。通常的操作是编辑或删除记录,但它有可能通过一个按钮调用的任何动作。我们也有一个小部件设置卡的颜色可用。
以下是在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数据字段添加颜色选择特殊部件,用来选择并更改卡片的背景颜色。