odoo视图学习笔记

用户界面的每个组件都以记录的形式存储在数据库中,模块从XML文件加载相应的数据时会向数据库添加UI元素,然后odoo从数据库读取UI元素进行显示。

菜单项

<menuitem>快捷元素,提供了一种缩减方式来定义要加载的记录,我们可以使用它来代替<record model =“ir.ui.menu”>元素。

顶级菜单项:只有id和name属性。

子菜单项:通过parent =“上层菜单id”属性置于上层菜单下。

菜单动作:通过action =“act_window”属性,把点击菜单的动作指定为act_window中打开某个视图(如tree/form)

菜单分组:使用groups属性使其仅对某些安全组可见。

窗口动作

给出GUI客户端指令,通常供视图中的菜单项或按钮调用。

它告诉GUI应该使用什么模型,以及提供哪些视图。 这些操作可以使用domain过滤器强制只有一部分记录可见。 他们还可以通过context属性设置默认值和过滤器。

窗口动作存储在ir.actions.act_window模型中,可以使用<act_window>快捷标签在XML文件中定义。

上下文与域

context属性值:上下文是一个包含session数据的字典,它可以被客户端的用户接口和服务器端的ORM与业务逻辑使用。

在客户端,它可以将信息从一个视图传输到另一个视图。在服务器端,一些记录的字段值可以通过上下文被本地设置提供。

domain表达式:域被用来筛选数据记录。它们使用特殊的语法,以便于Odoo ORM 将它们解析后生成对应的SQL WHERE数据库筛选语句。

域表达式是一个条件列表,每个条件是一个形如('field_name', 'operator', value')的元组。

domain表达式是一个包含多项内容的list,因此,可以包含多个条件表达式元组。 默认情况下(隐含),这些条件之间是用AND逻辑符连接的,也就是说,它只返回满足所有条件的记录集。

也可以用显式的逻辑连接符:and连接符(&,默认使用),或连接符(|)。这些连接符后面跟着两项内容,可以画成递归树的形式理解。

感叹号(!),是非操作符(NOT),作用于紧挨它的后一个项。因此,它应该出现在否定项的前面。比如,['!', ('is_done','=',True)]

窗体视图

form视图

Header头部:

header区域一般用于展示文档流转的阶段和生命周期,以及动作按钮。

文档生命周期通过状态栏小控件呈现当前所处的状态.这些通常是状态选择字段或者多对一的阶段字段。

状态是一个选择列表,呈现的是过程中有几个相当稳定的步骤阶段,例如:新建、处理中、完成。

操作按钮一般为表单按钮,最重要的阶段可以使用class=“oe_highlight”突出显示。

Sheet区域:

标题:在group之外,我们可以使用html基本元素来制定标题,如:div,span,H1,和H2等。

分组:<newline>将强制生成一个新行。附加部分标题可以使用<separator>元素添加到组内。使用col和colspan属性,我们可以更好的控制组元素布局。col属性可以指定组中包含的列数,默认值是2,它也可以改为任何数字,双数的效果更好,因为每一个字段加起来都要两列。组内元素,包括<field>元素,可以使用colspan属性设置一个特定的列数,默认都是一列。

分页笔记本:笔记本元素可以包含多个标签的部分,称为页面。可以实现按页切换输入、显示。

语义组件:

视图标签属性:

name:标识字段数据库名称

string:标签文本,如果我们想要覆盖模型定义提供的标签文本,可以使用它。

help:提示文本,当您将指针悬停在字段上时,将显示一个提示文本,并允许覆盖模型定义提供的帮助文本。

placeholder:是一个建议文本,显示在该字段内。

widget:允许我们覆盖用于该字段的缺省小部件。

options:是一个JSON数据结构,为小部件提供了额外的选项,并且取决于每个小部件支持什么。

class:是用于字段HTML呈现的CSS类。

nolabel="True":防止自动字段标签被呈现。仅对<group>元素中的字段有意义,并且经常和<label for="..."> 元素一起使用.

invisible="True":使字段不可见,但是数据是从服务器获取的,并且在表单上可用。

readonly="True": 使表单上的字段不可编辑。

required="True" 在表单上字段为必需字段。

某些字段类型的特殊属性:

password="True":用于文本字段。它显示为一个密码字段,屏蔽输入的字符。

filename: 用于二进制字段,它是用于存储上传文件名称的模型字段名称。

mode:用于一对多字段。它指定用于显示记录的视图类型。默认情况下,它是树,但也可以是表单、看板或图形。

小部件(widget属性值):

对于文本字段,我们有以下小部件:

email:是用来将电子邮件文本转换为一个可操作的“邮件”地址。

url :用于将文本格式化为可单击的url。

html:用于渲染文本作为html内容;在编辑模式下,以WYSIWYG编辑器,允许内容的格式,而不需要使用HTML语法。

对于数值字段,我们有以下小部件:

handle:是专门为列表视图中的序列字段设计的,并显示一个句柄,允许您将行拖到一个定制的顺序。

float_time:拥有小时和分钟的时间浮点字段格式.

monetary:作为货币金额显示浮动字段。它需要一个currency_id伙伴字段,另一个字段名称可以设置选项=“{ 'currency_field ':' currency_id“}”。

progressbar 用一个浮点数表示为一个进度百分比,并且可以用于表示完成率字段.

对于关系和选择字段,我们有这些附加的小部件:

many2many_tags : 显示按钮标签列表值.

selection:用于多对一字段的选择字段部件。

radio 使用单选按钮显示选择字段选项.

kanban_state_selection展示了看板状态选择列表的信号灯。一般状态为灰色,已经完成为绿色,其他状态为红色.

priority 一个可点击的星星列表的选择字段。可选项一般为数字.

按钮(button元素)属性:

icon  可用的按钮图标在 addons/web/static/src/img/下

string 按钮的显示文字

type 是动作执行类型。可能值是:workflow, object,action   默认是 workflow:

    workflow 用于触发工作流引擎信号;

    object 用于调用Python方法;

    action 用于运行窗口动作。

name 触发的方法标识:工作流信号名、模型方法名称或运行窗口操作的数据库ID。

args 传递方法的参数

context 将值添加到上下文

confirm 针对对话框的确认

special="cancel" 用于向导,用来取消和关闭向导表单。

class 加载的类名(常用 oe_highlight)

动态视图:

视图元素也支持一些动态属性,允许动态视图根据字段值来改变他们的外观或行为

其他视图:

日历视图:

日历视图属性:

date_start开始日期的字段,必需字段。

date_end结束日期的字段,可选字段。

date_delay持续天数的字段,可以使用代替date_end。

all_day提供一个布尔字段是用来发送全天事件信号。

color 日历条目颜色分组的字段 。这个字段中的每个不同的值将被分配一个颜色,并且该字段所有同值的条目将具有相同的颜色。

display 是每个日程表条目的显示文本. 它使用方括号加字段名称表示用户记录值,例如[name]。

mode 是日历的默认显示模式,无论是一天、一周还是一个月。

图形视图:

图形视图元素可以有一个类型属性,可以设置为条形(默认)、饼状或线。在条形的情况下,可以使用stacked="True"呈现堆叠在一起的条形图。

枢轴视图:

猜你喜欢

转载自blog.csdn.net/miantian180/article/details/81771990