Odoo10/Odoo11 动态进度条 - 在 python 中触发 javascript 函数

Posted

技术标签:

【中文标题】Odoo10/Odoo11 动态进度条 - 在 python 中触发 javascript 函数【英文标题】:Odoo10/Odoo11 dynamic progressbar - trigger javascript function inside python 【发布时间】:2018-02-03 06:27:09 【问题描述】:

我的任务:odoo 中的动态进度条。

我正在使用 Odoo 小部件:“进度条”。我想在每次更新值时更新视图 - 因此我想在我的 python 写入方法中触发 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()

【问题讨论】:

进度条字段是计算字段吗?那为什么我们需要总是更新 看看这里 git@github.com:CybroOdoo/CybroAddons.git#10.0 不,进度条字段(值)不是计算字段。它通过调用updatevalue 方法的RPC 进行更新。您指的是哪个 CybroOdoo 插件? 【参考方案1】:

此功能已经存在,您可以从方法updateProgressBarprocessReconciliations 复制它的部分内容。您将在此处看到更新进度条的正确方法。

目的是,进度条应该在进程中更新 正在运行,用户应该看到进度而不更新 网站。

查看processReconciliations 是如何完成的,基本上你调用后端存在的process_reconciliations 方法并返回一个deferred 对象。从该延迟对象中,您可以使用progress()

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

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

【讨论】:

感谢您的帮助!但是,我不知道如何将您提到的功能包含在我的模型中。你能帮我吗 - 我更新了我到目前为止的具体工作流程的问题。另外,我对 javascript 编程不太熟悉,所以如果您将代码匹配到我的示例中,您会非常高兴。 我的流程的完成百分比由已完成的步骤数定义。例如。任务必须完成 20 步 - 完成 15 步 -> 完成百分比为 75%。但这就是我在 odoo 之外才知道的——>因此我使用 RPC 调用来更新值。

以上是关于Odoo10/Odoo11 动态进度条 - 在 python 中触发 javascript 函数的主要内容,如果未能解决你的问题,请参考以下文章

(10)odoo控制器操作

公司用的odoo的ERP系统,要进行Odoo开发,是自己招聘程序员还是找外包开发公司好?

Odoo 看板视图

CSS / jQuery:动态更新的文本出现在右侧而不是圆形进度条内

odoo常用widget

防病毒进度条