odoo 中有不少地方涉及對話嚮導頁面模式,這種功能頁很方便靈活,可以隨意產生自已定義的表單/動作互動操作流,下面我們就舉例講解具體使用方法
以odoo中「更新模組列表」這個操作為例
定義模型
class
basemoduleupdate
(models.transientmodel)
: _name =
"base.module.update"
_description =
"update module"
updated = fields.integer(
'number of modules updated'
, readonly=
true
) added = fields.integer(
'number of modules added'
, readonly=
true
) state = fields.selection([(
'init'
,'init'),
('done'
,'done')]
,'status'
, readonly=
true
, default=
'init'
)
其中幾個欄位都是用於狀態記錄的
定義動作方法
@api.multi
defupdate_module
(self)
:for this in self:
updated, added = self.env[
'ir.module.module'
].update_list(
) this.write(
)return
false
定義form試圖"update module list"
>
"state" invisible=
"1"/
>
"module update result"
/>
"init"
>
"click on update below to start the process..."
/>
<
/group>
"done"
>
"updated"
/>
"added"
/>
<
/group>
"init"
>
"update_module" string=
"update"
type
="object"
class
="btn-primary"
/>
"cancel" string=
"cancel"
class
="btn-default"
/>
<
/div>
"done"
>
"action_module_open" string=
type
="object"
class
="btn-primary"
/>
"cancel" string=
"close"
class
="btn-default"
/>
<
/div>
<
/footer>
<
/form>
form試圖是wizard 嚮導頁的呈現載體
建立 act_window
模型物件指向到上面定義的模型
建立觸發點
方法一:從選單出發
1.建立 act_window,模型物件指向到上面定義的模型
2.建立入口選單關聯上面建立的act_window
3.觸發按鈕可以放在指向該模型的任意試圖裡,如上面的form試圖中的 name="update_module" 的按鈕,每個按鈕都可以關聯模型定義中的乙個方法,形成觸發關聯
方法二:從其他模型的下拉按鈕觸發
建立乙個模型的下拉act_window,示例如下
context=
""id
="act_menu_creates"
name=
"建立選單"
res_model=
"wizard.ir.models.menu.create"
src_model=
"ir.model"
key2=
"client_action_multi"
target=
"new"
view_mode=
"form"
/>
其中src_model即為要掛載的目標模型,res_model為wizard本體模型,context的值是關鍵,限定當前動作只影響所選的行
上面說到了模型中定義的方法,其實他還可以關聯乙個 ir.actions.server 物件實現更高階的互動功能,具體用法我們將在後續文章中詳細講解
怎樣使Firefox的新建標籤頁為空白頁
使用了主頁擴充套件.about addons 中禁用主頁擴充套件.修改不成功的記得檢視是否使用了主頁擴充套件外掛程式!禁用!怎樣使firefox的新建標籤頁為空白頁 firefox的預設新建標籤頁為空白頁,但是某些軟體或者 會將firefox的預設新建標籤頁修改,這時如何將其重新設定為空白頁呢?1....
怎樣使Firefox的新建標籤頁為空白頁
怎樣使firefox的新建標籤頁為空白頁 firefox的預設新建標籤頁為空白頁,但是某些軟體或者 會將firefox的預設新建標籤頁修改,這時如何將其重新設定為空白頁呢?1.在新標籤的位址列裡輸入 about config,並選擇 我保證會小心 開啟配置頁面 2.在配置頁面的搜尋欄中輸入 newt...
Odoo中的嚮導
嚮導類似於彈窗,用於接收使用者的輸入,然後作出相應的處理。class xxwizard models.transientmodel 要點1 使用瞬態模型 name xx.wizard order id asc 字段 fields.型別 u 欄位名 要點2 這些欄位在彈窗中由使用者賦值 api.mod...