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