Odoo treeView列表視圖詳解


轉載請注明原文地址:https://www.cnblogs.com/ygj0930/p/10826414.html

 

TreeView:列表視圖

    1:<tree>標簽的屬性

    【tree標簽內的屬性,就是界面上的表現、行為,可以通過視圖繼承,往tree標簽增加屬性來自定義tree視圖的按鈕。】

    列表視圖的根元素是<tree>,它可以有以下幾種屬性:

    1)editable

    默認情況下選擇單行記錄時會打開對應記錄的表單,該屬性讓數據可以在列表內進行編輯,有效的值是top和bottom,可在列表的頂部或底部添加新記錄。

    2)default_order

    重定義視圖的排序規則,以逗號分隔多個字段,可使用desc來進行倒序<tree default_order="sequence,name desc">

    3)decoration-樣式名

    樣式可為  bf加粗, it斜體 或 其他bootstrap樣式如:danger紅色, info, muted, primary, success綠色,warning橙色等等值為python表達式,對每條記錄執行相應表達式判斷,當結果為true的時候將對應的樣式應用。

    也可以直接在標簽的css樣式值中使用表達式來動態設置,如設置顏色:

colors="gray:state=='cancel';red:state=='audit';green:state=='done';blue:state in('draft','confirm');"

    4)create, edit, delete

    可以通過將它們設置為false來禁用視圖中的對應操作按鈕:create對應創建按鈕、edit對應編輯按鈕、delete對應界面上 下拉菜單對 刪除 菜單項。

    5)on_write

    只當啟用editable時有用,在tree視圖新增或修改記錄時,會自動調用on_write屬性值對應對函數,並且會把新增/修改的記錄作為參數傳入【可以在該函數執行一些數據校驗、唯一性校驗】。該函數需要返回一個用於更新列表的記錄id列表。

    6)繼承tree視圖,往tree標簽增加屬性,從而實現在tree界面上新增按鈕

 

    2:tree視圖中的元素

     【tree標簽之間等內容就是列表行內容。】

    1)button標簽:定義一個按鈕,可以根據當前行某個字段值,動態控制行內按鈕的顯示或隱藏。按鈕通過跳轉到向導,context中會把對應行記錄的id作為active_id傳遞過去。

屬性列表:
1.icon -- 用來展示按鈕的圖標
2.string -- 當沒有icon的時候,button顯示的文字,有icon的時候、相當於alt屬性值
3.type -- 按鈕類型,表示點擊它之后如何影響系統
    1)workflow(默認):將按鈕name作為信號發送給工作流,記錄的內容作為參數
    2)object : 調用當前數據列表模型的方法,方法名是按鈕的name,調用時帶有記錄id和當前上下文環境
    3)action : 加載ir.actions,按鈕name是該action在數據庫的id,上下文環境擴展到列表的model(作為active_model)、當前記錄(active_id)、所有當前加載記錄的id(active_ids)
4.name--按鈕的響應函數、工作流信號、action_id
5:args--傳遞給響應函數的參數 6.attrs 基於記錄值的某個字段值,將domain表達式應用在該行字段值上,當返回值為True的時候設置相應的屬性,一般屬性有 invisible (隱藏)、readonly (只讀但顯示) 7.states invisible屬性attrs的簡寫,給出一個以逗號分隔的state列表,需要模型有一個對應的state屬性,可以將不在state列表中的記錄的按鈕隱藏 8.context 作為額外的數據攜帶,在跳轉、函數調用時傳遞過去 9.confirm 當點擊按鈕時給出的確認消息

    2)field字段標簽:顯示記錄的字段值

屬性列表:
1.name 字段名
2.string 該列頭的文本名稱,默認是字段名,可以在界面上自定義顯示名
3.invisible 查詢而且保存該字段,但界面上不顯示
4.groups 可以看到該字段的用戶組列表
5.widget 字段的展示形式:
    progressbar 進度條用於展示浮點數
    many2onebutton當關聯字段值存在時顯示勾,不存在顯示X
    handle對於排序字段,直接顯示向上向下箭頭
    sum, avg 在底部顯示基於當前頁面數據的求和或平均值
    attrs 基於記錄值的動態屬性【屬性一般有兩個:invisible\readonly】,只對當前欄有效,即可以第一條記錄中該字段顯示,第二條隱藏,由domain表達式決定。

6.field的值支持用eval語法來運算某個表達式獲得:例如:<field name="user_id" eval="ref('base.group_user')" />


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM