odoo10参考系列--视图三(其他高级视图)

图表

图表视图用于在多个记录或记录组上可视化聚合视图。它的根元素是<graph> ,可以有以下属性:

type

使用bar (默认的), pie 和line三个中的一个图表类型

stacked

仅用于 bar 图。如果展示并设置为 True,则在一个组中显示大量柱形图

图表视图中唯一个允许的元素是field,它有如下属性:

name (必填的)

要在图形视图中使用的字段的名称。如果用于分组(而不是聚合)

type

指示是否应将字段用作分组标准或作为组中的聚合值。可能的值是:

row (默认的)

按指定字段分组。所有图形类型都支持至少一个级别的分组,有些可能支持更多。对于透视视图,每个组都有自己的行。

col

仅用于透视表,创建列组。

measure

组内聚合的字段

interval

在日期和时间字段上,以指定的时间间隔(dayweekmonthquarter或者year) 而不是在特定的时间(固定在秒)或者日期(固定在天)分组。

警告

在数据库内容上执行图视图聚合,在图视图中不能使用非存储功能字段。

透视表

透视表视图用于将可视化聚合数据作为一个透视表。它的根元素是<pivot>,它有如下属性:

disable_linking

设置为True,以删除到列表视图的表单元格的链接

display_quantity

设置为true以默认显示数量列

在透视图视图中允许的元素与图视图相同。

看板

看板视图是看板可视化:它将记录显示为“卡片”,介于列表视图和不可编辑窗体视图之间。记录可以按列中使用工作流可视化或操作(例如任务或工作进度管理)进行分组,或不分组(用简单的可视化记录)。

看板视图的根元素是 <kanban>, 它可以使用如下属性:

default_group_by

如果没有通过动作或当前搜索指定分组,看板视图是否应该分组。应该是在没有分组指定的情况下分组的字段的名称

default_order

如果用户还没有对记录进行排序(使用列表视图),则使用卡片排序顺序

class

将HTML样式类添加到看板视图的根html元素中

group_create

是否“添加新列”栏是可见的或不可见的。默认值:true

group_delete

是否可以通过上下文菜单删除组。 默认值:true

group_edit

是否可以通过上下文菜单编辑组。 默认值: true

quick_create

是否可以在不切换到窗体视图的情况下创建记录。默认情况下,当看板视图已经分组时 quick_create 属性是可用的,而当看板视图没有分组时是不可用的。

设置为true以启用它,而false则总是禁用它

视图元素的可能子元素是:

field

声明在看板逻辑中使用的字段。如果字段只显示在看板视图中,它不需要预先声明。

可能的属性是:

name (必须的)

要取的字段的名称

templates

定义了一系列qweb模板。为了清晰起见,卡片定义可以分成多个模板,但看板视图必须定义至少一个根模板kanban-box,它将一次呈现每个记录

看板视图使用主要标准是javascript qweb 并提供如下上下文内容变量:

instance

当前Web客户端实例

widget

当前KanbanRecord()方法,可以获取一些元信息。这些方法也可以直接在模板上下文中使用,不需要通过widget访问

record

具有所有请求字段作为属性的对象。每一场有两个属性value 和 raw_value, 前者是根据当前用户的参数格式化的,后者是从 read()方法获得的直接值the (除了日期和时间字段是根据用户本地化设置格式化的)

formats

web.formats() 模块对一些值进行操作和转换

read_only_mode

自我解释

按钮和字段

虽然大多数的看板模板是标准的QWeb,看板视图处理字段,按钮(fieldbutton)和一个(a)特殊元素:

  • 默认字段被它们的格式化值替换,除非它们匹配特定的看板视图小部件
  • 带有 属性的按钮和链接适宜执行Odoo相关的操作而不是执行标准的HTML方法。可能的类型是:actionobject

    Odoo按钮为标准的行为,和标准的Odoo按钮相关的大多数属性可以被使用

    open

    以只读模式打开表单视图中的卡片记录

    edit

    以可编辑模式打开表单视图中的卡片记录

    delete

    删除卡片记录并删除卡片

Javascript API

class KanbanRecord()

Widget() 方法处理单个记录渲染为一个卡片。记录本身内可以用的部分渲染为模版上下文中的一个 widget 

kanban_color(raw_value)

将颜色分割值转换为一个看板杨色样式类oe_kanban_color_color_index。内置的css提供的样式类多达9个color_index 

kanban_getcolor(raw_value)

将颜色分割值转换为颜色索引(默认情况下为0和9)。颜色分割值可以是数字或字符串

kanban_image(model, field, id[, cache][, options])

将指定字段的URL作为图像访问生成。

参数

  • model (String) -- 图像的宿主模型
  • field (String) -- 保存图像数据的字段的名称
  • id -- 含有图片展示的记录标识符
  • cache (Number) -- 应该覆盖浏览器默认的缓存持续时间(秒)。 0使整个缓存无效

返回

一个图片URL

警告

kanban_text_ellipsis 已经在 Odoo 9中删除, 由样式text-overflow 所代替。

日历

日历视图将记录显示为每日、每周或每月日历中的事件。它们的根元素是 <calendar>。日历视图中可用的属性:

date_start (必须的)

记录该事件开始日期的记录字段的名称

date_stop

该记录的字段保持为事件结束日期的名字,如果提供 date_stop 属性,记录在日历中可直接移动的 (通过拖放) 

date_delay

替换 date_stop属性,提供一个时间的持续时间而不是日期结束时间

color

用于颜色分割的记录字段的名称。同一颜色段中的记录在日历中分配相同的高亮颜色,颜色是半随机分配的

event_open_popup

在对话框中打开事件,而不是切换到窗体视图,默认情况下禁用该窗体视图

quick_add

在单击时启用快速事件创建:只向用户请求一个name,并尝试创建一个新事件,只需单击该事件和单击事件时间即可。如果快速创建失败,则返回到完整窗体对话框

display

用于事件显示的格式字符串,字段名称应在中括号[]中 

all_day

记录中的布尔字段的名称,指示相应事件是否被标记为长天数(且持续时间不相关)

mode

加载日历时的默认显示模式。 可能的值有: dayweekmonth

甘特图

甘特图视图适当显示甘特图(用于调度)。

甘特图的根元素是 <gantt/>,它没有子元素但有如下属性:

date_start (必须的)

字段名称为每个记录通过事件的开始时间

date_stop

为每个记录提供事件结束持续时间的字段的名称。 可以被 date_delay替换。date_stop 和 date_delay 中的一个(仅一个)必须被提供。

如果记录的字段是 False ,则它被认为是一个 "点事件"并且结束日期将被设置为开始日期

date_delay

提供时间持续时间的字段名称

duration_unit

minutehour (默认), dayweekmonthyear中的一个

default_group_by

进行任务分组的字段名称

type

gantt 经典的甘特图视图 (默认的)

consolidate 在甘特图的任务中巩固了第一个孩子的合并值

planning 显示在甘特图的任务中的计划子项

consolidation

显示记录单元格中的合并值的字段名

consolidation_max

使用“分组”字段作为键和在显示红色单元格之前可达到的最大联合值作为值的字典(例如{"user_id": 100})

警告

该字典的定义必须使用双引号,{'user_id': 100} 不是一个有效的值

string

要在合并值旁边显示的字符串,如果未指定,将使用合并字段的标签

fold_last_level

如果设置了一个值,则最后一个分组级别将折叠。

round_dnd_dates

使任务的开始和结束日期舍入到最近的刻度

drag_resize

任务大小调整,默认是true

可以使用图视图显示记录的有向图。根元素是<diagram>,不接受任何属性。

图视图中的可能子元素是:

node (必须的, 1)

定义图的节点。它的属性是:

object

节点的Odoo模型

shape

与列表视图中的颜色和字体相似的条件形状映射。 唯一有效的形状是 rectangle (默认形状是不规则形状)

bgcolor

shape相同,但有条件地为节点绘制背景颜色。默认的背景颜色是白色,唯一有效的替代颜色是grey

arrow (必须, 1)

定义图的定向边。它的属性有:

object (必须)

边缘的Odoo模型

source (必须)

边缘模型的Many2one字段制定边缘元节点记录

destination (必须)

边缘模型的Many2one字段制定边缘目标节点记录

label

Python属性列表(如引用字符串)。相应属性的值将被连接并显示为边缘的标签

label

图的解释性说明,string属性定义注释的内容。每个label都作为图标题中的一段输出,很容易看到,但没有任何特别的强调。

搜索

搜索视图与以前的视图类型不同,它们不显示内容:虽然它们应用于特定的模型,但它们用于过滤其他视图的内容(一般是聚合视图,如列表视图或图表视图)。除了用例的不同之外,它们的定义方式相同。

搜索视图的根元素是 <search>,它没有属性。

搜索视图的可能子元素是:

field

字段定义具有用户提供值的域或上下文。当生成搜索域时,字段域相互之间组合并通过使用AND进行过滤。

字段可以具有以下属性:

name

要筛选的字段的名称

string

字段标签内容

operator

默认情况下,字段生成表单的域 [(nameoperatorprovided_value)] 中name 是字段的名字,并且provided_value是用户提供可能是过滤的或者转换的值(例如一个月用户预计提供一个选择字段值的标签,而不是值本身)。

operator属性允许重写默认的依赖字段类型的操作符(例如 = 适用浮点字段但是 ilike 使用字符字段)

filter_domain

作为域的搜索域使用完整的域,可以使用self 变量在自定义域中注入所提供的值。 可以用来比单独的operator 生成更灵活的域(例如一次搜索多个字段)

如果operator 和filter_domain 同时提供, filter_domain 优先使用。

context

允许添加上下文的键,包括用户提供的值(关于 domain 作为一个self变量可用的)。 默认情况下,字段不会生成域

域和上下文是包容的,如果指定了context ,两者都会生成。仅生成上下文值,设置filter_domain为一个空列表: filter_domain="[]"

groups

使字段只对特定用户可用

widget

为字段使用特定的搜索小部件 (在标准的Odoo 8.0中唯一的用例是Many2one字段的一个selection小部件)

domain

如果该字段可以提供自动完成(例如 Many2one), 过滤可能的完成结果

filter

过滤器在搜索视图中是一个预定义的切换,它只能启用或禁用。它的主要目的是向搜索上下文添加数据(传递到数据视图的上下文以搜索/过滤),或者向搜索过滤器追加新的部分。

过滤器有如下属性:

string (必须的)

过滤器的标签

domain

一个Odoo域,将追加一个动作域作为搜索域的一部分

context

合并到动作域中生成搜索域的Python字典

name

逻辑名为筛选器,可用于默认启用它,也可以用作继承挂钩

help

过滤器的较长解释文本可以显示为工具提示

groups

使过滤器只对特定用户可用

提示

版本7.0中的新地方。

序列滤波器(无过滤器分离)作为含复合:它们将由OR 而不是通常的AND组成

<filter domain="[('state', '=', 'draft')]"/>
<filter domain="[('state', '=', 'done')]"/>

如果选择了两个筛选器,则将选择其statedraft 或done的记录,但是

<filter domain="[('state', '=', 'draft')]"/>
<separator/>
<filter domain="[('delay', '<', 15)]"/>

如果选择了两个筛选器,则将选择其statedraftdelay小于15的记录。

separator

可用于在简单搜索视图中分隔组筛选器

group

可用于分隔组过滤器,比复杂搜索视图中的separator更具可读性

默认搜索

搜索领域和过滤器可以通过使用search_default_name键的动作context 来配置。 对于字段,值应该是字段中设置的值,对于筛选器,它是布尔值。例如, 假定一个动作上下文中foo 是字段且 bar 是过滤器:

{
  'search_default_foo': 'acro',
  'search_default_bar': 1
}

将自动启用bar 过滤器并为acro搜索foo 

QWeb

qweb视图是标准的qweb模板内部视图的视图。它们没有特定的根元素。

一个qweb视图可以只包含一个单一的模版,并且模板的名称必须匹配视图的完整(包括模块名称)外部ID。

模版应该作为一个定义QWeb视图的快捷方式使用。

 

ps:有翻译不当之处,欢迎留言指正。

原文地址:https://www.odoo.com/documentation/10.0/reference/views.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Odoo中新建自定义视图,需要进行以下操作: 1. 在odoo的python代码中增加新视图类型与视图模式。这可以通过在ir_actions_act_window.py和ir_ui_view.py文件中添加相关代码来实现。例如,在ir_actions_act_window.py文件中,我们可以增加以下代码来定义新的视图模式: ``` # -*- coding: utf-8 -*- from odoo import fields, models class ActWindowView(models.Model): _inherit = 'ir.actions.act_window.view' view_mode = fields.Selection(selection_add=[('eview', 'echart views')]) ``` 在ir_ui_view.py文件中,我们可以添加以下代码来定义新的视图类型: ``` # -*- coding: utf-8 -*- from odoo import fields, models class View(models.Model): _inherit = 'ir.ui.view' type = fields.Selection(selection_add=[('eview', 'echart views')]) ``` 这样,Odoo就可以识别我们新定义的视图类型。 2. 定义js相关文件和模板代码。通过编写相应的javascript文件和模板代码,我们可以实现对自定义视图的布局和行为的控制。这些文件需要与新定义的视图类型相关联,并与视图模板文件进行交互。具体的实现方法可以根据项目需求和技术要求来确定。 这样,在执行以上操作之后,就可以在Odoo中创建自定义视图了。自定义视图可以根据具体需求来设计和实现,包括自定义的布局、交互和样式等方面 。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Odoo自定义视图教程](https://blog.csdn.net/u012739578/article/details/121670077)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值