From 808c5472c2597239b4498e177b730fd3dc77b481 Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Tue, 13 Dec 2011 16:16:50 +0530 Subject: [PATCH 1/2] [IMP] Implmented multi level model where and filter support for the cutom reports Support Search also bzr revid: jam@tinyerp.com-20111213104650-1n83dz95po3ps0ex --- addons/base_report_creator/base_report_creator.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/addons/base_report_creator/base_report_creator.py b/addons/base_report_creator/base_report_creator.py index 75bd149186a..ff26ad81572 100644 --- a/addons/base_report_creator/base_report_creator.py +++ b/addons/base_report_creator/base_report_creator.py @@ -201,18 +201,15 @@ class report_result(osv.osv): else: fields['column_count'] = (False, 'Count') newargs = [] - newargs2 = [] for a in args: if fields[a[0]][0]: - res = self.pool.get(fields[a[0]][0])._where_calc(cr, user, [[fields[a[0]][1], a[1], a[2]]], active_test = False, context = context) - newargs += res[0] - newargs2 += res[1] - else: - newargs += [("count(*) " + a[1] +" " + str(a[2]))] + model = self.pool.get(fields[a[0]][0]) + newargs.append(str(model._table+"."+fields[a[0]][1] + " " +a[1] + " '" + a[2])+"'") ctx = context or {} ctx['getid'] = True - sql_query = report.sql_query - cr.execute(sql_query) # TODO: FILTER + report_pool = self.pool.get('base_report_creator.report') + reports = report_pool._sql_query_get(cr, user, [context_id], 'sql_query', None, ctx, where_plus=newargs, limit=limit, offset=offset) + cr.execute(reports[context_id]) result = cr.fetchall() return map(lambda x: x[0], result) From 4f6324beb304343b7b063b0c8144570f11fde14a Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Tue, 13 Dec 2011 16:18:22 +0530 Subject: [PATCH 2/2] [FIX] Add Filter Wizard default param name in call bzr revid: jam@tinyerp.com-20111213104822-91sn0l09dw301ccd --- addons/base_report_creator/wizard/wiz_set_filter_fields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base_report_creator/wizard/wiz_set_filter_fields.py b/addons/base_report_creator/wizard/wiz_set_filter_fields.py index 0903f968eea..4129845d400 100644 --- a/addons/base_report_creator/wizard/wiz_set_filter_fields.py +++ b/addons/base_report_creator/wizard/wiz_set_filter_fields.py @@ -150,7 +150,7 @@ def _set_filter_value(self, cr, uid, data, context): def _set_form_value(self, cr, uid, data, context): field_id = data['form']['field_id'] field_data = pooler.get_pool(cr.dbname).get('ir.model.fields').read(cr,uid,[field_id])[0] - fields_dict = pooler.get_pool(cr.dbname).get(field_data.get('model')).fields_get(cr,uid,fields=[field_data.get('name')]) + fields_dict = pooler.get_pool(cr.dbname).get(field_data.get('model')).fields_get(cr,uid,allfields=[field_data.get('name')]) value_field = set_value_fields.get('value') for k,v in value_field.items(): if k in ('size','relation','type'):