Merge lp:~openerp-dev/openobject-server/trunk-bug-817430-nch into lp:openobject-server

Proposed by Naresh(OpenERP)
Status: Rejected
Rejected by: Olivier Dony (Odoo)
Proposed branch: lp:~openerp-dev/openobject-server/trunk-bug-817430-nch
Merge into: lp:openobject-server
Diff against target: 54 lines (+13/-8)
1 file modified
openerp/addons/base/ir/ir_values.py (+13/-8)
To merge this branch: bzr merge lp:~openerp-dev/openobject-server/trunk-bug-817430-nch
Reviewer Review Type Date Requested Status
Olivier Dony (Odoo) Pending
Vo Minh Thu Pending
Review via email: mp+73370@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Olivier Dony (Odoo) (odo-openerp) wrote :

I'm closing this merge proposal, has it is now superseded by the ir.values refactoring branch at https://code.launchpad.net/~openerp-dev/openobject-server/trunk-cleanup-ir-values/+merge/73809
Thanks!

Unmerged revisions

3559. By Naresh(OpenERP)

[FIX]:ir values for multicompany environment

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'openerp/addons/base/ir/ir_values.py'
2--- openerp/addons/base/ir/ir_values.py 2011-06-10 10:19:24 +0000
3+++ openerp/addons/base/ir/ir_values.py 2011-08-30 13:12:24 +0000
4@@ -107,6 +107,10 @@
5 if meta:
6 meta = pickle.dumps(meta)
7 assert isinstance(models, (list, tuple)), models
8+ assert not company or isinstance(company, int), "Parameter 'company' must be an integer (company ID)!"
9+ if company and company is True:
10+ current_user_obj = self.pool.get('res.users').browse(cr, uid, uid, context={})
11+ company = current_user_obj.company_id.id
12 ids_res = []
13 for model in models:
14 if isinstance(model, (list, tuple)):
15@@ -119,7 +123,8 @@
16 ('key2', '=', key2),
17 ('model', '=', model),
18 ('res_id', '=', res_id),
19- ('user_id', '=', preserve_user and uid)
20+ ('user_id', '=', preserve_user and uid),
21+ ('company_id' ,'=', company)
22 ]
23 if key in ('meta', 'default'):
24 search_criteria.append(('name', '=', name))
25@@ -136,12 +141,10 @@
26 'key2': key2 and key2[:200],
27 'meta': meta,
28 'user_id': preserve_user and uid,
29+ 'company_id':company
30 }
31- if company:
32- cid = self.pool.get('res.users').browse(cr, uid, uid, context={}).company_id.id
33- vals['company_id']=cid
34 if res_id:
35- vals['res_id']= res_id
36+ vals['res_id'] = res_id
37 ids_res.append(self.create(cr, uid, vals))
38 return ids_res
39
40@@ -184,9 +187,11 @@
41 # value for any given name. The 'order by' will put the null
42 # values last; this may be postgres specific (it is the
43 # behavior in postgres at least since 8.2).
44- order = 'user_id'
45- where.append('(user_id=%s or (user_id IS NULL)) order by '+ order)
46- params.append(uid)
47+ order = 'user_id, company_id'
48+ where.append('''(user_id=%s or (user_id IS NULL))
49+ and (company_id is null or
50+ company_id = (SELECT company_id FROM res_users WHERE id = %s)) order by '''+ order)
51+ params += [uid, uid]
52 clause = ' and '.join(where)
53 cr.execute('select id,name,value,object,meta, key from ir_values where ' + clause, params)
54 result = cr.fetchall()