I am using Odoo 16. I want to add a button in the header inside the form view, and execute JS code, instead of Python code. How can I achieve that?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- 会計
- 在庫
- PoS
- Project
- MRP
この質問にフラグが付けられました
Hi,
You need to inherit the web.FormView template and add the button in it.Then you can write a JS function for that button.
Please refer to this blog to know more.https://www.cybrosys.com/blog/how-to-add-new-button-to-all-form-view-in-odoo-16
Hope it helps
Thanks, this is something I can use for sure. I will try. However, I would really like to add it inside the header. Any suggestion?
I checked and saw the component StatusBarButtons on web/static/src/views/status_bar_buttons (which is the component rendered when we add) <head></head> in our form views. But I had no sucess trying there :(
You could do it using a custom widget. Check toaster_button
as an example:
See the js code at: odoo/addons/purchase/static/src/js/purchase_toaster_button.js
Put it inside the header or where you wanna use it:
< widget name='toaster_button' button_name="send_reminder_preview" title="Preview the reminder email by sending it to yourself." attrs="{'invisible': [('id', '=', False)]}"/ >
Don't forget to define the js in the manifest of the module
'assets': {
'web.assets_backend': [
...
'purchase/static/src/js/purchase_toaster_button.js',
...
],
},
@Axel Mendoza - Exactly what I have been looking for. Thanks. Simple and working example code. Works in 17 as well.
関連投稿 | 返信 | ビュー | 活動 | |
---|---|---|---|---|
|
0
1月 24
|
1690 | ||
|
1
10月 23
|
2270 | ||
|
0
9月 23
|
1681 | ||
|
1
1月 25
|
3751 | ||
|
1
6月 24
|
4377 |
To do what?
I am creating a driver/interface for an IoT Device. I want to add a button in the iot.device header form view to test the device. Clicking on that button have to call JS logic (to access the device) rather than python function.