Odoo10/Odoo11动态progressbar-python中的触发器javascript函数

Odoo10/Odoo11动态progressbar-python中的触发器javascript函数,javascript,python,openerp,odoo-10,odoo-11,Javascript,Python,Openerp,Odoo 10,Odoo 11,我的任务:在odoo中创建一个动态进度条 我正在使用Odoo小部件:“progressbar”。我想在每次更新值时更新视图-因此我想触发python write方法中的on\u change\u inputjavascript函数来呈现视图 @api.one def updatevalue(self, val): self.value = val # TODO call javascript function on_change_input() 其目的是,进程运行时

我的任务:在odoo中创建一个动态进度条

我正在使用Odoo小部件:“progressbar”。我想在每次更新值时更新视图-因此我想触发python write方法中的
on\u change\u input
javascript函数来呈现视图

 @api.one
 def updatevalue(self, val):
      self.value = val
      # TODO call javascript function on_change_input()
其目的是,进程运行时应更新progressbar,用户应在不更新站点的情况下查看进度

progressbar小部件是否可以执行我的任务?或者,是否有其他可能在Odoo中显示动态内容

如果我使用我的
updatevalue
方法作为按钮,则在单击按钮后,progressbar将被更新,而无需调用javascript函数&无需刷新页面。。。但是我确实希望在代码中调用该方法(可能是通过rpc),因此这没有帮助--

谢谢你抽出时间


以下是我目前的工作流程:

用户单击按钮
do\u time\u consuming\u 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()

此功能已经存在,您可以从
account/static/src/js/account\u recognition\u widgets.js
方法
updateProgressBar
processrecognitions
复制部分功能。您将在这里看到更新进度条的正确方法

这样做的目的是,进程运行时应更新progressbar 正在运行,用户应在不更新 地点

请参见
processreconcializations
如何完成,基本上,您可以调用后端存在的
process\u reconcializations
方法,然后返回一个
deferred
对象。从延迟对象中可以使用

查看
.progress()
的文档,您会发现需要使用
[notify][2]()


如何定义流程的完成百分比?

进度条字段是计算字段,对吗?那我们为什么要一直更新这里看看git@github.com:cyfulltoo/CybroAddons.git#10.0否,进度条字段(值)不是计算字段。它通过RPC调用
updatevalue
方法进行更新。你指的是哪个Cyfuldoo插件?谢谢你的帮助!但是,我不知道如何将您提到的功能包含到我的模型中。你能帮我吗?我更新了我的问题,以了解到目前为止的具体工作流程。另外,我不太熟悉javascript编程,因此如果您能将代码匹配添加到我的示例中,那将是非常感谢的。我的流程的完成百分比由已经完成的步骤数定义。任务必须完成20个步骤,完成15个步骤->完成百分比为75%。但这是我在odoo之外所知道的->因此我用RPC调用更新值。