Moje zadanie: dynamiczny pasek postępu w odoo.Odoo10/Odoo11 dynamiczny pasek postępu - aktywacja funkcji javascript wewnątrz pytona
Używam widżetu Odoo: "progressbar". Chcę aktualizować widok za każdym razem, gdy wartość jest aktualizowana - dlatego chcę wywołać funkcję javascript on_change_input
w metodzie Pythona, aby wyrenderować widok.
@api.one
def updatevalue(self, val):
self.value = val
# TODO call javascript function on_change_input()
Celem jest, że progressbar powinien być aktualizowany, gdy proces jest uruchomiony i użytkownik powinien zobaczyć postęp bez aktualizacji witryny.
Czy moje zadanie jest możliwe dzięki widgetowi postępu? Czy jest jeszcze inna możliwość pokazania zawartości dynamicznej w Odoo?
Jeśli używam mojej metody updatevalue
jako przycisku, pasek postępu jest aktualizowany po kliknięciu przycisku bez wywoływania funkcji javascript & bez odświeżania strony ... ale chcę wywołać metodę w moim kodzie (i prawdopodobnie ponad RPC) w związku z tym to nie pomaga -.-
Dziękuję za poświęcony czas!
Oto workflow mam tak daleko:
użytkownik kliknie przycisk do_time_consuming_task
i następująca funkcja nazywa się:
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()
Na serwerze otrzymaniu polecenia i przetworzone. Jest otwarte połączenie 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)
Za każdym razem, gdy zmienia się wartość postępu nazywam następujący sposób mojego modułu:
progress_instance.updatevalue(new_value)
gdy wartość jest równa 100% zamknąć połączenie
odoo.logout()
Pasek postępu jest polem obliczanym, prawda? Dlaczego więc musimy aktualizować zawsze? –
Zajrzyj tutaj [email protected]: CybroOdoo/CybroAddons.git # 10.0 –
nie, pole paska postępu (wartość) nie jest polem obliczonym. Jest aktualizowany przez RPC, wywołując metodę "updatevalue". Do którego z Addonów CybroOdoo się odwołujesz? – IstaLibera