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