Пример #1
0
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))
Пример #2
0
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)