Skip to Content
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odgovori
4381 Prikazi

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
Opusti
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
Opusti
Avtor

Dear Niyas,

Thank u sir, I got the problem solved.

Related Posts Odgovori Prikazi Aktivnost
1
mar. 16
4335
1
mar. 15
7623
2
dec. 18
7726
6
jul. 18
28275
2
jul. 17
5580