From 6a99c6815841e92d8c0c7a91d9297ee57ec1321e Mon Sep 17 00:00:00 2001 From: rga Date: Mon, 14 Jun 2010 15:25:51 +0530 Subject: [PATCH 01/34] [IMP] For Advance filter use ir.filters instead of ir.act.window bzr revid: rga@rga-desktop-20100614095551-mtjkhc0i44c57j0n --- bin/addons/base/base_menu.xml | 1 + bin/addons/base/ir/ir_actions.py | 10 ------- bin/addons/base/ir/ir_filters.py | 5 ++++ bin/addons/base/ir/ir_ui_menu.py | 29 ++++++++++++++++++-- bin/addons/base/security/ir.model.access.csv | 1 + 5 files changed, 34 insertions(+), 12 deletions(-) diff --git a/bin/addons/base/base_menu.xml b/bin/addons/base/base_menu.xml index fcbd9611498..465856674f7 100644 --- a/bin/addons/base/base_menu.xml +++ b/bin/addons/base/base_menu.xml @@ -2,6 +2,7 @@ + diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index dd5cbc833b4..1dbb27222be 100644 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -158,16 +158,6 @@ class act_window(osv.osv): (_check_model, 'Invalid model name in the action definition.', ['res_model','src_model']) ] - def get_filters(self, cr, uid, model): - cr.execute('SELECT id FROM ir_act_window a WHERE a.id not in (SELECT act_id FROM ir_act_window_user_rel) AND a.res_model=\''+model+'\' and a.filter=\'1\';') - all_ids = cr.fetchall() - filter_ids = map(lambda x:x[0],all_ids) - act_ids = self.search(cr,uid,[('res_model','=',model),('filter','=',1),('default_user_ids','in',(','.join(map(str,[uid,])),))]) - act_ids += filter_ids - act_ids = list(set(act_ids)) - my_acts = self.read(cr, uid, act_ids, ['name', 'domain','context']) - return my_acts - def _views_get_fnc(self, cr, uid, ids, name, arg, context={}): res={} for act in self.browse(cr, uid, ids): diff --git a/bin/addons/base/ir/ir_filters.py b/bin/addons/base/ir/ir_filters.py index 44dd335f34d..17610230d65 100644 --- a/bin/addons/base/ir/ir_filters.py +++ b/bin/addons/base/ir/ir_filters.py @@ -39,6 +39,11 @@ class ir_filters(osv.osv): 'context': fields.char('Context Value', size=250, required=True), 'model_id': fields.selection(_list_all_models, 'Model', required=True), } + + def get_filters(self, cr, uid, model): + act_ids = self.search(cr,uid,[('model_id','=',model),('user_id','=',uid)]) + my_acts = self.read(cr, uid, act_ids, ['name', 'domain','context']) + return my_acts ir_filters() diff --git a/bin/addons/base/ir/ir_ui_menu.py b/bin/addons/base/ir/ir_ui_menu.py index a33686e1eb9..4c8e1a8de9c 100644 --- a/bin/addons/base/ir/ir_ui_menu.py +++ b/bin/addons/base/ir/ir_ui_menu.py @@ -62,13 +62,38 @@ class ir_ui_menu(osv.osv): def clear_cache(self): # radical but this doesn't frequently happen self._cache = {} - + + def create_shortcut(self, cr, uid, datas): + dataobj = self.pool.get('ir.model.data') + menu_id = dataobj._get_id(cr, uid, 'base', 'menu_administration_shortcut') + shortcut_menu_id = int(dataobj.read(cr, uid, menu_id, ['res_id'])['res_id']) + action_id = self.pool.get('ir.actions.act_window').create(cr, uid, datas) + + menu_data = {'name':datas['name'], + 'sequence':10, + 'action':'ir.actions.act_window,'+str(action_id), + 'parent_id':shortcut_menu_id, + 'icon':'STOCK_JUSTIFY_FILL', + } + menu_id = self.pool.get('ir.ui.menu').create(cr, uid, menu_data) + + sc_data= {'name':datas['name'], + 'sequence': 1, + 'res_id': menu_id, + } + + sc_menu_id = self.pool.get('ir.ui.view_sc').create(cr, uid, sc_data) + + user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) + key = (cr.dbname, shortcut_menu_id, tuple(user_groups)) + self._cache[key] = True + return True + def search(self, cr, uid, args, offset=0, limit=2000, order=None, context=None, count=False): if context is None: context = {} ids = osv.orm.orm.search(self, cr, uid, args, offset, limit, order, context=context, count=(count and uid==1)) - if not ids: if count: return 0 diff --git a/bin/addons/base/security/ir.model.access.csv b/bin/addons/base/security/ir.model.access.csv index 03abfe107ab..45d096f5fbb 100644 --- a/bin/addons/base/security/ir.model.access.csv +++ b/bin/addons/base/security/ir.model.access.csv @@ -129,3 +129,4 @@ "access_maintenance_contract_wizard","maintenance.contract.wizard","model_maintenance_contract_wizard","group_maintenance_manager",1,1,1,1 "access_multi_company_default user","multi_company_default User","model_multi_company_default","group_user",1,0,0,0 "access_multi_company_default manager","multi_company_default Manager","model_multi_company_default","group_erp_manager",1,1,1,1 +"access_ir_filters","ir_filters_all","model_ir_filters",,1,1,1,1 From d7c82d75773b4b4454cf526c60015ee814af9caa Mon Sep 17 00:00:00 2001 From: rga Date: Fri, 18 Jun 2010 12:02:58 +0530 Subject: [PATCH 02/34] [IMP] add context arg in methods bzr revid: rga@rga-desktop-20100618063258-ihf5hqs95wkistr4 --- bin/addons/base/ir/ir_ui_menu.py | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/bin/addons/base/ir/ir_ui_menu.py b/bin/addons/base/ir/ir_ui_menu.py index 4c8e1a8de9c..6948c0a2100 100644 --- a/bin/addons/base/ir/ir_ui_menu.py +++ b/bin/addons/base/ir/ir_ui_menu.py @@ -63,26 +63,19 @@ class ir_ui_menu(osv.osv): # radical but this doesn't frequently happen self._cache = {} - def create_shortcut(self, cr, uid, datas): + def create_shortcut(self, cr, uid, values, context={}): dataobj = self.pool.get('ir.model.data') - menu_id = dataobj._get_id(cr, uid, 'base', 'menu_administration_shortcut') - shortcut_menu_id = int(dataobj.read(cr, uid, menu_id, ['res_id'])['res_id']) - action_id = self.pool.get('ir.actions.act_window').create(cr, uid, datas) - - menu_data = {'name':datas['name'], - 'sequence':10, - 'action':'ir.actions.act_window,'+str(action_id), - 'parent_id':shortcut_menu_id, - 'icon':'STOCK_JUSTIFY_FILL', - } + menu_id = dataobj._get_id(cr, uid, 'base', 'menu_administration_shortcut', context) + shortcut_menu_id = int(dataobj.read(cr, uid, menu_id, ['res_id'], context)['res_id']) + action_id = self.pool.get('ir.actions.act_window').create(cr, uid, values, context) + menu_data = {'name':values['name'], + 'sequence':10, + 'action':'ir.actions.act_window,'+str(action_id), + 'parent_id':shortcut_menu_id, + 'icon':'STOCK_JUSTIFY_FILL'} menu_id = self.pool.get('ir.ui.menu').create(cr, uid, menu_data) - - sc_data= {'name':datas['name'], - 'sequence': 1, - 'res_id': menu_id, - } - - sc_menu_id = self.pool.get('ir.ui.view_sc').create(cr, uid, sc_data) + sc_data= {'name':values['name'], 'sequence': 1,'res_id': menu_id } + sc_menu_id = self.pool.get('ir.ui.view_sc').create(cr, uid, sc_data, context) user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) key = (cr.dbname, shortcut_menu_id, tuple(user_groups)) From ae3ee2090d76b846f71ec6dbfbe8068a4afb4ba5 Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Mon, 23 Aug 2010 12:13:09 +0530 Subject: [PATCH 03/34] [FIX,IMP]: base: Improvement in search and form view of Configuration Wizards bzr revid: rpa@tinyerp.com-20100823064309-2rpmfeqvwdupsozg --- bin/addons/base/ir/ir.xml | 29 ++++++++++++++++++++--------- bin/addons/base/ir/ir_actions.py | 5 +++++ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index f5422607d3f..fc252b649e0 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -1532,15 +1532,25 @@ form
- - - - - - - - - + + + + + + + + + + + +