ODOO视图
视图(Views)定义了模型数据展示的方式。每种类型的视图(View)提供了一种可视化模式(列表、汇总图表等)。可以通过视图的(Views)类型或者指定的标识来调用视图(View)。通过类型调用视图,如果存在多个相同类型的视图,那么依据优先级由低到高选择。
视图继承 允许修改视图布局及内容。
视图定义
一个视图是由一个 ir.ui.view
模型数据记录定义,视图类型由 field
的 arch
属性定义。
<record model="ir.ui.view" id="view_id">
<field name="name">view.name</field>
<field name="model">object_name</field>
<field name="priority" eval="16"/>
<field name="arch" type="xml">
<!-- view content: <form>, <tree>, <graph>, ... -->
</field>
</record>
警告:视图内容格式为XML,
arch
属性必须声明为type="xml"
, 才能被正确解析。
树型视图-Tree Views
树型视图也被称为列表视图(List Views),以表格方式显示数据。他的根元素是<tree>
。最简单的树型视图形式就是利用一个表格显示数据,每个字段作为一列。
<tree string="Idea list">
<field name="name"/>
<field name="inventor_id"/>
</tree>
表单视图-Form Views
表单视图用于建立和编辑单一的数据记录。他的根元素是 <form>
。表单视图可以包含更复杂的元素,例如;分组组件、备注框、交互元素(按钮、输入框)等。
<form string="Idea form">
<group colspan="4">
<group colspan="2" col="2">
<separator string="General stuff" colspan="2"/>
<field name="name"/>
<field name="inventor_id"/>
</group>
<group colspan="2" col="2">
<separator string="Dates" colspan="2"/>
<field name="active"/>
<field name="invent_date" readonly="1"/>
</group>
<notebook colspan="4">
<page string="Description">
<field name="description" nolabel="1"/>
</page>
</notebook>
<field name="state"/>
</group>
</form>
表单视图练习:2-1
定义Course的表单视图,展示课程的名称和描述
表单视图练习-备注:2-2
将Course的表单视图中的 “description”字段放在一个标签页中。
表单视图还可以使用HTML实现更复杂、灵活的页面布局
<form string="Idea Form">
<header>
<button string="Confirm" type="object" name="action_confirm"
states="draft" class="oe_highlight" />
<button string="Mark as done" type="object" name="action_done"
states="confirmed" class="oe_highlight"/>
<button string="Reset to draft" type="object" name="action_draft"
states="confirmed,done" />
<field name="state" widget="statusbar"/>
</header>
<sheet>
<div class="oe_title">
<label for="name" class="oe_edit_only" string="Idea Name" />
<h1><field name="name" /></h1>
</div>
<separator string="General" colspan="2" />
<group colspan="2" col="2">
<field name="description" placeholder="Idea description..." />
</group>
</sheet>
</form>
搜索视图-Search Views
搜索视图用于定义列表视图的搜索字段以及其他的聚合视图,他的根元素是<search>
,由可用于搜索的字段组成。
<search>
<field name="name"/>
<field name="inventor_id"/>
</search>
如果未指定搜索视图,odoo自动生成一个搜索视图,并且只允许使用name
字段进行搜索。
搜索视图练习:2-3
定义Course的搜索视图,允许按照课程的title和description进行搜索。
自定义模块的安装和运行
至此,应该可以安装和运行OpenAcademy模块。
$ ./odoo-bin --addons-path=addons,myaddons
- 进入odoo 的 settings 页面,在最右侧选择进入开发调试模式,Activate the developer mode 或者 Activate the developer mode (with assets);
- 进入odoo 的 apps 页面,在左侧的导航菜单中选择 “Update Apps List” 功能,然后在提示页面中选择 “Update“ 按钮;
- 选择 “Apps” 导航菜单,进入 Apps 页面,去掉搜索框中的 “Apps” 搜索条件(缺省是搜索Apps,但我们开发的是Module);
- 在搜索框中输入 “open”,然后进行搜索,应该可以搜索到 “Open Academy”模块,点击 “Install” 安装;
- 在odoo菜单中寻找 Open Academy菜单项,点击进入相应的页面,查看运行结果;