Odoo treeView列表视图详解

转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826414.html

TreeView:列表视图

    1:<tree>标签的属性

    【tree标签内的属性,就是界面上的表现、行为,可以通过视图继承,往tree标签增加属性来自定义tree视图的按钮。】

    列表视图的根元素是<tree>,它可以有以下几种属性:

    1)editable

    默认情况下选择单行记录时会打开对应记录的表单,该属性让数据可以在列表内进行编辑,有效的值是top和bottom,可在列表的顶部或底部添加新记录。

    2)default_order

    重定义视图的排序规则,以逗号分隔多个字段,可使用desc来进行倒序<tree default_order="sequence,name desc">

    3)decoration-样式名

    样式可为  bf加粗, it斜体 或 其他bootstrap样式如:danger红色, info, muted, primary, success绿色,warning橙色等等值为python表达式,对每条记录执行相应表达式判断,当结果为true的时候将对应的样式应用。

    也可以直接在标签的css样式值中使用表达式来动态设置,如设置颜色:

colors="gray:state=='cancel';red:state=='audit';green:state=='done';blue:state in('draft','confirm');"

    4)create, edit, delete

    可以通过将它们设置为false来禁用视图中的对应操作按钮:create对应创建按钮、edit对应编辑按钮、delete对应界面上 下拉菜单对 删除 菜单项。

    5)on_write

    只当启用editable时有用,在tree视图新增或修改记录时,会自动调用on_write属性值对应对函数,并且会把新增/修改的记录作为参数传入【可以在该函数执行一些数据校验、唯一性校验】。该函数需要返回一个用于更新列表的记录id列表。

    6)继承tree视图,往tree标签增加属性,从而实现在tree界面上新增按钮

    2:tree视图中的元素

     【tree标签之间等内容就是列表行内容。】

    1)button标签:定义一个按钮,可以根据当前行某个字段值,动态控制行内按钮的显示或隐藏。按钮通过跳转到向导,context中会把对应行记录的id作为active_id传递过去。

属性列表:
1.icon -- 用来展示按钮的图标
2.string -- 当没有icon的时候,button显示的文字,有icon的时候、相当于alt属性值
3.type -- 按钮类型,表示点击它之后如何影响系统
    1)workflow(默认):将按钮name作为信号发送给工作流,记录的内容作为参数
    2)object : 调用当前数据列表模型的方法,方法名是按钮的name,调用时带有记录id和当前上下文环境
    3)action : 加载ir.actions,按钮name是该action在数据库的id,上下文环境扩展到列表的model(作为active_model)、当前记录(active_id)、所有当前加载记录的id(active_ids)
4.name--按钮的响应函数、工作流信号、action_id
5:args--传递给响应函数的参数 6.attrs 基于记录值的某个字段值,将domain表达式应用在该行字段值上,当返回值为True的时候设置相应的属性,一般属性有 invisible (隐藏)、readonly (只读但显示) 7.states invisible属性attrs的简写,给出一个以逗号分隔的state列表,需要模型有一个对应的state属性,可以将不在state列表中的记录的按钮隐藏 8.context 作为额外的数据携带,在跳转、函数调用时传递过去 9.confirm 当点击按钮时给出的确认消息

    2)field字段标签:显示记录的字段值

属性列表:
1.name 字段名
2.string 该列头的文本名称,默认是字段名,可以在界面上自定义显示名
3.invisible 查询而且保存该字段,但界面上不显示
4.groups 可以看到该字段的用户组列表
5.widget 字段的展示形式:
    progressbar 进度条用于展示浮点数
    many2onebutton当关联字段值存在时显示勾,不存在显示X
    handle对于排序字段,直接显示向上向下箭头
    sum, avg 在底部显示基于当前页面数据的求和或平均值
    attrs 基于记录值的动态属性【属性一般有两个:invisible\readonly】,只对当前栏有效,即可以第一条记录中该字段显示,第二条隐藏,由domain表达式决定。

6.field的值支持用eval语法来运算某个表达式获得:例如:<field name="user_id" eval="ref('base.group_user')" />

猜你喜欢

转载自www.cnblogs.com/ygj0930/p/10826414.html