Toggle navigation

视图

共同结构

视图对象公开了许多字段,除非另有说明,否则它们是可选的。

name(必填)
仅在某种列表中查找一个时,它仅用作视图的助记符/描述
model
链接到视图的模型(如果适用)(不适用于QWeb视图)
priority

客户端程序可以通过id(model,type)请求视图。 对于后者,将搜索正确类型和模型的所有视图,并返回具有最低priority编号的视图(它是“默认视图”)。

priority还定义了视图继承期间的应用程序顺序

arch
视图布局的描述
groups_id
Many2many字段允许查看/使用当前视图的组
inherit_id
当前视图的父视图,请参见继承,默认情况下未设置
mode
继承模式,请参阅继承 如果未设置inherit_id,则mode只能是primary 如果设置inherit_id,默认情况下extension,但可以显式设置为primary
application
定义可切换视图的网站功能。 默认情况下,始终应用视图

继承

视图匹配

  • 如果(model, type)请求视图,则具有正确模型和类型的视图,mode = primary且最低优先级匹配
  • id请求视图时,如果其模式不是primary,则最接近的父模式primary匹配

视图解析

解析为请求/匹配的primary视图生成最终arch

  1. 如果视图具有父级,则完全解析父级,然后应用当前视图的继承规范
  2. 如果视图没有父视图,则按原样使用arch
  3. 当前视图的与模式extension儿童抬头及其继承规格被施加深度优先(子视图被施加,那么它的孩子,那么它的兄弟姐妹)

应用子视图的结果产生最终的arch

继承规范

继承规范由元素定位器组成,以匹配父视图中的继承元素,以及将用于修改继承元素的子元素。

有三种类型的元素定位器可用于匹配目标元素:

  • 带有expr属性的xpath元素。 exprXPath表达式2应用于当前arch,它找到的第一个节点是匹配
  • 具有name属性的字段元素将第一个字段名称相匹配。 All other attributes are ignored during matching
  • 任何其他元素:具有相同名称和相同属性的第一个元素(忽略positionversion属性)匹配

继承规范可能有一个可选的position属性,指定匹配节点应如何更改:

inside (default)
继承规范的内容将附加到匹配的节点
replace
继承规范的内容替换匹配的节点。 在规范内容中仅包含$ 0的任何文本节点将被匹配节点的完整副本替换,从而有效地包装匹配的节点。
after
在匹配的节点之后,继承规范的内容被添加到匹配节点的父节点
before
继承规范的内容在匹配节点之前添加到匹配节点的父节点
attributes

继承规范的内容应该是具有name属性的attribute元素和可选的主体:

  • 如果attribute元素有一个主体,则在匹配的节点上创建一个以name命名的新属性,并将attribute元素的文本作为值
  • 如果attribute元素没有主体,则从匹配的节点中删除以name命名的属性。 如果不存在此类属性,则会引发错误

视图的规格按顺序应用。

Lists

列表视图的根元素是 <tree>3. 列表视图的根目录可以具有以下属性:

editable

默认情况下,选择列表视图的行将打开相应的表单视图 editable属性使列表视图本身可就地编辑。

有效值为topbottom,使new记录分别出现在列表的顶部或底部。

内联表单视图的体系结构是从列表视图派生的。 因此,列表视图接受大多数在表单视图的字段和按钮上有效的属性,但如果列表视图不可编辑则它们可能没有任何意义。

default_order

覆盖视图的排序,替换模型的默认顺序。 该值是以逗号分隔的字段列表,后缀为desc以按相反顺序排序:

<tree default_order="sequence,name desc">
colors

自9.0版开始不推荐使用: replaced by decoration-{$name}

fonts

自9.0版开始不推荐使用: replaced by decoration-{$name}

decoration-{$name}

允许根据相应记录的属性更改行文本的样式。

值是Python表达式。 对于每条记录,使用记录的属性作为上下文值来计算表达式,如果true,则将相应的样式应用于该行。 其他上下文值是uid(当前用户的id)和current_date(当前日期为字符串yyyy-MM-dd )。

{$name} can be bf (font-weight: bold), it (font-style: italic), or any bootstrap contextual color (danger, info, muted, primary, success or warning).

create, edit, delete
允许dis通过将相应的属性设置为false来查看视图中的相应操作
on_write

仅在可编辑列表中有意义。 应该是列表模型上方法的名称。 在创建或编辑该记录(在数据库中)之后,将使用记录的id调用该方法。

该方法应返回要加载或更新的其他记录的ID列表。

string

视图的替代可翻译标签

自8.0版以来已弃用: 不再显示了

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

button

在列表单元格中显示一个按钮

icon
用于显示按钮的图标
string
  • 如果没有图标,则按钮的文本
  • 如果图标有图标alt文本
type

按钮类型,表示单击它如何影响Odoo:

workflow (default)
向工作流发送信号。 按钮的name是工作流信号,行的记录作为参数传递给信号
object
在列表的模型上调用方法。 按钮的name是方法,使用当前行的记录ID和当前上下文调用该方法。
action
加载执行ir.actions,按钮的name是操作的数据库ID。 使用列表的模型(作为active_model),当前行的记录(active_id)以及列表中当前加载的所有记录(active_ids ,可能只是与当前搜索匹配的数据库记录的子集)
name
see type
args
see type
attrs

基于记录值的动态属性。

如果True在单元格上设置了相应的属性,则在当前行的记录的上下文中评估属性到域,域的映射。

可能的属性是invisible(隐藏按钮)。

states

invisible attrs的简写:状态列表,逗号分隔,要求模型具有状态字段并且在视图中使用它。

如果记录在列出的某个状态中而不是,则使按钮invisible

context
在执行按钮的Odoo调用时合并到视图的上下文中
confirm
在执行按钮的Odoo呼叫之前显示(以及用户接受)的确认消息
field

定义一列,其中应为每条记录显示相应的字段。 可以使用以下属性:

name
要在当前模型中显示的字段的名称。 给定名称每个视图只能使用一次
string
字段列的标题(默认情况下,使用模型字段的字符串
invisible
获取并存储字段,但不显示表中的列。 对于不应显示但被例如使用的字段所必需的 @colors
groups
列出应该能够看到字段的组
widget

字段显示的替代表示。 可能的列表视图值是:

progressbar
float字段显示为进度条。
many2onebutton
如果填充了字段,则用一个复选标记替换m2o字段的值,如果不填充则用十字标记替换
handle
对于sequence字段,而不是显示字段的值只显示拖动
sum, avg
在列的底部显示相应的聚合。 仅在当前显示的记录上计算聚合。 聚合操作必须与相应字段的group_operator匹配
attrs
基于记录值的动态属性。 仅影响当前字段,例如不可见会隐藏字段但保留其他记录的相同字段可见,它不会隐藏列本身

Forms

表单视图用于显示单个记录中的数据。 它们的根元素是 <form>. 它们由具有附加结构和语义组件的常规HTML组成。

结构部件

结构组件提供具有很少逻辑的结构或“视觉”特征。 它们在表单视图中用作元素或元素集。

notebook

定义选项卡式部分。 每个选项卡都是通过page子元素定义的。 页面可以具有以下属性:

string (required)
标签的标题
accesskey
an HTML accesskey
attrs
基于记录值的标准动态属性
group

用于在表单中定义列布局。 默认情况下,组定义了2列,而组的大多数直接子项都只占用一列。 字段组的直接子节点默认显示标签,标签和字段本身各有一个colspan。

可以使用col属性自定义中的列数,可以使用colspan自定义元素采用的列数。

子项是水平布局的(在更改行之前尝试填充下一列)。

组可以具有字符串属性,该属性显示为组的标题

newline
仅在group元素中有用,提前结束当前行并立即切换到新行(不事先填充任何剩余列)
separator
小的水平间距,string属性表现为节标题
sheet
可以用作form的直接子项,以获得更窄,响应更快的表单布局
header
结合sheet,在工作表本身上方提供全宽位置,通常用于显示工作流程按钮和状态小部件

语义组件

语义组件绑定并允许与Odoo系统交互。 可用的语义组件是:

button
调用Odoo系统,类似于列表视图按钮
field

渲染(并允许编辑,可能)当前记录的单个字段。 可能的属性是:

name (mandatory)
要呈现的字段的名称
widget
字段具有基于其类型的默认呈现(例如CharMany2one)。 widget属性允许使用不同的呈现方法和上下文。
options
JSON对象指定字段窗口小部件的配置选项(包括默认窗口小部件)
class

要在生成的元素上设置HTML类,常见的字段类是:

oe_inline
防止通常的换行后跟字段
oe_left, oe_right
将字段浮动到相应的方向
oe_read_only, oe_edit_only
仅在相应的表单模式下显示字段
oe_no_button
避免在Many2one中显示导航按钮
oe_avatar
对于图像字段,将图像显示为“头像”(方形,最大尺寸90x90,某些图像装饰)
groups
仅显示特定用户的字段
on_change

在编辑此字段的值时调用指定的方法,可以生成更新其他字段或显示用户的警告

自8.0版以来已弃用: 在模型上使用odoo.api.onchange()

attrs
基于记录值的动态元参数
domain
仅适用于关系字段,在显示现有记录以供选择时应用的过滤器
context
仅用于关系字段,在获取可能的值时传递的上下文
readonly
在readonly和edition模式下显示字段,但永远不要让它可编辑
required
如果字段没有值,则生成错误并阻止保存记录
nolabel
不自动显示字段的标签,只有在字段是group元素的直接子元素时才有意义
placeholder
帮助消息显示在empty字段中。 可以用复杂的形式替换字段标签。 不应该是数据的示例,因为用户可能会将占位符文本与填充字段混淆
mode
对于One2many,显示模式(视图类型)用于字段的链接记录。 其中一个treeformkanbangraph 默认为tree(列表显示)
help
用户在悬停字段或其标签时显示的工具提示
filename
对于二进制字段,提供文件名的相关字段的名称
password
表示Char字段存储密码,不应显示其数据

业务视图指南

业务视图面向常规用户,而非高级用户。 示例包括:机会,产品,合作伙伴,任务,项目等。

通常,业务视图由组成

  1. 顶部的状态栏(具有技术或业务流程),
  2. 中间的一张纸(表格本身),
  3. 历史和评论的底部。

从技术上讲,新的表单视图在XML中的结构如下:

<form>
    <header> ... content of the status bar  ... </header>
    <sheet>  ... content of the sheet       ... </sheet>
    <div class="oe_chatter"> ... content of the bottom part ... </div>
</form>

状态栏

状态栏的目的是显示当前记录和操作按钮的状态。

按钮

按钮的顺序遵循业务流程。 例如,在销售订单中,逻辑步骤是:

  1. 发送报价
  2. 确认报价
  3. 创建最终发票
  4. 发送货物

突出显示的按钮(默认为红色)强调逻辑下一步,以帮助用户。 它通常是第一个活动按钮。 另一方面,取消按钮必须保持灰色(正常)。 例如,在发票中,按钮返回绝不能为红色。

从技术上讲,通过添加类“oe_highlight”突出显示按钮:

<button class="oe_highlight" name="..." type="..." states="..."/>
现状

使用状态栏小部件,并以红色显示当前状态。 所有流程共同的状态(例如,销售订单以报价开头,然后我们发送,然后它成为完整的销售订单,最后完成)应该始终可见但是异常或状态取决于特定的子流应该只在当前时可见。

按照字段中使用的顺序(选择字段中的列表等)显示状态。 始终可见的状态使用属性statusbar_visible指定。

<field name="state" widget="statusbar"
    statusbar_visible="draft,sent,progress,invoiced,done" />

表格

所有业务视图应该看起来像打印的工作表:

  1. <form><page>中的元素不定义组,其中的元素根据普通的HTML规则进行布局。 可以使用<group>或正常<div> 元素显式对其内容进行分组。
  2. 默认情况下,元素<group>在其中定义两列,除非使用属性col="n" 列具有相同的宽度(组宽度的1 / n)。 使用<group>元素生成一列字段。
  3. T要为节提供标题,请将string属性添加到<group>元素:

    <group string="Time-sensitive operations">
    

    这取代了之前使用的<separator string="XXX"/>.

  4. <field>元素不会生成标签,除非是<group> element1的直接子元素. 使用<label for="field_name>生成字段的标签。
表头

某些工作表包含带有一个或多个字段的标题,这些字段的标签仅在编辑模式下显示。

View modeEdit mode

使用HTML文本,<div>, <h1>, <h2>…生成漂亮的标题,使用类oe_edit_only<label>仅在编辑模式下显示字段的标签。 oe_inline类将使字段内联(而不是块):字段后面的内容将显示在同一行而不是下面的行上。 上面的表单由以下XML生成:

<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>

<label for="planned_revenue" class="oe_edit_only"/>
<h2>
    <field name="planned_revenue" class="oe_inline"/>
    <field name="company_currency" class="oe_inline oe_edit_only"/> at
    <field name="probability" class="oe_inline"/> % success rate
</h2>
按钮框

可以在表单中显示许多相关的操作或链接。 例如,在商机表单中,“安排呼叫”和“安排会议”操作在使用CRM时具有重要作用。 不要将它们放在“更多”菜单中,而是将它们直接放在工作表中作为按钮(在顶部),以使它们更加可见,更容易访问。

从技术上讲,按钮放在<div>内,将它们分组为工作表顶部的块。

<div class="oe_button_box" name="button_box">
    <button string="Schedule/Log Call" name="..." type="action"/>
    <button string="Schedule Meeting" name="action_makeMeeting" type="object"/>
</div>
组和标题

现在使用<group>元素生成一列字段,并带有可选标题。

<group string="Payment Options">
    <field name="writeoff_amount"/>
    <field name="payment_option"/>
</group>

建议在表单上有两列字段。 为此,只需将包含字段的<group> 元素放在顶级<group>元素中即可。

为了使视图扩展更简单,建议在<group> 元素上添加name属性,以便可以在正确的位置轻松添加新字段。

特例:小计

某些类被定义为在发票表单中呈现小计:

<group class="oe_subtotal_footer">
    <field name="amount_untaxed"/>
    <field name="amount_tax"/>
    <field name="amount_total" class="oe_subtotal_footer_separator"/>
    <field name="residual" style="margin-top: 10px"/>
</group>
占位符和内联字段

有时字段标签会使表单过于复杂。 可以省略字段标签,而是将占位符放在字段内。 仅当字段为空时,占位符文本才可见。 占位符应该告诉字段内的内容,不能是一个例子,因为它们经常与填充数据混淆。

也可以通过在显式块元素(如<div>)内“内联”将字段组合在一起。 这允许将语义相关字段分组,就好像它们是单个(复合)字段一样。

以下示例取自Leads表单,显示占位符和内联字段(zip和city)。

Edit modeView mode
<group>
    <label for="street" string="Address"/>
    <div>
        <field name="street" placeholder="Street..."/>
        <field name="street2"/>
        <div>
            <field name="zip" class="oe_inline" placeholder="ZIP"/>
            <field name="city" class="oe_inline" placeholder="City"/>
        </div>
        <field name="state_id" placeholder="State"/>
        <field name="country_id" placeholder="Country"/>
    </div>
</group>
图片

图片,如头像,应显示在工作表的右侧。 产品形式如下:

上面的表单包含一个以以下内容开头的<sheet>元素:

<field name="product_image" widget="image" class="oe_avatar oe_right"/>
标签

大多数Many2many字段(如类别)可以更好地呈现为标记列表。 使用小部件many2many_tags

<field name="category_id" widget="many2many_tags"/>

配置表单指南

配置表单示例:阶段,休假类型等。 这涉及每个应用程序配置下的所有菜单项(如销售/配置)。

  1. 没有标题(因为没有州,没有工作流,没有按钮)
  2. 没有表单

对话表单指南

示例:机会中的“安排呼叫”。

  1. 避免使用分隔符(标题已经在弹出标题栏中,因此另一个分隔符不相关)
  2. 避免取消按钮(用户通常会关闭弹出窗口以获得相同的效果)
  3. 动作按钮必须突出显示(红色)
  4. 如果有文本区域,请使用占位符而不是标签或分隔符
  5. 就像在常规表单视图中一样,将按钮放在<header>元素中

配置向导指南

示例:设置/配置/销售。

  1. 永远在线(没有弹出窗口)
  2. 没有sheet表格
  3. 保持取消按钮(用户无法关闭窗口)
  4. “Apply”按钮必须为红色

图表

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

type
bar(默认值),pieline之一,要使用的图表类型
stacked
仅用于bar图表。 如果存在并设置为True,则堆叠组中的条形

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

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

指示字段是应该用作分组标准还是用作组内的聚合值。 可能的值是:

row (default)
按指定的字段分组。 所有图表类型都支持至少一个级别的分组,有些可能支持更多。 对于数据透视图,每个组都有自己的行。
col
仅由数据透视表使用,创建逐列组
measure
字段在一个组内聚合
interval
按日期和日期时间字段,按指定的时间间隔分组(季度)而不是分组特定的日期时间(固定的第二个分辨率)或日期(固定的日期分辨率)。

Pivots

数据透视视图用于将聚合可视化为数据透视表 它的根元素是<pivot>,它可以采用以下属性:

disable_linking
设置为True以删除表格单元格到列表视图的链接。
display_quantity
设置为true以默认显示“数量”列。

枢轴视图中允许的元素与图表视图中的元素相同。

Kanban

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

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

default_group_by
如果通过操作或当前搜索未指定分组,是否应对看板视图进行分组。 当没有指定分组时,应该是要分组的字段的名称
default_order
如果用户尚未对记录进行排序(通过列表视图),则使用卡片排序顺序
class
将HTML类添加到看板视图的根HTML元素
group_create
是否可以显示“添加新列”栏。 默认值:true。
group_delete
是否可以通过上下文菜单删除组。 默认值:true。
group_edit
是否可以通过上下文菜单编辑组。 默认值:true。
quick_create

是否应该可以在不切换到表单视图的情况下创建记录。 默认情况下,将「看板视图」分组时启用quick_create,否则启用时禁用。

设置为true以始终启用它,并设置为false以始终禁用它。

view元素的可能子元素是:

field

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

可能的属性是:

name (required)
要获取的字段的名称
templates

定义QWeb模板的列表。 为清晰起见,卡片定义可以拆分为多个模板,但看板视图必须定义至少一个根模板看板框,每个模板将为每个记录呈现一次。

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

instance
当前的Web客户端实例
widget
当前的KanbanRecord(),可用于获取一些元信息。 这些方法也可以直接在模板上下文中使用,不需要通过widget访问
record
一个对象,其中包含所有请求的字段作为其属性。 每个字段都有两个属性valueraw_value,前者根据当前用户参数格式化,后者是来自read()的直接值(根据用户的语言环境格式化的日期和日期时间字段除外
formats
web.formats()模块来操作和转换值
read_only_mode

不言自明

按钮和字段

虽然大多数看板模板都是标准的QWeb,但看板视图特别处理字段按钮a元素:

  • 默认情况下,字段将替换为其格式化值,除非它们与特定的看板视图窗口小部件匹配
  • 具有type属性的按钮和链接将变为执行与Odoo相关的操作,而不是其标准HTML功能。 可能的类型是:

    action, object
    Odoo按钮的标准行为,可以使用与标准Odoo按钮相关的大多数属性。
    open
    以只读模式在表单视图中打开卡片的记录
    edit
    在可编辑模式下在表单视图中打开卡片的记录
    delete
    删除卡的记录并删除卡

Javascript API

class KanbanRecord()

Widget()处理将单个记录呈现到卡片上。 在模板上下文中作为小部件在其自己的呈现中可用。

kanban_color(raw_value)

将颜色分段值转换为看板颜色类oe_kanban_color_ color_index 内置CSS提供的类最多为color_index 9。

kanban_getcolor(raw_value)

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

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

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

Arguments
  • modelString) - 托管图像的模型
  • fieldString) - 保存图像数据的字段名称
  • id - 包含要显示的图像的记录的标识符
  • cacheNumber) - 应该覆盖浏览器默认的缓存持续时间(以秒为单位)。 0完全禁用缓存
Returns
图片网址

日历

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

date_start (required)
保存事件开始日期的记录字段的名称
date_stop
保存事件结束日期的记录字段的名称,如果提供了date_stop,记录将直接在日历中变为可移动(通过拖放)
date_delay
替代date_stop,提供事件的持续时间而不是结束日期
color
用于颜色分割的记录字段的名称 同一颜色段中的记录在日历中分配相同的突出显示颜色,颜色半随机分配。
event_open_popup
在对话框中打开事件而不是切换到窗体视图,默认情况下禁用
quick_add
在点击时启用快速事件创建:仅询问用户名称并尝试使用该事件创建新事件和单击的事件时间。 如果快速创建失败,则回退到完整表单对话框
display
事件显示的格式字符串,字段名称应在括号内[and]
all_day
记录上的布尔字段的名称,指示相应的事件是否标记为一天(并且持续时间不相关)
mode
加载日历时的默认显示模式。 可能的属性是:dayweekmonth

Gantt

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

甘特图视图的根元素是<gantt/>,它没有子节点但可以采用以下属性:

date_start (required)
提供每条记录事件的开始日期时间的字段名称。
date_stop

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

如果记录的字段为False,则假定它是“点事件”,结束日期将设置为开始日期

date_delay
提供事件持续时间的字段名称
duration_unit
one of minute, hour (default), day, week, month, year
default_group_by
用于对任务进行分组的字段名称
type

gantt经典甘特图(默认)

第一个子类的consolidate值合并在甘特图的任务中

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

consolidation
字段名称,用于显示记录单元格中的合并值
consolidation_max

将“group by”字段作为键的字典,以及在以红色显示单元格之前可以达到的最大合并值(例如{“user_id”:100}

string
要显示在合并值旁边的字符串,如果未指定,将使用合并字段的标签
fold_last_level
如果设置了值,则折叠最后一个分组级别
round_dnd_dates
允许将任务的开始和结束日期舍入到最近的刻度标记
drag_resize
调整任务大小,默认为true

图表视图可用于显示记录的有向图。 根元素是 <diagram>,不带任何属性。

Possible children of the diagram view are:

node (required, 1)

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

object
节点的Odoo模型
shape
条件形状映射类似于列表视图中的颜色和字体 唯一有效的形状是矩形(默认形状是省略号)
bgcolor
shape相同,但有条件地映射节点的背景颜色。 默认背景颜色为白色,唯一有效的替代方法是灰色
arrow (required, 1)

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

object (required)
边缘的Odoo模型
source (required)
边缘模型的Many2one字段指向边的源节点记录
destination (required)
边缘模型的Many2one字段指向边缘的目标节点记录
label
Python属性列表(作为引用字符串)。 相应属性的值将连接并显示为边的标签
label
对于图表的解释性说明,string属性定义了笔记的内容。 每个标签在图表标题中作为段落输出,很容易看到,但没有特别强调。

Search defaults

Search fields and filters can be configured through the action's context using search_default_name keys. For fields, the value should be the value to set in the field, for filters it's a boolean value. For instance, assuming foo is a field and bar is a filter an action context of:

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

will automatically enable the bar filter and search the foo field for acro.

QWeb

QWeb views are standard QWeb templates inside a view's arch. They don't have a specific root element.

A QWeb view can only contain a single template4, and the template's name must match the view's complete (including module name) external id.

template should be used as a shortcut to define QWeb views.

[1] for backwards compatibility reasons
[2] an extension function is added for simpler matching in QWeb views: hasclass(*classes) matches if the context node has all the specified classes
[3] for historical reasons, it has its origin in tree-type views later repurposed to a more table/list-type display
[4] or no template if it's an inherited view, then it should only contain xpath elements