コード例 #1
0
def inforesources_name(request):
    dbsession = DBSession()

    numRows = 0
    inforesources = []
    success = True

    if ('id' in request.params) and request.params['id'].isdigit():
        id = int(request.params['id'])
        try:
            inforesources = dbsession.query(Inforesources.id, Inforesources.filename)\
                .filter(Inforesources.id == id).all()
            numRows = 1
        except DBAPIError:
            success = False
    else:
        start, count = helpers.get_paging_params(request.params)

        parsed_filename = helpers.get_parsed_search_attr(
            request.params, 'filename')
        filter_conditions = []
        if parsed_filename:
            filter_conditions.append(
                Inforesources.filename.ilike(parsed_filename))

        try:
            if (start is not None) and (count is not None):
                inforesources = dbsession.query(Inforesources.id, Inforesources.filename) \
                    .filter(*filter_conditions) \
                    .order_by(Inforesources.filename) \
                    .slice(start, start + count) \
                    .all()
                numRows = dbsession.query(Inforesources) \
                    .filter(*filter_conditions) \
                    .count()
            else:
                inforesources = dbsession.query(Inforesources.id, Inforesources.filename) \
                    .filter(*filter_conditions) \
                    .order_by(Inforesources.filename) \
                    .all()
                numRows = len(inforesources)
        except DBAPIError:
            success = False

    inforesources_json = []
    for (id, name) in inforesources:
        inforesources_json.append({'id': id, 'filename': name})

    dbsession.close()
    return {
        'items': inforesources_json,
        'success': success,
        'numRows': numRows,
        'identifier': 'id'
    }
コード例 #2
0
ファイル: references.py プロジェクト: nextgis/nextgisbio
def inforesources_name(request):
    dbsession = DBSession()

    numRows = 0
    inforesources = []
    success = True

    if ('id' in request.params) and request.params['id'].isdigit():
        id = int(request.params['id'])
        try:
            inforesources = dbsession.query(Inforesources.id, Inforesources.filename)\
                .filter(Inforesources.id == id).all()
            numRows = 1
        except DBAPIError:
            success = False
    else:
        start, count = helpers.get_paging_params(request.params)

        parsed_filename = helpers.get_parsed_search_attr(request.params, 'filename')
        filter_conditions = []
        if parsed_filename:
            filter_conditions.append(Inforesources.filename.ilike(parsed_filename))

        try:
            if (start is not None) and (count is not None):
                inforesources = dbsession.query(Inforesources.id, Inforesources.filename) \
                    .filter(*filter_conditions) \
                    .order_by(Inforesources.filename) \
                    .slice(start, start + count) \
                    .all()
                numRows = dbsession.query(Inforesources) \
                    .filter(*filter_conditions) \
                    .count()
            else:
                inforesources = dbsession.query(Inforesources.id, Inforesources.filename) \
                    .filter(*filter_conditions) \
                    .order_by(Inforesources.filename) \
                    .all()
                numRows = len(inforesources)
        except DBAPIError:
            success = False

    inforesources_json = []
    for (id, name) in inforesources:
        inforesources_json.append({'id': id, 'filename': name})

    dbsession.close()
    return {
        'items': inforesources_json,
        'success': success,
        'numRows': numRows,
        'identifier': 'id'
    }
コード例 #3
0
ファイル: __init__.py プロジェクト: nextgis/nextgisbio
def table_browse(request):
    dbsession = DBSession()
    tablename = request.matchdict['table']
    try:
        table = table_by_name(tablename)
    except KeyError:
        return {'success': False, 'msg': 'Ошибка: отсутствует таблица с указанным именем'}

    numRows = 0
    items = []
    success = True

    if ('id' in request.params) and request.params['id'].isdigit():
        id = int(request.params['id'])
        try:
            items = dbsession.query(table) \
                .filter(table.id == id) \
                .all()
            numRows = 1
        except DBAPIError:
            success = False
    else:
        start, count = helpers.get_paging_params(request.params)
        filter_conditions = []

        parsed_name = helpers.get_parsed_search_attr(request.params, tablename)
        if parsed_name:
            filter_conditions.append(getattr(table, tablename).ilike(parsed_name))

        org_type = request.params['org_type'] if 'org_type' in request.params else None
        if org_type and hasattr(table, 'org_type'):
            filter_conditions.append(getattr(table, 'org_type') == org_type)

        try:
            if (start is not None) and (count is not None):
                items = dbsession.query(table)\
                    .filter(*filter_conditions) \
                    .order_by(tablename + ' asc') \
                    .slice(start, start+count) \
                    .all()
                numRows = dbsession.query(table) \
                    .filter(*filter_conditions) \
                    .count()
            else:
                items = dbsession.query(table) \
                    .filter(*filter_conditions) \
                    .order_by(tablename + ' asc') \
                    .all()
                numRows = len(items)
        except DBAPIError:
            success = False

    dbsession.close()
    items_json = []
    for row in items:
        items_json.append(row.as_json_dict())

    return {
        'items': items_json,
        'success': success,
        'numRows': numRows,
        'identifier': 'id'
    }
コード例 #4
0
ファイル: __init__.py プロジェクト: nextgis/nextgisbio
def table_browse(request):
    dbsession = DBSession()
    tablename = request.matchdict['table']
    try:
        table = table_by_name(tablename)
    except KeyError:
        return {
            'success': False,
            'msg': 'Ошибка: отсутствует таблица с указанным именем'
        }

    numRows = 0
    items = []
    success = True

    if ('id' in request.params) and request.params['id'].isdigit():
        id = int(request.params['id'])
        try:
            items = dbsession.query(table) \
                .filter(table.id == id) \
                .all()
            numRows = 1
        except DBAPIError:
            success = False
    else:
        start, count = helpers.get_paging_params(request.params)
        filter_conditions = []

        parsed_name = helpers.get_parsed_search_attr(request.params, tablename)
        if parsed_name:
            filter_conditions.append(
                getattr(table, tablename).ilike(parsed_name))

        org_type = request.params[
            'org_type'] if 'org_type' in request.params else None
        if org_type and hasattr(table, 'org_type'):
            filter_conditions.append(getattr(table, 'org_type') == org_type)

        try:
            if (start is not None) and (count is not None):
                items = dbsession.query(table)\
                    .filter(*filter_conditions) \
                    .order_by(tablename + ' asc') \
                    .slice(start, start+count) \
                    .all()
                numRows = dbsession.query(table) \
                    .filter(*filter_conditions) \
                    .count()
            else:
                items = dbsession.query(table) \
                    .filter(*filter_conditions) \
                    .order_by(tablename + ' asc') \
                    .all()
                numRows = len(items)
        except DBAPIError:
            success = False

    dbsession.close()
    items_json = []
    for row in items:
        items_json.append(row.as_json_dict())

    return {
        'items': items_json,
        'success': success,
        'numRows': numRows,
        'identifier': 'id'
    }