Graphs
Graphs view 就是用來將一些 record 來數據可視化。root element is <graph>
。可以對它設置如下屬性:
type
值可以是,bar
(default),pie
,line
statced
僅僅在bar
的情況下生效,如果設置爲True
, 將會按照組分割,然後疊在一起。
<grahp>
下的孩子節點,只能是 <field>
,這個<field>
可以有下面幾個屬性:
name
(required) 指出需要在 group中使用哪些字段,通常是用來指明按照這個字段分組。type
指明這個字段是用來分組的,還是用來計算合計值的。有以下值:row
(default),按照這個字段來進行分組,col
只在 pivot view 中生效,用來創建 column-wise groupsmeasure
用這個字段的值來進行統計。
interval
作用在 date 和 datetime field上,按照指明的方式(day
,week
,month
,quater
, oryear
)來替換 按照默認的 按天分組,和按秒分組
注意: Graph view 的統計是根據數據庫中的值來計算的,如果某個字段沒有存在數據庫中,那麼不能在graph view中生效
Pivots
用來顯示數據透視表, 根節點是 <pivot>
,可以對它設置如下屬性:
disable_linking
設置爲True
,可以取消默認的點擊數據透視表單元格,跳轉到對應的 list view 中display_quantity
設置爲True
後,將會默認顯示數量
其他的都和 Graph View 一樣
Kanban
kanban view 是一中數據可視化的 kanban 面板:它將普通的 record 用小卡片的方式展現出來。一半像 list view,一半像不可編輯的 form view。這裏面的 records 可能會是按照某種狀態來分組顯示,用以直觀的查看 workflow的流程。也可以不分組,就普通的顯示出來。
根節點是 <kanban>
,可以對其設置如下屬性:
default_group_by
指明當某個action或者search沒有明確制定按照哪個字段分組時,就按照這裏設定的值來分組顯示,值應該爲某個字段的"name"
.default_order
指明 cards 的排序方式class
添加 HTML classes 到這個根節點中quick_create
用來指明,是否可以在kanban view中直接創建一個新的 record,而不用跳轉到 form view去創建。默認情況下,如果當前 kanban是被分組顯示的,那麼就可以直接創建。沒有分組的話,是不可以創建。設置爲true
,兩種情況都可以快捷創建。false
,任何情況不可以快捷創建
可能的孩子節點有:
<field>
有用來指明在 kanban logic中使用哪些字段來統計,如果這個 field 僅僅是在 kanban view中顯示出來,那麼就不需要 pre-declared,可設置以下屬性:name
(required)sum
,avg
,min
,max
,count
。在 kanban column的頂部顯示對應字段的統計值,the field’s value is the label of the aggregation (a string). Only one aggregate operation per field is supported. (譯者注:自己測試了一下,並沒有效果。在自帶模塊中搜索,也沒有看到kanban中的字段設置了這些屬性)
<templates>
定義一些 QWeb templates,爲了更加清楚的查看 cards,可能定義多個 template。但是有一個是必需定義的,那就是kanban-box
,每一個 record都會被 rendered once。kanban view 使用 javascript qweb,同時提供一些 context 變量:instance
當前 Web Client instancewidget
當前 KanbanRecord(),可以用來獲取 meta-information。這個 method 也可以直接在 template context 中調用,不需要通過widget.
來調用。record
一個包含所有顯示請求的字段的 object。每個字段有兩個屬性value
和raw_value
,前者更具當前用戶提供的參數自動 formatted。後者則是通過read()
獲取的原生值。(除了 date 和 datetime 兩個字段,他們將會根據用戶的 locale 來渲染)formats
the web.formats() module to manipulate and convert valuesread_only_mode
就是字面意思。
buttons and fields
雖然多數的 kanban templates 都是 standard QWeb,但是可以通過一定的方法,使 <field>
, <button>
, <a>
元素用不同的方式處理。
默認的,fields都顯示它的 formatted value,除非 the match specific kanban view widget
buttons and links 設置了
type
屬性後,將會調用 Odoo 的相關方法,而不是其在 HTML 中的意義了.type
的值可以設置爲:action
,object
。 這個就和 List view , form view中的 button 類似了。open
用 read only 的模式打開當前 recordedit
用 編輯的模式打開delete
刪除 record
Javascript API
* class KanbanRecord()
*
Widget()
用來將一個 record 渲染成一個 card。Available within its own rendering as widget in the template context.
kanban_color(raw_value)
將當前 card 添加樣式oe_kanban_color_color_index
,默認定義好的 color_index 是 0到9。kanban_getcolor(raw_value)
將一個 color segmentation 轉換成標準的 color_index(0 - 9)。color segmentation 可以是數字或這字符串kanban_image(model, field, id[, cache][, options])
生成一個 URL 用來將field 轉成 imagekanban_text_ellipsis(string[, size=160])
如果text超過指定的長度,就追加省略號來顯示。