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.
Esta pergunta foi sinalizada
1
Responder
9607
Visualizações
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) | |
Está gostando da discussão? Não fique apenas lendo, participe!
Crie uma conta hoje mesmo para aproveitar os recursos exclusivos e interagir com nossa incrível comunidade!
Inscrever-se| Publicações relacionadas | Respostas | Visualizações | Atividade | |
|---|---|---|---|---|
|
How can I return a record after deletion
Resolvido
|
|
1
jun. 22
|
8918 | |
|
|
4
mai. 24
|
16594 | ||
|
|
1
abr. 24
|
6087 | ||
|
|
4
jan. 24
|
26346 | ||
|
Attrs attribute
Resolvido
|
|
2
jan. 24
|
4771 |