Header头部

来自Odoo大V社-odoo中文开发手册
7017511讨论 | 贡献2017年5月4日 (四) 05:59的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

顶部的标题将展示文档流转的阶段和生命周期,以及动作按钮. 这些操作按钮一般为表单按钮,最重要的阶段可以使用class=“oe_highlight”突出显示.文档生命周期通过状态栏小控件呈现当前所处的状态.这些通常是状态选择字段或者多对一的阶段字段.这些字段在很多odoo核心模块中可以找到.这些多对一的阶段字段 通过建立模型实现过程步骤.它们可以根据用户需求动态编译,并且完美支持看板. 状态是一个选择列表,呈现的是过程中有几个相当稳定的步骤阶段,例如:新建、处理中、完成。它不是由用户最终配置的,但因为它是静态的,所以在事务逻辑中更容易使用。它也支持字段展示:状态属性可以根据文档当前的属性决定一个字段是否向用户呈现。 阶段出现的比状态晚,两者并存,但是阶段取代状态将是odoo内核发展的趋势。但正如所看到的前面的解释,状态仍然提供一些阶段不具备的功能。通过状态和阶段的互相映射,可以做到两全其美。在前面的章节中,在任务阶段模型中添加一个状态字段,通过计算控制字段,使得状态字段属性可以使用。 在views/todo_view.xml 文件中我们可以添加状态栏来扩展基本的标题。

 <header> 
 <field name="state" invisible="True" /> 
 <button name="do_toggle_done" type="object" attrs="{'invisible':[('state','in',['draft'])]}" string="Toggle Done" class="oe_highlight" /> 
 <field name="stage_id" widget="statusbar" clickable="True" options="{'fold_field': 'fold'}" /> 
 </header>

这里我们增加了一个隐藏的状态字段。我们需要客户端发送给服务器的数据请求中包含该字段,否则就不可用于表达式。

 提示:

非常重要的是:任何你想使用的字段,在一个域或属性表达式,必须加载到视图中,故可以将随时会使用但不需要用户看到的字段设置为不可见。下一步将一个按钮添加到状态栏,让用户切换任务完成标记。状态栏中按钮的显示,应该依据文档所处步骤阶段而变化。在草稿状态,我们通过“attrs”属性隐藏按钮。要实现这个功能,需要使用状态字段,它无须呈现在窗口,所以我们必须添加这一隐藏字段。如果我们有一个状态选择字段,我们可以使用状态属性。在这种情况下我们可以通过state=“open,done”做到同样的效果。虽然它不如‘attrs’属性灵活,它更多的是简洁.这些可见性也可以用于其他视图元素,例如字段.我们将在本章后面更详细地探讨它们。点击属性允许用户点击状态栏来改变文件的阶段。我们通常会启用这个,但也有我们不需要情况。例如当我们需要更多的控制工作流程或者用户通过可见的动作按钮来实现阶段的行进,这样方便实现阶段转换前的确认。

当使用阶段状态栏小部件时,我们可以使用在阶段族群中隐藏的很少使用的阶段。为此,阶段模型必须有一个标志来配置隐藏属性,通常命名为fold。StatusBar控件应该使用一个options属性,如前面代码所示,提供字段名的fold_field选项。当使用含有状态字段的状态栏小部件时,通过statusbar_visible 可以实现类似的效果。它可以呈现特殊情况下各种可见的和隐藏的异常状态。 例如:

 <field name="stage_id" widget="statusbar" clickable="True" statusbar_visible="draft,open" />
上一节:业务文档视图 下一节:sheet工作表