odoo10學習筆記十:Actions
原文地址:http://www.cnblogs.com/ygj0930/p/7150860.html
actions定義了系統對於用戶的操作的響應:登錄、按鈕、選擇項目等。
一:窗口action(ir.actions.act_window )
最常用的action類型,用於將model的數據展示出來。
字段列表: 1.res_model -- 需要在view裏顯示數據的model 2.views -- 一個(view_id, view_type) 列表,view_type代表視圖類型如:form,tree,gragh...,view_id是可選的數據庫id或False,如果沒有指定id,客戶端會自動用fields_view_get()獲取相應類型的默認視圖,type參數列表的第一個會被默認用來展示 3.res_id (可選) -- 當默認的視圖類型是form時,可用於指定加載的數據 4.search_view_id (可選) -- (id, name),id是儲存在數據庫的搜索視圖,默認會讀取model的默認搜索視圖 5.target (可選) -- 定義視圖是 在當前視圖上打開(current)、使用全屏模式(fullscreen)、使用彈出框(new)、可使用main代替current來清除面包屑導航 6.context (可選) -- 額外的需要傳給視圖的環境數據 7.domain (可選) -- 自動添加到視圖搜索中的查詢 8.limit (可選) -- 在客戶端顯示的數據量,默認80 9.auto_search(可選) -- 搜索是否在加載默認視圖後立即執行,默認True
- view_mode -- 以逗號分隔的視圖類型列表,所有類型的視圖會被展示出來
- view_ids -- 視圖對象的一系列的字段,用於定義視圖的默認內容
- view_id -- 將指定的view加入到視圖中,以防不被view_ids所包含
上述參數一般在使用數據文件定義action的時候使用:
二:鏈接Action(ir.actions.act_url)
可以通過odoo的鏈接打開一個網站頁面,可通過兩個字段來自定義:
- url -- 當激活action時所打開的鏈接
- target -- new:在新窗口打開,self:替換當前頁面內容,默認new
三:服務器Action (ir.actions.server)
可以通過action定位來觸發復雜的服務端代碼:
- id -- 服務端action在數據庫存儲的id
-
context (可選) -- 執行服務端action的上下文環境
儲存在數據庫中的action可以基於state執行一些特別的動作,部分字段在state之間是相互共享的 -
model_id -- 與action相關聯的model,在 evaluation contexts中可用
- condition (可選) -- 使用服務端的 evaluation contexts 來執行python代碼,如果是False則阻止action執行,默認值是True
code -- 當調用action時執行的python代碼
-
object_create -- 使用鉤子創建一條新記錄(通過create或copy方法)
-
use_create
1.new - 基於指定的 model_id創建一條記錄
2.new_other - 基於指定的crud_model_id創建一條記錄
3.copy_current - 復制action所引用的記錄
4.copy_other - 復制一個通過ref_object獲得的記錄 -
fields_lines --當創建或復制記錄時需要修改的字段,One2many 會有以下字段:
1.col1 -- 在use_create裏所包含的需要被重賦值的ir.model.fields
2.value -- 字段對應的值,基於type進行解析
3.type -- 取值value:就是value字段的值,取值equation:value字段會當成python來解析 - crud_model_id -- 當use_create為new_other時,表示用於創建新記錄的model id
- ref_object -- 當use_create為copy_other時用於指定創建記錄時引用的記錄
- link_new_record -- 是否用用link_field_id將新記錄和當前記錄進行many2one關聯,默認False
- link_field_id -- 指定當前記錄與新記錄進行many2one關聯的字段
-
-
object_write -- 與object_create相似,只是只修改當前記錄而不創建新記錄
- use_create
1.current - 修改更新到當前記錄
2.other - 修改更新到通過crud_model_id 或 ref_object指定的新記錄
3.expression - 修改更新到通過crud_model_id 以及 write_expression篩選過後的記錄 - write_expression - 返回一條記錄或對象id的python表達式
- fields_lines,crud_model_id,ref_object與object_create一致
- use_create
-
multi
將通過child_ids many2many關系定義的action一個個執行,如果有action自己返回action,最後一個action被返回給客戶端作為將前multi action的下一個action -
trigger 發送一個信號給工作流
- wkf_transition_id - 用於觸發的與workflow.transition有Many2one關系的id
- use_relational_model - 如果是base(默認),則觸發當前記錄的維護信號;如果是relational,則觸發通過wkf_model_id 和 wkf_field_id篩選出來的當前記錄的字段
-
client_action -- 返回通過action_id定義的action
四:報表Action (ir.actions.report.xml)
此action為打印報表的觸發器:
- name(必選) -- 在一個列表裏進行查找時使用
- model (必選) -- 報表所反映的數據來源model
- report_type (必選) -- qweb-pdf | qweb-html
- report_name -- 報表命名,用於輸出的pdf文件名
- groups_id -- 可以讀取或使用當前報表的用戶組,Many2many字段
- paperformat_id -- 報表所使用的紙張格式,默認使用公司的格式,Many2one字段
- attachment_use -- 當取值true的時候只在第一次請求時生成報表,之後直接從保存的報表打印,可用於生成後不會有改變的報表
- attachment -- 使用python表達式來定義報表名字,該記錄可用變量object訪問
五:客戶端Actions (ir.actions.client)
觸發一個完全在客戶端實現的action:
- tag -- action在客戶端的標識符,一般是一個專用的字符串
- params (可選) -- 用來傳給客戶端的python數據字典格式數據
- target (可選) -- current:當前內容區打開action,fullscreen:以全屏模式打開,new:以彈出框打開
odoo10學習筆記十:Actions