Exemple #1
0
 def type_results(self, query=None, batch=True, b_size=10, b_start=0, type_string=''):
     '''Returns the result of a search for the given content types.
     '''
     query = self._prepare_query(query, batch, b_size, b_start)
     types = searchutil._types_from_type_string(type_string)
     portal_type = [x for x in query.get('portal_type', []) if x in types]
     query['portal_type'] = portal_type
     del(query['SearchableText'])
     results = self._result_from_query(query, batch, b_size, b_start)
     return results
def get_query(query):
    searchable_text = query.get("SearchableText", "")
    key, val = searchutil._key_and_val_from_searchable_text(searchable_text)
    if key is None or key not in searchutil.SEARCH_KEYS:
        return query

    portal_type = query.get("portal_type", [])

    if key == "type":
        types = searchutil._types_from_type_string(val)
        portal_type = [x for x in portal_type if x in types]
        query["portal_type"] = portal_type
        del (query["SearchableText"])

    elif key == "user":
        user_ids = searchutil._user_ids_from_users_string(val)
        query["Creator"] = user_ids
        del (query["SearchableText"])

    return query