Odoo Views (三) - Graphs Kanban

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 groups
    • measure 用這個字段的值來進行統計。
  • interval 作用在 date 和 datetime field上,按照指明的方式(day, week, month, quater, or year)來替換 按照默認的 按天分組,和按秒分組

注意: 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 instance
    • widget 當前 KanbanRecord(),可以用來獲取 meta-information。這個 method 也可以直接在 template context 中調用,不需要通過 widget. 來調用。
    • record 一個包含所有顯示請求的字段的 object。每個字段有兩個屬性 valueraw_value,前者更具當前用戶提供的參數自動 formatted。後者則是通過read() 獲取的原生值。(除了 date 和 datetime 兩個字段,他們將會根據用戶的 locale 來渲染)
    • formats the web.formats() module to manipulate and convert values
    • read_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 的模式打開當前 record
    • edit 用 編輯的模式打開
    • 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 轉成 image

  • kanban_text_ellipsis(string[, size=160])
    如果text超過指定的長度,就追加省略號來顯示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章