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' }
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' }
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' }
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' }