From e52a521b3c2d1ce766e8256daad7abe86e84a4cb Mon Sep 17 00:00:00 2001 From: ced <> Date: Fri, 29 Jun 2007 06:58:49 +0000 Subject: [PATCH] base: add field state to module.dependencie bzr revid: ced-dcc783cb1409fc451cbc81ca4306fc1dcbb68230 --- bin/addons/base/module/module.py | 21 +++++++++++++++++++++ bin/addons/base/module/module_view.xml | 1 + 2 files changed, 22 insertions(+) diff --git a/bin/addons/base/module/module.py b/bin/addons/base/module/module.py index fa6f22949cc..65a484e7b08 100644 --- a/bin/addons/base/module/module.py +++ b/bin/addons/base/module/module.py @@ -277,11 +277,32 @@ module() class module_dependency(osv.osv): _name = "ir.module.module.dependency" _description = "Module dependency" + + def _state(self, cr, uid, ids, name, args, context={}): + result = {} + mod_obj = self.pool.get('ir.module.module') + for md in self.browse(cr, uid, ids): + ids = mod_obj.search(cr, uid, [('name', '=', md.name)]) + if ids: + result[md.id] = mod_obj.read(cr, uid, [ids[0]], ['state'])[0]['state'] + else: + result[md.id] = 'unknown' + return result + _columns = { 'name': fields.char('Name', size=128), 'module_id': fields.many2one('ir.module.module', 'Module', select=True), #'module_dest_id': fields.many2one('ir.module.module', 'Module'), 'version_pattern': fields.char('Required Version', size=128), + 'state': fields.function(_state, method=True, type='selection', selection=[ + ('uninstallable','Uninstallable'), + ('uninstalled','Not Installed'), + ('installed','Installed'), + ('to upgrade','To be upgraded'), + ('to remove','To be removed'), + ('to install','To be installed'), + ('unknown', 'Unknown'), + ], string='State', readonly=True), } # returns the ids of module version records which match all dependencies # [version_id, ...] diff --git a/bin/addons/base/module/module_view.xml b/bin/addons/base/module/module_view.xml index e85f586c17b..ed392c09656 100644 --- a/bin/addons/base/module/module_view.xml +++ b/bin/addons/base/module/module_view.xml @@ -102,6 +102,7 @@ +