Skip to Content
Menu
This question has been flagged
1 Reply
3372 Views

I can install module already and i want to uninstall the module


I tried to use this:

boolean_field   = fields.Boolean('Install or Uninstall')

@api.onchange(' boolean_field ')
def install_module_secondary(self):
irModuleObj = self.env['ir.module.module']
irModuleObj.update_list()
moduleIds = irModuleObj.search(
[
('state', '!=', 'installed'),
('name', '=', 'module_name')
]
)

if moduleIds and self.boolean_field== True:
moduleIds[0].button_immediate_install()


@api.onchange(' boolean_field ')
def uninstall_module_secondary(self):
irModuleObj = self.env['ir.module.module']
irModuleObj.update_list()
moduleIdsUninstall = irModuleObj.search(
[
('state', '=', 'installed'),
('name', '=', 'module_name') 
]
)

if moduleIdsUninstall and self.boolean_field== False: 
moduleIdsUninstall[0].button_uninstall_wizard()


But it returns tuple index out of index then I removed the zero in uninstall then nothing happens, it just reload the page

Avatar
Discard
Best Answer

Hi,

Make sure that, the search returns a value. Because of the access rights, the search may return nothing, just ensure it by adding a print statement in the code.

I have tested the below code using the sudo and it seems working fine.

module_obj = self.env['ir.module.module']
module_obj.sudo().update_list()
# use sudo or set give access rights for user in corresponding group
module_rec = module_obj.search([('state', '!=', 'installed'),('shortdesc', '=', 'Lead to Issue')])
# make sure that search return result
module_rec.sudo().button_immediate_install()

Thanks

Avatar
Discard
Author

Dear Niyas,

Thank u sir, I got the problem solved.

Related Posts Replies Views Activity
1
Mar 16
3489
1
Mar 15
6877
2
Dec 18
6799
6
Jul 18
27017
2
Jul 17
4982