簡體   English   中英

Odoo10 / Odoo11動態進度條 - 在python中觸發javascript函數

[英]Odoo10/Odoo11 dynamic progressbar - trigger javascript function inside python

我的任務:odoo中的動態進度條。

我正在使用Odoo小部件:'progressbar'。 我想在每次更新值時更新視圖 - 因此我想在我的python write方法中觸發on_change_input javascript函數來呈現視圖。

 @api.one
 def updatevalue(self, val):
      self.value = val
      # TODO call javascript function on_change_input()

目的是,在進程運行時應更新進度條,用戶應該在不更新站點的情況下查看進度。

我的任務是否可以使用進度條小部件? 或者是否有其他可能在Odoo中顯示動態內容?

如果我使用我的updatevalue方法作為按鈕,單擊按鈕后更新進度條而不調用javascript函數並且不刷新頁面...但我確實想在我的代碼中調用該方法(並且可能在rpc上調用)因此這樣做沒有幫助-.-

感謝您的時間!


這是我到目前為止的工作流程:

用戶單擊按鈕do_time_consuming_task並調用以下函數:

def do_timeconsuming_task(self):
  ws = websocket.WebSocket()
  ws.connect('ws:/129.0.0.1:1234/')
  data = { 'topic' : 'server_command', 'id' : self.id, 'commandName' : 'do_sth',}
  payload = ujson.dumps(data)
  ws.send(payload)
  ws.close()

在服務器上,接收並處理命令。 有一個開放的rpc連接:

odoo = odoorpc.ODOO("129.0.0.1", port=8069)
odoo.login("database", "user", "password")
my_module = odoo.env['my_module.progress_widget_test']

progress_instance = my_module.browse(id)

每次進度值更改時,我都會調用模塊的以下方法:

progress_instance.updatevalue(new_value)

當值等於100%時,我關閉連接

odoo.logout()

此功能已存在,您可以從方法updateProgressBarprocessReconciliations復制account/static/src/js/account_reconciliation_widgets.js中的部分內容。 您將在此處看到更新進度條的正確方法。

目的是,在進程運行時應更新進度條,用戶應該在不更新站點的情況下查看進度。

請參閱processReconciliations它是如何完成的,基本上你調用后端存在的process_reconciliations方法,然后你得到一個deferred對象。 從該延遲對象,您可以使用進度()

查看.progress()的文檔,您將看到需要使用.[notify][2]()報告您的進度.[notify][2]()

你如何定義你的過程完成的百分比是多少?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM