XML Views
Form Views
Basic Form View
xml
<form>
<sheet>
<group>
<field name="name"/>
<field name="date"/>
<field name="state"/>
</group>
</sheet>
</form>
Form View with Notebook
xml
<form>
<sheet>
<group>
<field name="name"/>
<field name="date"/>
</group>
<notebook>
<page string="First Tab">
<group>
<field name="field1"/>
<field name="field2"/>
</group>
</page>
<page string="Second Tab">
<group>
<field name="field3"/>
<field name="field4"/>
</group>
</page>
</notebook>
</sheet>
</form>
Form View with Statusbar
xml
<form>
<header>
<field name="state" widget="statusbar"/>
</header>
<sheet>
<group>
<field name="name"/>
<field name="date"/>
</group>
</sheet>
</form>
Tree Views
Basic Tree View
xml
<tree>
<field name="name"/>
<field name="date"/>
<field name="state"/>
</tree>
Tree View with Decorations
xml
<tree decoration-info="state == 'draft'" decoration-success="state == 'done'">
<field name="name"/>
<field name="date"/>
<field name="state"/>
</tree>
Tree View with Buttons
xml
<tree>
<field name="name"/>
<field name="date"/>
<field name="state"/>
<button name="action_confirm" string="Confirm" type="object"
attrs="{'invisible': [('state', '!=', 'draft')]}"/>
</tree>
Search Views
Basic Search View
xml
<search>
<field name="name"/>
<field name="date"/>
<filter string="Draft" name="draft" domain="[('state', '=', 'draft')]"/>
<group expand="0" string="Group By">
<filter string="State" name="state" context="{'group_by': 'state'}"/>
</group>
</search>
Advanced Search View
xml
<search>
<field name="name"/>
<field name="partner_id"/>
<separator/>
<filter string="My Draft" name="my_draft"
domain="[('state', '=', 'draft'), ('user_id', '=', uid)]"/>
<filter string="Confirmed" name="confirmed"
domain="[('state', '=', 'confirmed')]"/>
<separator/>
<group expand="0" string="Group By">
<filter string="State" name="state" context="{'group_by': 'state'}"/>
<filter string="User" name="user" context="{'group_by': 'user_id'}"/>
</group>
</search>
Calendar Views
Basic Calendar View
xml
<calendar string="Calendar" date_start="start_date" date_stop="end_date">
<field name="name"/>
<field name="partner_id"/>
</calendar>
Calendar View with Color
xml
<calendar string="Calendar" date_start="start_date" date_stop="end_date"
color="partner_id" quick_add="false">
<field name="name"/>
<field name="partner_id"/>
</calendar>
Kanban Views
Basic Kanban View
xml
<kanban>
<field name="name"/>
<field name="state"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<strong><field name="name"/></strong>
<div><field name="state"/></div>
</div>
</t>
</templates>
</kanban>
Kanban View with Image
xml
<kanban>
<field name="name"/>
<field name="image"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<img t-if="record.image.raw_value"
t-att-src="image_url('module', 'image', record.image.raw_value)"/>
<strong><field name="name"/></strong>
</div>
</t>
</templates>
</kanban>
Common Attributes
Field Attributes
xml
<field name="field_name"
readonly="1"
required="1"
invisible="1"
nolabel="1"
placeholder="Enter value"
help="Help text"
widget="many2one"
options="{'no_create': True}"
class="oe_highlight"/>
Group Attributes
xml
<group string="Group Title"
col="2"
colspan="2"
colspan="4"
class="oe_subtotal_footer_separator">
<field name="field1"/>
<field name="field2"/>
</group>
Button Attributes
xml
<button name="action_method"
string="Button Text"
type="object"
class="oe_highlight"
icon="fa-check"
attrs="{'invisible': [('state', '!=', 'draft')],
'readonly': [('state', '=', 'done')]}"/>
Inheritance
View Inheritance
xml
<record id="view_form_inherit" model="ir.ui.view">
<field name="name">model.form.inherit</field>
<field name="model">model.name</field>
<field name="inherit_id" ref="base_view_id"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="new_field"/>
</xpath>
</field>
</record>
Multiple Inheritance
xml
<record id="view_form_inherit_multiple" model="ir.ui.view">
<field name="name">model.form.inherit.multiple</field>
<field name="model">model.name</field>
<field name="inherit_id" ref="base_view_id"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="new_field"/>
</xpath>
</field>
</record>