99 if query.startswith('+'): |
99 if query.startswith('+'): |
100 params &= Q('term', reference_id=sequence.get_full_oid(query)) |
100 params &= Q('term', reference_id=sequence.get_full_oid(query)) |
101 else: |
101 else: |
102 fulltext = data.get('fulltext', False) |
102 fulltext = data.get('fulltext', False) |
103 if fulltext: |
103 if fulltext: |
104 params &= Q('simple_query_string', query=query) |
104 params &= Q('simple_query_string', |
|
105 query=query) |
105 else: |
106 else: |
106 negotiator = get_utility(INegotiator) |
107 params &= Q('simple_query_string', |
107 query_params = Q('bool') |
108 query=query, |
108 for lang in {self.request.registry.settings.get('pyramid.default_locale_name', |
109 fields=['title.*', 'short_name.*', 'header.*', 'description.*'], |
109 'en'), |
110 default_operator='and') |
110 self.request.locale_name, |
|
111 negotiator.server_language} | negotiator.offered_languages: |
|
112 query_params |= Q('match', **{'title.{}'.format(lang): query}) |
|
113 query_params |= Q('match', **{'short_name.{}'.format(lang): query}) |
|
114 query_params |= Q('match', **{'header.{}'.format(lang): query}) |
|
115 query_params |= Q('match', **{'description.{}'.format(lang): query}) |
|
116 params &= query_params |
|
117 if data.get('owner'): |
111 if data.get('owner'): |
118 params &= Q('term', owner_id=data['owner']) |
112 params &= Q('term', owner_id=data['owner']) |
119 if data.get('created_after'): |
113 if data.get('created_after'): |
120 params &= Q('range', workflow__created_date={'gte': data['created_after']}) |
114 params &= Q('range', workflow__created_date={'gte': data['created_after']}) |
121 if data.get('created_before'): |
115 if data.get('created_before'): |