不同的使用者會想看到,不同的資料呈現形式,圖書館會員會想看到什麼時候該還書,圖書館管理員會想看到現在有誰書籍逾期了,並寄信或電話通知對方,我們前面已經學會怎麼新增欄位及 UI 元件,接下來我們來探索不同的資料呈現形式。
資料呈現形式中,我們最常看到,也是最常用到的即是 List View,每一列都是一筆資料,並且以欄位隔開,而每個欄位的最頂端是這個欄位的名稱,可以想想成是一個 Excel 形式。
<record id="view_tree_checkout" model="ir.ui.view">
<field name="name">Checkout Tree</field>
<field name="model">library.checkout</field>
<field name="arch" type="xml">
<tree>
<field name="request_date" />
<field name="member_id" />
</tree>
</field>
</record>
注意,是用 <tree>
來表示 List View。
<calendar>
<pivot>
<activity>
<graph>
我們要回顧這個月書籍借閱的情況,就可以使用 Calendar View,還能抓到哪幾天借閱的人數比較多,可以考慮在那幾天新增人手。
<record id="view_calendar_checkout" model="ir.ui.view">
<field name="model">library.checkout</field>
<field name="arch" type="xml">
<calendar date_start="request_date" color="user_id">
<field name="member_id" />
<field name="stage_id" />
</calendar>
</field>
</record>
在主管會議上,我們會需要回報這週書本的借閱狀況,使用 Pivot View,就能容易得到整理好的數據。
<record id="view_pivot_checkout" model="ir.ui.view">
<field name="model">library.checkout</field>
<field name="arch" type="xml">
<pivot>
<field name="stage_id" type="col" />
<field name="member_id" />
<field name="request_date" interval="week" />
<field name="num_books" type="measure" />
</pivot>
</field>
</record>
在借閱過程中,當會員借閱已達指定數量時,時常會詢問我們我書籍都還了,甚至更詳細的訊息,這是透過 Activity View 並指定會員,我們就能清楚地跟對方說,還有哪幾本書沒還,來進行確認。
<record id="view_activity_checkout" model="ir.ui.view">
<field name="model">library.checkout</field>
<field name="arch" type="xml">
<activity string="Checkouts">
<templates>
<div t-name="activity-box">
<div>
<field name="name" />
</div>
</div>
</templates>
</activity>
</field>
</record>
身為管理員想要看到的是目前 已借出、可借閱的書籍數量,和已歸還但尚未放回書架的書籍有多少。
<record id="view_graph_checkout" model="ir.ui.view">
<field name="model">library.checkout</field>
<field name="arch" type="xml">
<graph type="bar">
<field name="stage_id" />
<field name="num_books" type="measure" />
</graph>
</field>
</record>
Ref: https://www.odoo.com/documentation/15.0/developer/reference/backend/views.html