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 - +