Merge lp:~openerp-dev/openobject-addons/7.0-opw-600163-fka into lp:openobject-addons/7.0

Proposed by Foram Katharotiya (OpenERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openobject-addons/7.0-opw-600163-fka
Merge into: lp:openobject-addons/7.0
Diff against target: 18 lines (+5/-0)
1 file modified
mail/mail_thread.py (+5/-0)
To merge this branch: bzr merge lp:~openerp-dev/openobject-addons/7.0-opw-600163-fka
Reviewer Review Type Date Requested Status
Vinay Rana (OpenERP) Pending
Naresh(OpenERP) Pending
Review via email: mp+196240@code.launchpad.net

Description of the change

Hello,

I have fix the issue of advanced search on follower field in all module.It doesn't work properly with negative operator.
for ex:
create product1: set follower admin & demo
create product2: set follower demo
create product3: set follower admin

Now search product that doesn't contains demo
It display all products that are not contains demo but it display product1 & product3 instead of product3

Thanks,
FKA

To post a comment you must log in.

Unmerged revisions

9604. By Foram Katharotiya (OpenERP)

[MERGE] with 7.0

9603. By Foram Katharotiya (OpenERP)

[IMP] improve code in def_search_followers()

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'mail/mail_thread.py'
2--- mail/mail_thread.py 2013-11-20 15:43:20 +0000
3+++ mail/mail_thread.py 2013-11-22 09:30:30 +0000
4@@ -199,9 +199,14 @@
5 def _search_followers(self, cr, uid, obj, name, args, context):
6 fol_obj = self.pool.get('mail.followers')
7 res = []
8+ negative_operator = {'not ilike':'ilike', '!=':'='}
9 for field, operator, value in args:
10 assert field == name
11 fol_ids = fol_obj.search(cr, SUPERUSER_ID, [('res_model', '=', self._name), ('partner_id', operator, value)])
12+ if operator in negative_operator.keys():
13+ fol_ids = fol_obj.search(cr, SUPERUSER_ID, [('res_model', '=', self._name), ('partner_id', negative_operator[operator], value)])
14+ res_id = [fol.res_id for fol in fol_obj.browse(cr, SUPERUSER_ID, fol_ids)]
15+ fol_ids = fol_obj.search(cr, SUPERUSER_ID, [('res_id', 'not in', res_id)])
16 res_ids = [fol.res_id for fol in fol_obj.browse(cr, SUPERUSER_ID, fol_ids)]
17 res.append(('id', 'in', res_ids))
18 return res