示例#1
0
 def user_results(self, query=None, batch=True, b_size=10, b_start=0, users_string=''):
     '''Returns the result of a search for the user which info coincides with args.
     '''
     query = self._prepare_query(query, batch, b_size, b_start)
     user_ids = searchutil._user_ids_from_users_string(users_string)
     query['Creator'] = user_ids
     del(query['SearchableText'])
     results = self._result_from_query(query, batch, b_size, b_start)
     return results
示例#2
0
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