From dc04a292a43d04d9be9f23f07f17f8f0e1f46726 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 12 Nov 2011 01:44:05 +0100 Subject: [PATCH] [IMP] read_group full on crm.opportunities for kanban views, need to move this code to be used by others modules in tools bzr revid: fp@tinyerp.com-20111112004405-m511icvvf3worvod --- addons/crm/crm_lead.py | 57 ++++++++++++++++++++++++++++++++++++ addons/crm/crm_lead_view.xml | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 0e479d33737..dda57b81760 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -35,6 +35,36 @@ CRM_LEAD_PENDING_STATES = ( crm.AVAILABLE_STATES[4][0], # Pending ) +class read_group_full(object): + def __init__(self, field, obj, domain): + self.field = field + self.obj = obj + self.domain = domain + def __call__(self, method): + def lookup(self2, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False): + result = method(self2, cr, uid, domain, fields, groupby, offset, limit, context, orderby) + if groupby and groupby[0]==self.field: + stage_obj = self2.pool.get(self.obj) + stage_ids = map(lambda x: x[self.field][0], result) + stage_ids = stage_obj.search(cr, uid, ['|',('id','in',stage_ids)] + self.domain, context=context) + stages = stage_obj.name_get(cr, uid, stage_ids, context=context) + # as both lists are sorted in the same way, we can merge in one pass + pos = 0 + while (pos - +