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(slug): project = object_or_404(Project.by_slug(slug)) authz.require(authz.project_manage(project)) query = Permission.all() query = query.filter_by(project=project) pager = Pager(query, slug=slug) validate_cache(keys=pager.cache_keys()) return jsonify(pager, 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 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(query, obj): authz.require(authz.project_read(obj.project)) active_only = arg_bool('active', default=True) if active_only: query = query.filter_by(active=True) if 'name' in request.args: query = query.filter_by(name=request.args.get('name')) query = query.order_by(Property.created_at.desc()) pager = Pager(query, obj_id=obj.id) validate_cache(keys=pager.cache_keys()) return jsonify(pager, index=False)
def index(pipeline_id): pipeline = object_or_404(Pipeline.by_id(pipeline_id)) authz.require(authz.project_read(pipeline.project)) query = LogEntry.all() query = query.filter(LogEntry.pipeline == pipeline) if request.args.get('level'): query = query.filter(LogEntry.level == request.args.get('level')) pager = Pager(query) validate_cache(keys=pager.cache_keys()) return jsonify(pager, index=True)
def index(): query = File.all() query = query.join(Project) query = query.outerjoin(Permission) query = query.filter(or_(Project.private == False, # noqa and_(Permission.reader == True, # noqa Permission.account == request.account))) if request.args.get('project'): query = query.filter(Project.slug == request.args.get('project')) query = query.distinct() pager = Pager(query) validate_cache(keys=pager.cache_keys()) return jsonify(pager, index=True)
def index(card_id): authz.require(authz.logged_in()) card = obj_or_404(Card.by_id(card_id)) references = db.session.query(Reference) references = references.filter(Reference.card == card) pager = Pager(references, card_id=card_id) return jsonify(pager, index=True)
def index(parent_id): authz.require(authz.logged_in()) card = obj_or_404(Card.by_id(parent_id)) links = db.session.query(Link) links = links.filter(Link.parent == card) links = links.order_by(Link.offset.asc()) pager = Pager(links, parent_id=parent_id) return jsonify(pager, index=True)
def index(slug): project = object_or_404(Project.by_slug(slug)) authz.require(authz.project_read(project)) validate_cache(last_modified=project.updated_at) query = Schema.all() query = query.filter_by(project=project) pager = Pager(query, slug=slug) return jsonify(pager, index=not arg_bool('full'))
def index(): query = File.all() query = query.join(Project) query = query.outerjoin(Permission) query = query.filter( or_( Project.private == False, # noqa and_( Permission.reader == True, # noqa Permission.account == request.account))) if request.args.get('project'): query = query.filter(Project.slug == request.args.get('project')) query = query.distinct() pager = Pager(query) validate_cache(keys=pager.cache_keys()) return jsonify(pager, index=True)
def index(): query = Pipeline.all() query = query.join(Project) query = query.outerjoin(Permission) query = query.filter(or_(Project.private==False, and_(Permission.reader==True, Permission.account==request.account))) if request.args.get('project'): query = query.filter(Project.slug==request.args.get('project')) if request.args.get('operation'): query = query.filter(Pipeline.operation == request.args.get('operation')) query = query.order_by(Pipeline.updated_at.desc()) query = query.distinct() pager = Pager(query) validate_cache(keys=pager.cache_keys()) return jsonify(pager, index=True)
def index(): authz.require(authz.logged_in()) cards = db.session.query(Card) if 'category' in request.args: cards = cards.filter(Card.category == request.args.get('category')) # TODO: find a better solution cards = cards.filter(Card.title != '') cards = cards.order_by(Card.created_at.desc()) pager = Pager(cards) return jsonify(pager, 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))
def index(): query = Pipeline.all() query = query.join(Project) query = query.outerjoin(Permission) query = query.filter( or_( Project.private == False, and_(Permission.reader == True, Permission.account == request.account))) if request.args.get('project'): query = query.filter(Project.slug == request.args.get('project')) if request.args.get('operation'): query = query.filter( Pipeline.operation == request.args.get('operation')) query = query.order_by(Pipeline.updated_at.desc()) query = query.distinct() pager = Pager(query) validate_cache(keys=pager.cache_keys()) return jsonify(pager, index=True)
def make_facets(parent_alias, filter_func, parser_func): """ Return a set of facets based on the current query string. This will also consider filters set for the query, i.e. only show facets that match the current set of filters. """ facets = {} for facet in request.args.getlist('facet'): parent_obj = parent_alias() q = db.session.query() facet_count = func.count(parent_obj.id) q = q.add_columns(facet_count) q = q.order_by(facet_count.desc()) q = filter_func(q, parent_obj) q = parser_func(parent_obj, facet, facet, q) facets[facet] = Pager(q, name='facet_%s' % facet, results_converter=results_process) return facets
def search(): authz.require(authz.logged_in()) query = cards_query(request.args) pager = Pager(search_cards(query)) return jsonify(pager, index=True)
def index(): q = Project.all() q = q.filter(Project.id.in_(authz.permissions().get('reader'))) pager = Pager(q) validate_cache(keys=pager.cache_keys()) return jsonify(pager, index=True)