[FIX] add context parameter to various helper methods to avoid stupid crash in read_group (orm.py)

bzr revid: ged@openerp.com-20140407130223-pdzge17omntpbh23
This commit is contained in:
Gery Debongnie 2014-04-07 15:02:23 +02:00
parent b5dc53fea1
commit 82825c4acd
1 changed files with 4 additions and 4 deletions

View File

@ -2233,7 +2233,7 @@ class BaseModel(object):
self._name, order_part)
return groupby_terms, orderby_terms
def _read_group_process_groupby(self, gb, fget, query):
def _read_group_process_groupby(self, gb, fget, query, context):
split = gb.split(':')
field_type = fget[split[0]]['type']
gb_function = split[1] if len(split) == 2 else None
@ -2270,7 +2270,7 @@ class BaseModel(object):
'qualified_field': qualified_field
}
def _read_group_prepare_data(self, key, value, groupby_dict):
def _read_group_prepare_data(self, key, value, groupby_dict, context):
"""
Helper method to sanitize the data received by read_group. The None
values are converted to False, and the date/datetime are formatted,
@ -2361,7 +2361,7 @@ class BaseModel(object):
fget = self.fields_get(cr, uid, fields)
groupby = [groupby] if isinstance(groupby, basestring) else groupby
groupby_list = groupby[:1] if lazy else groupby
annotated_groupbys = [self._read_group_process_groupby(gb, fget, query)
annotated_groupbys = [self._read_group_process_groupby(gb, fget, query, context)
for gb in groupby_list]
groupby_fields = [g['field'] for g in annotated_groupbys]
order = orderby or ','.join([g['groupby'] for g in annotated_groupbys])
@ -2433,7 +2433,7 @@ class BaseModel(object):
for d in fetched_data:
d.update(data_dict[d['id']])
data = map(lambda r: {k: self._read_group_prepare_data(k,v, groupby_dict) for k,v in r.iteritems()}, fetched_data)
data = map(lambda r: {k: self._read_group_prepare_data(k,v, groupby_dict, context) for k,v in r.iteritems()}, fetched_data)
result = [self._read_group_format_result(d, annotated_groupbys, groupby, groupby_dict, domain, context) for d in data]
if lazy and groupby_fields[0] in self._group_by_full:
# Right now, read_group only fill results in lazy mode (by default).