Modifs for multi-company default

bzr revid: fp@tinyerp.com-ff15d446deb45c2814616a55eb58eeed2a1b9692
This commit is contained in:
Fabien Pinckaers 2007-06-04 11:52:20 +00:00
parent cc12ad96b1
commit f81027c6b6
1 changed files with 10 additions and 3 deletions

View File

@ -40,13 +40,15 @@ class ir_values(osv.osv):
'key2': fields.char('Value', size=256),
'meta': fields.text('Meta Datas'),
'res_id': fields.integer('Resource ID'),
'user_id': fields.many2one('res.users', 'User', ondelete='cascade')
'user_id': fields.many2one('res.users', 'User', ondelete='cascade'),
'company_id': fields.many2one('res.company', 'Company')
}
_defaults = {
'key': lambda *a: 'action',
'key2': lambda *a: 'tree_but_open',
'company_id': lambda *a: False
}
def set(self, cr, uid, key, key2, name, models, value, replace=True, isobject=False, meta=False, preserve_user=False):
def set(self, cr, uid, key, key2, name, models, value, replace=True, isobject=False, meta=False, preserve_user=False, company=False):
if type(value)==type(u''):
value = value.encode('utf8')
if not isobject:
@ -72,6 +74,9 @@ class ir_values(osv.osv):
'meta': meta,
'user_id': preserve_user and uid,
}
if company:
cid = self.pool.get('res.users').browse(cr, uid, uid, context={}).company_id.id
vals['company_id']=cid
if res_id:
vals['res_id']= res_id
ids_res.append(self.create(cr, uid, vals))
@ -113,6 +118,7 @@ class ir_values(osv.osv):
# if not without_user:
where_opt.append('user_id=%d' % (uid,))
result = []
ok = True
while ok and len(result)==0:
@ -128,7 +134,8 @@ class ir_values(osv.osv):
if not result:
return []
cr.execute('select id,name,value,object,meta from ir_values where id in ('+','.join(map(str,result))+')')
cid = self.pool.get('res.users').browse(cr, uid, uid, context={}).company_id.id
cr.execute('select id,name,value,object,meta from ir_values where id in ('+','.join(map(str,result))+') and (company_id is null or company_id='+str(cid)+')')
result = cr.fetchall()
def _result_get(x):