def testBooksByTags(): tags = request.args.get('tags', type=str) tagsArray = tags.split(',') if (len(tagsArray) == 0): return jsonify({ 'status': 3, 'message': 'Empty array of tags(', 'data': [] }) return jsonify(Product.getAllProductsFilteredByTags(tagsArray))
def showBooks(page): if (page < 1): return render_template('books.html', error='Incorrect page', user=flask_login.current_user) OFFSET = 8 userQuerySearch = request.args.get('q', default=None, type=str) tagsFilter = request.args.getlist('tags') tagsFilterStr = None if (userQuerySearch is not None): userQuerySearch = Security.escape_sql(userQuerySearch) result = Product.getAllProfuctsFilteredByQuery(userQuerySearch, page, OFFSET) countOfRows = Product.getQuantityOfRowsInTable( 'select count(*) as "count" from Товар where title like "%{0}% " \ or author like "%{0}%" order by rate;'.format( userQuerySearch))['count'] elif (tagsFilter): countOfRows = Product.getQuantityOfRowsInTable( sqlQueryHelper.buildSqlQueryByTags( 'select count(*) as "count" from Товар', tagsFilter))['count'] result = Product.getAllProductsFilteredByTags(tagsFilter, page, OFFSET) tagsFilterStr = tagsHelper.makeArrayOfTagsToStr(tagsFilter) tagsFilterStr = Security.escape_sql(tagsFilterStr) else: countOfRows = Product.getQuantityOfRowsInTable( 'select count(*) as "count" from Товар;')['count'] result = Product.getAllProfuctsFilteredById(page, OFFSET) if (result['status'] == 0): countOfPages = countOfRows // OFFSET if (countOfRows % OFFSET > 0): countOfPages += 1 countOfPagesRange = pageHelper.getRangeOfPages(countOfPages, page) return render_template( 'books.html', #TODO : IF STATUS products=result['data'], countOfPagesRange=countOfPagesRange, user=flask_login.current_user, q=userQuerySearch, currentPage=page, tagsAlreadySearched=tagsFilterStr) elif (result['status'] == 2): return render_template('books.html', error='Not found', user=flask_login.current_user, q=userQuerySearch, tagsAlreadySearched=tagsFilterStr) elif (result['status'] == 1): return render_template('books.html', error='SQL runtime error', user=flask_login.current_user) return render_template('books.html', error='ERROR', user=flask_login.current_user)