From 73c21a42379906c8565db3d3ce8a647878f2a6c3 Mon Sep 17 00:00:00 2001 From: "mga@tinyerp.com" <> Date: Thu, 21 Aug 2008 00:36:08 +0530 Subject: [PATCH] * add colum which is used in the orm `group_name` * add field in to the ir_model_fields `group_name` * add method state_change in to the `ir.module.module` bzr revid: mga@tinyerp.com-20080820190608-kne60tnsltzdnsfl --- bin/addons/base/base.sql | 3 ++- bin/addons/base/ir/ir_model.py | 2 +- bin/addons/base/module/module.py | 17 +++++++++++++++++ bin/netsvc.py | 1 + 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/bin/addons/base/base.sql b/bin/addons/base/base.sql index 044a2d8ebb9..8a5a17689bb 100644 --- a/bin/addons/base/base.sql +++ b/bin/addons/base/base.sql @@ -43,7 +43,8 @@ CREATE TABLE ir_model_fields ( state varchar(64) default 'base', view_load boolean, relate boolean default False, - primary key(id) + primary key(id), + group_name varchar(128) ); diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 094e996a03d..21cbd83550a 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -121,7 +121,7 @@ class ir_model_fields(osv.osv): 'groups': fields.many2many('res.groups', 'ir_model_fields_group_rel', 'field_id', 'group_id', 'Groups'), 'view_load': fields.boolean('View Auto-Load'), - 'complete_name': fields.char('Complete Name', required=True, size=64, select=1), + 'group_name': fields.char('Group Name', size=128), } _defaults = { 'relate': lambda *a: 0, diff --git a/bin/addons/base/module/module.py b/bin/addons/base/module/module.py index f64c5503991..de1c6546e52 100644 --- a/bin/addons/base/module/module.py +++ b/bin/addons/base/module/module.py @@ -267,6 +267,23 @@ class module(osv.osv): _('You try to remove a module that is installed or will be installed')) return super(module, self).unlink(cr, uid, ids, context=context) + def state_change(self, cr, uid, ids, newstate, context={}, level=50): + if level<1: + raise Exception, _('Recursion error in modules dependencies !') + demo = True + for module in self.browse(cr, uid, ids): + mdemo = True + for dep in module.dependencies_id: + ids2 = self.search(cr, uid, [('name','=',dep.name)]) + mdemo = self.state_change(cr, uid, ids2, newstate, context, level-1,)\ + and mdemo + if not module.dependencies_id: + mdemo = module.demo + if module.state == 'uninstalled': + self.write(cr, uid, [module.id], {'state': newstate, 'demo':mdemo}) + demo = demo and mdemo + return demo + def state_update(self, cr, uid, ids, newstate, states_to_update, context={}, level=50): if level<1: raise orm.except_orm(_('Error'), _('Recursion error in modules dependencies !')) diff --git a/bin/netsvc.py b/bin/netsvc.py index aa5724e4f97..b9fe7fb0723 100644 --- a/bin/netsvc.py +++ b/bin/netsvc.py @@ -233,6 +233,7 @@ class xmlrpc(object): class GenericXMLRPCRequestHandler: def _dispatch(self, method, params): + print 'TERP-CALL : ',method, params import traceback try: n = self.path.split("/")[-1]