One of my current projects in Odoo 13.0 requires a lot of dynamically created widgets/items. In this example my goal is to create a new menuitem, whenever a certain model gets saved into the database.
Creating a hard coded menuitem in the view.xml is fairly easy in odoo but is there a way to create a new one dynamic from the code behind e.g. JS/Python?
The possibility of creating a whole new HTML-based view with Qweb is also known, but was not my first intention because it should be in the same form as my parent module.
This question has been flagged
1
Odpovědět
9593
Zobrazení
Below is my implementation of creating a dynamic menu item. Firstly I create a new action to point the menu item too and then create the new menu item. In the below example this is being made in a create function when I create a new record in a table. Be sure to delete these actions/menuitems manually if you uninstall and reinstall the module. Hope this helps.
| action_vals = { | |
| 'name': vals['menu_name'], | |
| 'xml_id': 'module_name.documents_list_action', | |
| 'res_model': 'business.management', | |
| 'type': 'ir.actions.act_window', | |
| 'target': 'current', | |
| 'view_mode': 'tree,form', | |
| 'domain': "[('le_document_type', '=', '" + vals['menu_name'] + "')]", | |
| } | |
| action = self.env['ir.actions.act_window'].create(action_vals) | |
###get the parent menu item | |
| parent_menu = self.env['ir.ui.menu'].search([('name', '=', 'DropDownParentMenuItem')]) | |
| for menu in parent_menu: | |
| if menu.parent_id.name == 'ModuleParentMenuItem': | |
| parent_id = menu.id | |
| parent_path = menu.parent_path | |
| menu_item_vals = { | |
| 'action': 'ir.actions.act_window,%d' % (action.id,), | |
| 'active': True, | |
| 'display_name': vals['menu_name'], | |
| 'name': vals['menu_name'], | |
| 'parent_id': parent_id, | |
| 'parent_path': parent_path, | |
| } | |
| menu_item = self.env['ir.ui.menu'].create(menu_item_vals) | |
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Přihlásit se| Related Posts | Odpovědi | Zobrazení | Aktivita | |
|---|---|---|---|---|
|
|
1
čvn 22
|
8904 | ||
|
|
4
kvě 24
|
16569 | ||
|
|
1
dub 24
|
6061 | ||
|
|
4
led 24
|
26301 | ||
|
Attrs attribute
Vyřešeno
|
|
2
led 24
|
4743 |