src/pyams_content_es/root/zmi/search.py
changeset 165 1945b374d388
parent 164 e48a3850c17a
child 166 0c536f62e02a
equal deleted inserted replaced
164:e48a3850c17a 165:1945b374d388
    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'):