def suggest(): if 'q' not in request.args or not len(request.args.get('q').strip()): raise BadRequest("Missing the query ('q' parameter).") q = db.session.query(Property) q = q.join(Entity) q = q.filter(Entity.project_id.in_(authz.permissions().get('reader'))) q = q.filter(Property.name == 'name') q = q.filter(Property.active == True) # noqa q = q.filter(Property.entity_id != None) # noqa q = q.filter(Property.value_string.ilike(request.args.get('q') + '%')) if 'project' in request.args: q = q.join(Project) q = q.filter(Project.slug == request.args.get('project')) if 'exclude' in request.args: ents = request.args.getlist('exclude') q = q.filter(not_(Property.entity_id.in_(ents))) q = q.distinct() pager = Pager(q) data = [] def convert(props): for prop in props: data.append({ 'properties': { 'name': prop.to_dict_index(), }, 'id': prop.entity_id, 'api_url': url_for('entities_api.view', id=prop.entity_id) }) return data validate_cache(keys='#'.join([d['name'] for d in data])) return jsonify(pager.to_dict(results_converter=convert))
def index(): alias = aliased(Entity) query = db.session.query(alias) query = filters.for_entities(query, alias) query = sorters.for_entities(query, alias) pager = Pager(query) validate_cache(keys=pager.cache_keys()) result = pager.to_dict() result['facets'] = facets.for_entities() return jsonify(result, index=True)
def index(): alias = aliased(Relation) q = db.session.query(alias) query = filters.for_relations(q, alias) query = sorters.for_entities(query, alias) pager = Pager(query) validate_cache(keys=pager.cache_keys()) result = pager.to_dict() result['facets'] = facets.for_relations() return jsonify(result, index=True)
def suggest(): authz.require(authz.logged_in()) query = request.args.get('q', '') + '%' q = db.session.query(Account) q = q.filter( or_(Account.full_name.ilike(query), Account.login.ilike(query), Account.email.ilike(query))) excluded = request.args.getlist('exclude') if len(excluded): q = q.filter(not_(Account.id.in_(excluded))) pager = Pager(q) def convert(accounts): data = [] for account in accounts: data.append({ 'display_name': account.display_name, 'id': account.id }) return data validate_cache(keys='#'.join([d.display_name for d in pager])) return jsonify(pager.to_dict(results_converter=convert))
def suggest(): authz.require(authz.logged_in()) query = request.args.get('q', '') + '%' q = db.session.query(Account) q = q.filter(or_(Account.full_name.ilike(query), Account.login.ilike(query), Account.email.ilike(query))) excluded = request.args.getlist('exclude') if len(excluded): q = q.filter(not_(Account.id.in_(excluded))) pager = Pager(q) def convert(accounts): data = [] for account in accounts: data.append({ 'display_name': account.display_name, 'id': account.id }) return data validate_cache(keys='#'.join([d.display_name for d in pager])) return jsonify(pager.to_dict(results_converter=convert))