Form view 就是用來詳細的展示單個 record 的各項值。跟節點就是 <form>
,它由一些基本的 HTML 和一些特殊結構和語意來組成。
Structural components 結構組成
用來設定 form 的基本頁面結構
notebook
定義了一些tabbed section
,每一個 tab 都是以<page>
節點的方式定義出來,這個<page>
有以下屬性:string
(required) tab 的 titleaccesskey
an HTML accesskeyattrs
標準的基於 record values 的動態屬性
group
用來設置forms 中的佈局。默認的,groups定義了 兩列,它的大多數子節點都只佔用一列。如果<field>
在<group>
內部,那麼將會默認的給這個field一個 label。那麼這個 label 和 這個 field 各佔 一列。
<group>
的默認列數可以通過設置col
屬性來被修改。而它裏面的 element 可以設置colspan
屬性來設置佔用多少列。它的子節點是 horizontally 佈局的。
<group>
可以設置string
屬性,來顯示 title。newline
僅僅在<group>
的內部生效。強制換行separator
一條小的水平分割線,可以設置string
屬性sheet
作爲<form>
的直接孩子節點。更加響應式的佈局header
通常和<sheet>
一起使用,在 sheet 上面生成一個滿寬度的 header,主要用於放置 workflow button 和 狀態欄。
Semantic components 語義組成
設置了一些與Odoo系統的交互。
button
與 Odoo 系統交互,和 list view 中的 button 一樣。field
渲染當前 record 的某個字段,有如下屬性:name
必選的,就是指明哪個字段將會被渲染出來。widget
fields 通常有默認的渲染方式,通過這個可以指定其他渲染方式。options
JSON object,用來給當前使用的 widget 提供一些特殊的配置信息class
HTML class,通常是下面幾種值oe_inline
阻止默認的換行oe_left
,oe_right
當前元素float
到對應位置oe_read_only
,oe_edit_only
只在對應模式下,才顯示這個fieldoe_no_button
避免many2one
field 的導航 buttonoe_avatar
圖像 field 的 顯示方式
groups 特殊組的人,才顯示這個字段
on_change 8.0廢棄,請使用
openerp.api.onchange
attrs 根據不同規則,顯示不同屬性。
domain 作用於關係型字段,通常用來篩選出合適的值,用來給用戶選擇。
context 作用於關係型字段,去獲取合適的值的時候,傳入 context
readonly 在編輯和讀的模式下,都是隻讀的,不能修改
required 設置之後,該字段必填,如果未填寫,彈出提示。
nolabel 只有當前 field 是 group 的直接孩子時,才生效。取消默認 label 顯示
- placeholder 在字段沒有值的時候,顯示一些幫助信息。
- mode 作用於
one2many
字段,顯示與這個字段有關聯的record 。值有tree
,form
,kanban
,graph
。默認是tree
- help 當鼠標移動在這個字段上時,顯示一些幫助信息
- filename
- password 這個字段的模式爲 password, 填寫後顯示 星號。
Business Views guidelines
Business views 主要是面向普通的用戶,而非開發人員。比如在:Opportunites,Products,Partners,Tasks,Projects,etc.
一般來說,a business view 是由下面幾個部分組成:
- 頂部的一個 status bar
- 中間的 sheet
- 底部是歷史操作記錄和各種留言
在XML中,大部分 form view 都是如下結構定義的
<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>
The Status Bar
這個bar 的作用就是顯示當前 record 的 status 狀態,以及一些 action buttons