查看“智能按钮”的源代码
←
智能按钮
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看并复制此页面的源代码:
在设计表单结构时,我们设置了一个包含智能按钮的顶级区域。现在让我们在里面添加一个按钮。 对于我们的应用程序,我们将会有一个按钮,显示当前任务的所有者的总数量,点击它将导航到这些项目的列表。 首先,我们需要将相应的计算字段添加到models/todo_model.py.为TodoTask类添加如下代码: def compute_user_todo_count(self): for task in self: task.user_todo_count = task.search_count( [('user_id', '=', task.user_id.id)]) user_todo_count = fields.Integer( 'User To-Do Count', compute='compute_user_todo_count') 接下来,我们添加按钮框和其中的按钮。在oe_title div之后,取代我们之前加入的按钮框占位符。如下: <div name="buttons" class="oe_right oe_button_box"> <button class="oe_stat_button" type="action" icon="fa-tasks" name="%(action_todo_task_button)d" context="{'default_user_id': user_id}" help="All to-dos for this user" > <field string="To-Dos" name="user_todo_count" widget="statinfo"/> </button> </div> 计算user_todo_count 字段,按钮向负责todo任务人员显示todo任务数量。 这里有一些属性,可以添加到智能按钮: class="oe_stat_button" 呈现一个矩形而不是一个普通的按钮。 icon :设置要使用的图标,可以从图标字体中选择,可用的图标可浏览http://fontawesome.io。 type和name是按钮类型和要触发的动作的名称。对于智能按钮,类型通常是action,对于窗口操作,name将是要执行的操作的ID。这里需要一个实际操所的数据库ID,因此我们必须用一个公式将XML ID转换成数据库ID:“%(action-external-id)d”。该操作应该使用相关记录打开一个视图。 string 在按钮上添加标签文本。我们没有在这里使用它,因为包含的字段已经为它提供了一个文本。 context 用于在目标视图上设置默认值,点击按钮后,可以在视图上创建新记录。 help 添加一个帮助提示,当鼠标指针在按钮上时显示该提示。 按钮元素本身是一个容器,带有显示统计信息的字段。这些是使用小部件状态信息的常规字段。它是在底层模型中定义的计算字段。除了字段之外,在按钮中我们还可以使用静态文本,例如: <div>User's To-dos</div> 单击按钮时,我们希望看到一个只包含当前负责用户的任务的列表。将由action_todo_task_button动作完成,尚未实施。但它需要知道当前的负责用户,才能执行过滤器。 为此,我们使用按钮的上下文属性来存储该值。 使用的动作必须在窗体之前定义,所以我们应该在xml文件的顶部添加它: <act_window id="action_todo_task_button" name="To-Do Tasks" res_model="todo.task" view_mode="tree,form,calendar,graph,pivot" domain="[('user_id','=',default_user_id)]" /> 请注意我们是如何使用default_user_id上下文是域过滤器的关键。依循按钮链接建立一个新的任务时,这个特定的关键也在user_id字段设置默认值。
返回至
智能按钮
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
odoo 中文开发手册
odoo 开发参考
odoo 实施笔记
Odoo 最佳方案
关于 OdooV
Odoo FAQ
工具
链入页面
相关更改
特殊页面
页面信息
友情链接
odoo官网
odoo中文网
odoo实施