Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
4476 Tampilan

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
Buang
Jawaban Terbai

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
Buang
Penulis

Dear Niyas,

Thank u sir, I got the problem solved.

Post Terkait Replies Tampilan Aktivitas
1
Mar 16
4427
1
Mar 15
7796
2
Des 18
7815
6
Jul 18
28390
2
Jul 17
5664