[MERGE]:ir.filters instead of ir.act.windows

bzr revid: nch@tinyerp.com-20100624063706-mlaess6m9itg4vdb
This commit is contained in:
Rga(openERP)
2010-06-24 12:07:06 +05:30
committed by nch@tinyerp.com
5 changed files with 27 additions and 12 deletions
+1
View File
@@ -2,6 +2,7 @@
<openerp>
<data>
<menuitem icon="terp-administration" id="menu_administration" name="Administration" sequence="20"/>
<menuitem icon="terp-administration" id="menu_administration_shortcut" parent="menu_administration" name="Custom Shortcuts" sequence="50"/>
<menuitem id="next_id_4" name="Low Level Objects"
parent="base.menu_administration" sequence="3"
groups="base.group_extended"/>
-10
View File
@@ -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):
+5
View File
@@ -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()
+20 -2
View File
@@ -62,13 +62,31 @@ 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, values, context={}):
dataobj = self.pool.get('ir.model.data')
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':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))
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
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
129 access_maintenance_contract_wizard maintenance.contract.wizard model_maintenance_contract_wizard group_maintenance_manager 1 1 1 1
130 access_multi_company_default user multi_company_default User model_multi_company_default group_user 1 0 0 0
131 access_multi_company_default manager multi_company_default Manager model_multi_company_default group_erp_manager 1 1 1 1
132 access_ir_filters ir_filters_all model_ir_filters 1 1 1 1