Merge lp:~openerp-dev/openobject-server/trunk-bug-844651-vme into lp:openobject-server

Proposed by Vidhin Mehta (OpenERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openobject-server/trunk-bug-844651-vme
Merge into: lp:openobject-server
Diff against target: 22 lines (+12/-0)
1 file modified
openerp/osv/expression.py (+12/-0)
To merge this branch: bzr merge lp:~openerp-dev/openobject-server/trunk-bug-844651-vme
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+136869@code.launchpad.net

Description of the change

> To support string search from Advance search view for reference type field.
> web branch: https://code.launchpad.net/~openerp-dev/openerp-web/trunk-bug-844651-vme/+merge/136868

To post a comment you must log in.

Unmerged revisions

4607. By Vidhin Mehta (OpenERP)

[IMP]minor improvement.

4606. By Vidhin Mehta (OpenERP)

[IMP]code improve.

4605. By Vidhin Mehta (OpenERP)

[IMP]reference field can works on string attribute.implement for advance search reference widget.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'openerp/osv/expression.py'
2--- openerp/osv/expression.py 2012-10-18 12:47:50 +0000
3+++ openerp/osv/expression.py 2012-11-29 08:49:23 +0000
4@@ -627,6 +627,18 @@
5 else:
6 # other field type
7 # add the time part to datetime field when it's not there:
8+ if field._type == 'reference' and isinstance(right, str):
9+ ref_obj, ref_id = right.split(',')
10+ if not ref_id.isdigit():
11+ dic_opt = {'!=':'=','not like':'like','not ilike':'ilike','not in':'in'}
12+ records = table.pool[ref_obj].name_search(cr, uid, ref_id, [], dic_opt.get(operator,operator), context=context, limit=None)
13+ if records:
14+ exp_list = [("%s,%d"%(ref_obj,res[0])) for res in records]
15+ if operator in NEGATIVE_TERM_OPERATORS:
16+ self.__exp[i] = (left,"not in",exp_list)
17+ else:
18+ self.__exp[i] = (left,"in",exp_list)
19+
20 if field._type == 'datetime' and self.__exp[i][2] and len(self.__exp[i][2]) == 10:
21
22 self.__exp[i] = list(self.__exp[i])