gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:20:54 24 4
gpt4 key购买 nike

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

我正在使用 Odoo 小部件:“进度条”。我想在每次更新值时更新 View - 因此我想在我的 python write 方法中触发 on_change_input javascript 函数来呈现 View 。

 @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。您将在此处看到更新进度条的正确方法。

The purpose is, that the progressbar should be updated while a process is running and the user should see the progress without updating the site.

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

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

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

关于javascript - Odoo10/Odoo11动态进度条-在python中触发javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45877416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com