diff --git a/openerp/addons/base/ir/ir_sequence.py b/openerp/addons/base/ir/ir_sequence.py index c4ea65caf6d..4267e92d54d 100644 --- a/openerp/addons/base/ir/ir_sequence.py +++ b/openerp/addons/base/ir/ir_sequence.py @@ -75,15 +75,15 @@ class ir_sequence(osv.osv): def get_id(self, cr, uid, sequence_id, test='id', context=None): assert test in ('code','id') - company_id = self.pool.get('res.users').read(cr, uid, uid, ['company_id'], context=context)['company_id'][0] or None + company_ids = self.pool.get('res.company').search(cr, uid, [], context=context) cr.execute('''SELECT id, number_next, prefix, suffix, padding FROM ir_sequence WHERE %s=%%s AND active=true - AND (company_id = %%s or company_id is NULL) + AND (company_id in %%s or company_id is NULL) ORDER BY company_id, id FOR UPDATE NOWAIT''' % test, - (sequence_id, company_id)) + (sequence_id, tuple(company_ids))) res = cr.dictfetchone() if res: cr.execute('UPDATE ir_sequence SET number_next=number_next+number_increment WHERE id=%s AND active=true', (res['id'],)) diff --git a/openerp/addons/base/res/partner/partner.py b/openerp/addons/base/res/partner/partner.py index a5ef8bfa49c..091927f126d 100644 --- a/openerp/addons/base/res/partner/partner.py +++ b/openerp/addons/base/res/partner/partner.py @@ -222,8 +222,10 @@ class res_partner(osv.osv): return True def address_get(self, cr, uid, ids, adr_pref=['default']): - cr.execute('select type,id from res_partner_address where partner_id IN %s',(tuple(ids),)) - res = cr.fetchall() + address_obj = self.pool.get('res.partner.address') + address_ids = address_obj.search(cr, uid, [('partner_id', '=', ids)]) + address_rec = address_obj.read(cr, uid, address_ids, ['type']) + res = list(tuple(addr.values()) for addr in address_rec) adr = dict(res) # get the id of the (first) default address if there is one, # otherwise get the id of the first address in the list diff --git a/openerp/addons/base/res/partner/partner_view.xml b/openerp/addons/base/res/partner/partner_view.xml index f046b32eb21..be88a41e4c6 100644 --- a/openerp/addons/base/res/partner/partner_view.xml +++ b/openerp/addons/base/res/partner/partner_view.xml @@ -79,6 +79,7 @@
+ diff --git a/openerp/addons/base/res/res_security.xml b/openerp/addons/base/res/res_security.xml index df80f90373c..1708be790cb 100644 --- a/openerp/addons/base/res/res_security.xml +++ b/openerp/addons/base/res/res_security.xml @@ -16,6 +16,9 @@ + + + @@ -34,7 +37,6 @@ ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])] - - + diff --git a/openerp/report/printscreen/ps_form.py b/openerp/report/printscreen/ps_form.py index 3afe9d5f401..8e3823e6b03 100644 --- a/openerp/report/printscreen/ps_form.py +++ b/openerp/report/printscreen/ps_form.py @@ -56,15 +56,15 @@ class report_printscreen_list(report_int): if not context: context={} datas['ids'] = ids - model = pool.get(datas['model']) pool = pooler.get_pool(cr.dbname) + model = pool.get(datas['model']) # title come from description of model which are specified in py file. self.title = model._description result = model.fields_view_get(cr, uid, view_type='form', context=context) fields_order = self._parse_string(result['arch']) rows = model.read(cr, uid, datas['ids'], result['fields'].keys() ) - res = self._create_table(uid, datas['ids'], result['fields'], fields_order, rows, context, model._description) + self._create_table(uid, datas['ids'], result['fields'], fields_order, rows, context, model._description) return (self.obj.get(), 'pdf') diff --git a/openerp/report/report_sxw.py b/openerp/report/report_sxw.py index f5e65e26766..210a54760c4 100644 --- a/openerp/report/report_sxw.py +++ b/openerp/report/report_sxw.py @@ -231,16 +231,6 @@ class rml_parse(object): self.lang_dict_called = False for obj in self.objects: obj._context['lang'] = lang - for table in obj._cache: - for id in obj._cache[table]: - self._lang_cache.setdefault(obj._context['lang'], {}).setdefault(table, - {}).update(obj._cache[table][id]) - if lang in self._lang_cache \ - and table in self._lang_cache[lang] \ - and id in self._lang_cache[lang][table]: - obj._cache[table][id] = self._lang_cache[lang][table][id] - else: - obj._cache[table][id] = {'id': id} def _get_lang_dict(self): pool_lang = self.pool.get('res.lang')