From bfbc90b73e50e34661c5b23f22b2c1f805e5af72 Mon Sep 17 00:00:00 2001 From: "nch@tinyerp.com" <> Date: Mon, 11 Jan 2010 19:18:18 +0530 Subject: [PATCH] [IMP,FIX]:crm meeting search method bzr revid: nch@tinyerp.com-20100111134818-w83tsh1fl6ili3n8 --- addons/crm/crm_meeting.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/addons/crm/crm_meeting.py b/addons/crm/crm_meeting.py index 9c3c3b354a5..f710814f98c 100644 --- a/addons/crm/crm_meeting.py +++ b/addons/crm/crm_meeting.py @@ -227,14 +227,19 @@ class crm_meeting(osv.osv): ids.append(case_id) return ids - def get_recurrent_ids(self, cr, uid, ids, base_start_date, base_until_date, limit=100): + def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100): if not limit: limit = 100 + if isinstance(select, (str, int, long)): + ids = [select] + else: + ids = select + result = ids if ids and (base_start_date or base_until_date): cr.execute("select m.id, m.rrule, c.date, m.exdate from crm_meeting m\ join crm_case c on (c.id=m.inherit_case_id) \ where m.id in ("+ ','.join(map(lambda x: str(x), ids))+")") - result = [] + count = 0 for data in cr.dictfetchall(): start_date = base_start_date and datetime.datetime.strptime(base_start_date, "%Y-%m-%d") or False @@ -288,8 +293,9 @@ class crm_meeting(osv.osv): idval = common.real_id2caldav_id(data['id'], rdate) result.append(idval) count += 1 - ids = result - return ids + if isinstance(select, (str, int, long)): + return result and result[0] or False + return result def search(self, cr, uid, args, offset=0, limit=100, order=None, context=None, count=False): @@ -306,8 +312,6 @@ class crm_meeting(osv.osv): until_date = arg[2] res = super(crm_meeting, self).search(cr, uid, args_without_date, offset, limit, order, context, count) - if not isinstance(res,list): - res= [res] return self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit)