def delete_game(game_id, game_name):
    '''
    admin only deleting a game from database
    '''
    if session['admin']:
        DB_REVIEWS.remove({'game_name': game_name})
        DB_GAME_LIST.remove({'_id': ObjectId(game_id)})
        return redirect(url_for('admin_tab_games'))
    return render_template('no_login.html')
def all_games():
    '''
    rendering template for all games
    '''
    gamelist = DB_GAME_LIST.find().sort('name', 1).skip(session['SKIP']).limit(
        session['LIMIT'])
    results = DB_GAME_LIST.find().count()
    pages = math.ceil(DB_GAME_LIST.find().count() / session['LIMIT'])
    return render_template('all_games.html',
                           gamelist=gamelist,
                           pages=pages,
                           results=results,
                           PAGE_NUMBER=session['PAGE_NUMBER'])
def admin_tab_games():
    '''
    rendering templates for admin sites,
    check if admin is logged in before rendering results
    '''
    if session['admin']:
        gamelist = DB_GAME_LIST.find().skip(session['SKIP']).limit(
            session['LIMIT'])
        pages = math.ceil(DB_GAME_LIST.find().count() / session['LIMIT'])
        results = DB_GAME_LIST.find().count()
        return render_template('admin_tab_games.html',
                               gamelist=gamelist,
                               pages=pages,
                               results=results,
                               PAGE_NUMBER=session['PAGE_NUMBER'])
    return render_template('no_login.html')
示例#4
0
def update_game(game_id):
    '''
    updating database according to changes made
    in edit_game template, only available for admin
    '''
    if session['admin']:
        DB_GAME_LIST.update(
            {'_id': ObjectId(game_id)}, {
                'name': request.form.get('name'),
                'publisher': request.form.get('publisher'),
                'picture_link': request.form.get('picture_link'),
                'wiki_link': request.form.get('wiki_link'),
                'game_description': request.form.get('game_description')
            })
        return redirect(url_for('admin_tab'))
    return render_template('no_login.html')
def page_count(num, where):
    '''
    Pagination
    changing amount of pages, what to skip and change the shown results
    num = PAGE_NUMBER (reset to 1 by function redirecting to this, change_limit()
    where = variable declared by template
    to redirect back from where pagination was initiated on)
    '''
    if where == 'browse' or where == 'your_reviews' or where == 'admin_tab_reviews':
        session['PAGE_NUMBER'] = int(num)
        session['TOTAL_PAGES'] = math.ceil(DB_REVIEWS.find().count() /
                                           session['LIMIT'])

        if session['PAGE_NUMBER'] < 1:
            session['PAGE_NUMBER'] = 1
            session['SKIP'] = 0
        elif session['PAGE_NUMBER'] > session['TOTAL_PAGES']:
            session['PAGE_NUMBER'] = session['TOTAL_PAGES']
        session['SKIP'] = int((session['PAGE_NUMBER'] - 1) * session['LIMIT'])
        return redirect(url_for(where))

    elif where == 'all_games' or where == 'admin_tab_games':
        session['PAGE_NUMBER'] = int(num)
        session['TOTAL_PAGES'] = math.ceil(DB_GAME_LIST.find().count() /
                                           session['LIMIT'])

        if session['PAGE_NUMBER'] < 1:
            session['PAGE_NUMBER'] = 1
            session['SKIP'] = 0
        elif session['PAGE_NUMBER'] > session['TOTAL_PAGES']:
            session['PAGE_NUMBER'] = session['TOTAL_PAGES']
        session['SKIP'] = int((session['PAGE_NUMBER'] - 1) * session['LIMIT'])
        return redirect(url_for(where))

    elif where == 'admin_tab_users':
        session['PAGE_NUMBER'] = int(num)
        session['TOTAL_PAGES'] = math.ceil(DB_USERS.find().count() /
                                           session['LIMIT'])

        if session['PAGE_NUMBER'] < 1:
            session['PAGE_NUMBER'] = 1
            session['SKIP'] = 0
        elif session['PAGE_NUMBER'] > session['TOTAL_PAGES']:
            session['PAGE_NUMBER'] = session['TOTAL_PAGES']
        session['SKIP'] = int((session['PAGE_NUMBER'] - 1) * session['LIMIT'])
        return redirect(url_for(where))

    elif where == 'admin_tab_suggestions':
        session['PAGE_NUMBER'] = int(num)
        session['TOTAL_PAGES'] = math.ceil(DB_GAME_SUGGESTION.find().count() /
                                           session['LIMIT'])

        if session['PAGE_NUMBER'] < 1:
            session['PAGE_NUMBER'] = 1
            session['SKIP'] = 0
        elif session['PAGE_NUMBER'] > session['TOTAL_PAGES']:
            session['PAGE_NUMBER'] = session['TOTAL_PAGES']
        session['SKIP'] = int((session['PAGE_NUMBER'] - 1) * session['LIMIT'])
        return redirect(url_for(where))
示例#6
0
def add_review():
    '''
    rendering template for adding a review
    '''
    if 'username' in session:
        return render_template('add_review.html',
                               gamelist=DB_GAME_LIST.find().sort('name', 1))
    return render_template('no_login.html')
示例#7
0
def edit_game(game_id):
    '''
    rendering template for editing a game, only available for admin
    '''
    if session['admin']:
        game = DB_GAME_LIST.find_one({"_id": ObjectId(game_id)})
        return render_template('edit_game.html', game=game)
    return render_template('no_login.html')
示例#8
0
def edit_review(review_id):
    '''
    rendering template for editing a review
    '''
    if session['username']:
        review = DB_REVIEWS.find_one({"_id": ObjectId(review_id)})
        return render_template('edit_review.html',
                               review=review,
                               gamelist=DB_GAME_LIST.find())
    return render_template('no_login.html')
示例#9
0
def insert_game():
    '''
    inserting a game into database
    '''
    count_games = DB_COUNTER.find_one({'counter_name': 'counter'})
    new_count = int(count_games['number_games'] + 1)
    DB_GAME_LIST.insert({
        'name': request.form['name'],
        'publisher': request.form['publisher'],
        'picture_link': request.form['picture_link'],
        'wiki_link': request.form['wiki_link'],
        'game_description': request.form['game_description'],
        'game_id': int(new_count + 1),
        'average': 0
    })
    DB_COUNTER.update({'counter_name': 'counter'},
                      {'$inc': {
                          'number_games': 1
                      }})
    DB_GAME_SUGGESTION.remove({'name': request.form['name']})
    return redirect(url_for('admin_tab_games'))
def top_games():
    '''
    rendering template for top_games
    '''
    # initialization for all variables required for
    # upating the game keys required to show and update results
    total_ratings = DB_REVIEWS.aggregate([{
        '$group': {
            '_id': '$game_name',
            'count': {
                '$sum': '$rating'
            }
        }
    }])
    total_reviews = DB_REVIEWS.aggregate([{
        '$group': {
            '_id': '$game_name',
            'count': {
                '$sum': 1
            }
        }
    }])
    grp_average = DB_GAME_LIST.aggregate([{
        '$group': {
            '_id': '$name',
            'avgAmount': {
                '$avg': {
                    '$divide': ['$total_rating', '$total_reviews']
                }
            }
        }
    }])

    # updating game keys in order to show
    # correct averages, ratings and total ratings
    for rating in total_ratings:
        DB_GAME_LIST.update({'name': rating['_id']},
                            {'$set': {
                                'total_rating': rating['count']
                            }})
    for review in total_reviews:
        DB_GAME_LIST.update({'name': review['_id']},
                            {'$set': {
                                'total_reviews': review['count']
                            }})
    for grp in grp_average:
        if grp['avgAmount'] is None:
            continue
        average = round(grp['avgAmount'], 2)
        DB_GAME_LIST.update({'name': grp['_id']},
                            {'$set': {
                                'average': average
                            }})
    # sort by average, rating and total rating
    # in order to show results correctly on template
    best_avg = DB_GAME_LIST.find().sort('average', -1).limit(6)
    most_reviews = DB_GAME_LIST.find().sort('total_reviews', -1).limit(6)
    most_rating = DB_GAME_LIST.find().sort('total_rating', -1).limit(6)
    return render_template('top_games.html',
                           best_avg=best_avg,
                           most_reviews=most_reviews,
                           most_rating=most_rating)
def your_reviews():
    '''
    rendering template for your reviews
    '''
    # checks if there is a user in session or else redirects to fail login
    if 'username' in session:
        # initialization for all variables required for rendering results
        ureviews = DB_REVIEWS.find({
            'username': session['username']
        }).skip(session['SKIP']).limit(session['LIMIT'])
        results = DB_REVIEWS.find({'username': session['username']}).count()
        pages = math.ceil(
            DB_REVIEWS.find({
                'username': session['username']
            }).count() / session['LIMIT'])
        games = DB_GAME_LIST.find().sort('name', 1)

        # sets variables for search query and redirects back to your_reviews()
        if request.method == 'POST':
            game_json = request.form['game_select']
            browse_rating = request.form['browse_rating']
            if game_json != "":
                game_objects = game_json.split(',')
                game_name_slice_front = game_objects[1][10:]
                game_name = game_name_slice_front[:-1]
                game = DB_GAME_LIST.find_one({'name': game_name})
                session['game_name'] = game['name']
                session['game_picture'] = game['picture_link']
                session['game_wiki_link'] = game['wiki_link']
                session['game_description'] = game['game_description']
            if browse_rating != "":
                session['browse_rating'] = int(request.form['browse_rating'])
            return redirect(url_for('your_reviews'))

        # render template with game and rating chosen in your_reviews form
        if session['game_name'] and session['browse_rating']:
            # initialization for all variables
            # required for rendering results
            ureviews = DB_REVIEWS.find({
                'username': session['username'],
                'rating': session['browse_rating'],
                'game_name': session['game_name']
            }).skip(session['SKIP']).limit(session['LIMIT'])
            pages = math.ceil(
                DB_REVIEWS.find({
                    'username': session['username'],
                    'rating': session['browse_rating'],
                    'game_name': session['game_name']
                }).count() / session['LIMIT'])
            result = DB_REVIEWS.find({
                'username': session['username'],
                'rating': session['browse_rating'],
                'game_name': session['game_name']
            }).count()
            return render_template('your_reviews.html',
                                   ureviews=ureviews,
                                   games=games,
                                   result=result,
                                   results=results,
                                   pages=pages,
                                   PAGE_NUMBER=session['PAGE_NUMBER'])

        # render template with game chosen in your_reviews form
        elif session['game_name']:
            # initialization for all variables
            # required for rendering results
            ureviews = DB_REVIEWS.find({
                'username': session['username'],
                'game_name': session['game_name']
            }).skip(session['SKIP']).limit(session['LIMIT'])
            pages = math.ceil(
                DB_REVIEWS.find({
                    'username': session['username'],
                    'game_name': session['game_name']
                }).count() / session['LIMIT'])
            result = DB_REVIEWS.find({
                'username': session['username'],
                'game_name': session['game_name']
            }).count()
            return render_template('your_reviews.html',
                                   ureviews=ureviews,
                                   games=games,
                                   result=result,
                                   results=results,
                                   pages=pages,
                                   PAGE_NUMBER=session['PAGE_NUMBER'])

        # render template with rating chosen in your_reviews form
        elif session['browse_rating']:
            # initialization for all variables
            # required for rendering results
            ureviews = DB_REVIEWS.find({
                'username': session['username'],
                'rating': session['browse_rating']
            }).skip(session['SKIP']).limit(session['LIMIT'])
            pages = math.ceil(
                DB_REVIEWS.find({
                    'username': session['username'],
                    'rating': session['browse_rating']
                }).count() / session['LIMIT'])
            result = DB_REVIEWS.find({
                'username': session['username'],
                'rating': session['browse_rating']
            }).count()
            return render_template('your_reviews.html',
                                   ureviews=ureviews,
                                   games=games,
                                   result=result,
                                   results=results,
                                   pages=pages,
                                   PAGE_NUMBER=session['PAGE_NUMBER'])
        # render template with nothing chosen in your_reviews form
        return render_template('your_reviews.html',
                               ureviews=ureviews,
                               games=games,
                               results=results,
                               pages=pages,
                               PAGE_NUMBER=session['PAGE_NUMBER'])
    # render no_login template when no username in session
    return render_template('no_login.html')
def browse():
    '''
    rendering template for main search in database,
    shows information of all databases except game_suggestions
    '''
    # initialization of required standard variables
    # required to show results and pagination without choosing choices
    review_ratings_sort = DB_REVIEWS.find().sort('rating',
                                                 session['rating_sort'])
    review_users_sort = DB_REVIEWS.find().sort('username',
                                               session['user_sort'])
    review_games_sort = DB_REVIEWS.find().sort('game_name',
                                               session['game_sort'])
    review_latest_sort = DB_REVIEWS.find().sort('review_id',
                                                session['review_sort'])
    pages = math.ceil(DB_REVIEWS.find().count() / session['LIMIT'])
    all_reviews = DB_REVIEWS.find().skip(session['SKIP']).limit(
        session['LIMIT'])
    results = DB_REVIEWS.find().count()
    review_ratings = review_ratings_sort.skip(session['SKIP']).limit(
        session['LIMIT'])
    review_users = review_users_sort.skip(session['SKIP']).limit(
        session['LIMIT'])
    review_games = review_games_sort.skip(session['SKIP']).limit(
        session['LIMIT'])
    review_latest = review_latest_sort.skip(session['SKIP']).limit(
        session['LIMIT'])
    users = DB_USERS.find().sort('name', 1)
    games = DB_GAME_LIST.find().sort('name', 1)

    # sets variables when search query is made in browse form
    # redirects back to browse() in order to show results
    if request.method == 'POST':
        session['PAGE_NUMBER'] = 1
        game_json = request.form['game_select']
        browse_user = request.form['browse_user']
        browse_rating = request.form['browse_rating']

        if game_json != "":
            game_objects = game_json.split(',')
            game_name_slice_front = game_objects[1][10:]
            game_name = game_name_slice_front[:-1]
            game = DB_GAME_LIST.find_one({'name': game_name})
            session['game_name'] = game['name']
            session['game_picture'] = game['picture_link']
            session['game_wiki_link'] = game['wiki_link']
            session['game_description'] = game['game_description']
            session['game_average'] = game['average']
            session['game_json'] = game_json
        if browse_user != "":
            session['browse_user'] = request.form['browse_user']
        if browse_rating != "":
            session['browse_rating'] = int(request.form['browse_rating'])
        return redirect(url_for('browse'))

    # render template with all choices in browse form chosen
    if session['browse_user'] and session['game_name'] and session[
            'browse_rating']:
        # initialization for all variables required for rendering results
        review_latest_sort = DB_REVIEWS.find({
            'username': session['browse_user'],
            'game_name': session['game_name'],
            'rating': session['browse_rating']
        }).sort('review_id', session['review_sort'])
        review_latest = review_latest_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_not_sorted = DB_REVIEWS.find({
            'username': session['browse_user'],
            'game_name': session['game_name'],
            'rating': session['browse_rating']
        })
        pages = math.ceil(
            DB_REVIEWS.find({
                'username': session['browse_user'],
                'game_name': session['game_name'],
                'rating': session['browse_rating']
            }).count() / session['LIMIT'])
        results = DB_REVIEWS.find({
            'username': session['browse_user'],
            'game_name': session['game_name'],
            'rating': session['browse_rating']
        }).count()
        review_users = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_ratings = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_games = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        all_reviews = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        return render_template('browse.html',
                               review_ratings=review_ratings,
                               review_users=review_users,
                               review_games=review_games,
                               review_latest=review_latest,
                               all_reviews=all_reviews,
                               users=users,
                               games=games,
                               pages=pages,
                               results=results,
                               PAGE_NUMBER=session['PAGE_NUMBER'])

    # render template with user and rating chosen in browse form
    elif session['browse_user'] and session['browse_rating']:
        # initialization for all variables required for rendering results
        review_latest_sort = DB_REVIEWS.find({
            'username': session['browse_user'],
            'rating': session['browse_rating']
        }).sort('review_id', session['review_sort'])
        review_latest = review_latest_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_games_sort = DB_REVIEWS.find({
            'username': session['browse_user'],
            'rating': session['browse_rating']
        }).sort('game_name', session['game_sort'])
        review_games = review_games_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_not_sorted = DB_REVIEWS.find({
            'username': session['browse_user'],
            'rating': session['browse_rating']
        })
        pages = math.ceil(
            DB_REVIEWS.find({
                'username': session['browse_user'],
                'rating': session['browse_rating']
            }).count() / session['LIMIT'])
        results = DB_REVIEWS.find({
            'username': session['browse_user'],
            'rating': session['browse_rating']
        }).count()
        review_users = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_games = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        all_reviews = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        return render_template('browse.html',
                               review_ratings=review_ratings,
                               review_users=review_users,
                               review_games=review_games,
                               review_latest=review_latest,
                               all_reviews=all_reviews,
                               users=users,
                               games=games,
                               pages=pages,
                               results=results,
                               PAGE_NUMBER=session['PAGE_NUMBER'])

    # render template with user and game chosen in browse form
    elif session['browse_user'] and session['game_name']:
        # initialization for all variables required for rendering results
        review_latest_sort = DB_REVIEWS.find({
            'username': session['browse_user'],
            'game_name': session['game_name']
        }).sort('review_id', session['review_sort'])
        review_latest = review_latest_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_ratings_sort = DB_REVIEWS.find({
            'username':
            session['browse_user'],
            'game_name':
            session['game_name']
        }).sort('rating', session['rating_sort'])
        review_ratings = review_ratings_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_not_sorted = DB_REVIEWS.find({
            'username': session['browse_user'],
            'game_name': session['game_name']
        })
        pages = math.ceil(
            DB_REVIEWS.find({
                'username': session['browse_user'],
                'game_name': session['game_name']
            }).count() / session['LIMIT'])
        results = DB_REVIEWS.find({
            'username': session['browse_user'],
            'game_name': session['game_name']
        }).count()
        review_users = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_games = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        all_reviews = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        return render_template('browse.html',
                               review_ratings=review_ratings,
                               review_users=review_users,
                               review_games=review_games,
                               review_latest=review_latest,
                               all_reviews=all_reviews,
                               users=users,
                               games=games,
                               pages=pages,
                               results=results,
                               PAGE_NUMBER=session['PAGE_NUMBER'])

    # render template with rating and game chosen in browse form
    elif session['browse_rating'] and session['game_name']:
        # initialization for all variables required for rendering results
        review_latest_sort = DB_REVIEWS.find({
            'rating': session['browse_rating'],
            'game_name': session['game_name']
        }).sort('review_id', session['review_sort'])
        review_latest = review_latest_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_users_sort = DB_REVIEWS.find({
            'rating': session['browse_rating'],
            'game_name': session['game_name']
        }).sort('username', session['user_sort'])
        review_users = review_users_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_not_sorted = DB_REVIEWS.find({
            'rating': session['browse_rating'],
            'game_name': session['game_name']
        })
        pages = math.ceil(
            DB_REVIEWS.find({
                'rating': session['browse_rating'],
                'game_name': session['game_name']
            }).count() / session['LIMIT'])
        results = DB_REVIEWS.find({
            'rating': session['browse_rating'],
            'game_name': session['game_name']
        }).count()
        review_ratings = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_games = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        all_reviews = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        return render_template('browse.html',
                               review_ratings=review_ratings,
                               review_users=review_users,
                               review_games=review_games,
                               review_latest=review_latest,
                               all_reviews=all_reviews,
                               users=users,
                               games=games,
                               pages=pages,
                               results=results,
                               PAGE_NUMBER=session['PAGE_NUMBER'])

    # render template with user chosen in browse form
    elif session['browse_user']:
        # initialization for all variables required for rendering results
        review_latest_sort = DB_REVIEWS.find({
            'username': session['browse_user']
        }).sort('review_id', session['review_sort'])
        review_latest = review_latest_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_ratings_sort = DB_REVIEWS.find({
            'username':
            session['browse_user']
        }).sort('rating', session['rating_sort'])
        review_ratings = review_ratings_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_games_sort = DB_REVIEWS.find({
            'username': session['browse_user']
        }).sort('game_name', session['game_sort'])
        review_games = review_games_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_not_sorted = DB_REVIEWS.find(
            {'username': session['browse_user']})
        pages = math.ceil(
            DB_REVIEWS.find({
                'username': session['browse_user']
            }).count() / session['LIMIT'])
        results = DB_REVIEWS.find({'username': session['browse_user']}).count()
        review_users = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        all_reviews = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        return render_template('browse.html',
                               review_ratings=review_ratings,
                               review_users=review_users,
                               review_games=review_games,
                               review_latest=review_latest,
                               all_reviews=all_reviews,
                               users=users,
                               games=games,
                               pages=pages,
                               results=results,
                               PAGE_NUMBER=session['PAGE_NUMBER'])

    # render template with rating chosen in browse form
    elif session['browse_rating']:
        # initialization for all variables required for rendering results
        review_latest_sort = DB_REVIEWS.find({
            'rating': session['browse_rating']
        }).sort('review_id', session['review_sort'])
        review_latest = review_latest_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_users_sort = DB_REVIEWS.find({
            'rating': session['browse_rating']
        }).sort('username', session['user_sort'])
        review_users = review_users_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_games_sort = DB_REVIEWS.find({
            'rating': session['browse_rating']
        }).sort('game_name', session['game_sort'])
        review_games = review_games_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_not_sorted = DB_REVIEWS.find(
            {'rating': session['browse_rating']})
        pages = math.ceil(
            DB_REVIEWS.find({
                'rating': session['browse_rating']
            }).count() / session['LIMIT'])
        results = DB_REVIEWS.find({'rating': session['browse_rating']}).count()
        review_ratings = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        all_reviews = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        return render_template('browse.html',
                               review_ratings=review_ratings,
                               review_users=review_users,
                               review_games=review_games,
                               review_latest=review_latest,
                               all_reviews=all_reviews,
                               users=users,
                               games=games,
                               pages=pages,
                               results=results,
                               PAGE_NUMBER=session['PAGE_NUMBER'])

    # render template with name chosen in browse form
    elif session['game_name']:
        # initialization for all variables required for rendering results
        review_latest_sort = DB_REVIEWS.find({
            'game_name': session['game_name']
        }).sort('review_id', session['review_sort'])
        review_latest = review_latest_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_users_sort = DB_REVIEWS.find({
            'game_name': session['game_name']
        }).sort('username', session['user_sort'])
        review_users = review_users_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_ratings_sort = DB_REVIEWS.find({
            'game_name': session['game_name']
        }).sort('rating', session['rating_sort'])
        review_ratings = review_ratings_sort.skip(session['SKIP']).limit(
            session['LIMIT'])
        review_not_sorted = DB_REVIEWS.find(
            {'game_name': session['game_name']})
        pages = math.ceil(
            DB_REVIEWS.find({
                'game_name': session['game_name']
            }).count() / session['LIMIT'])
        results = DB_REVIEWS.find({'game_name': session['game_name']}).count()
        review_games = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        all_reviews = review_not_sorted.skip(session['SKIP']).limit(
            session['LIMIT'])
        return render_template('browse.html',
                               review_ratings=review_ratings,
                               review_users=review_users,
                               review_games=review_games,
                               review_latest=review_latest,
                               all_reviews=all_reviews,
                               users=users,
                               games=games,
                               pages=pages,
                               results=results,
                               PAGE_NUMBER=session['PAGE_NUMBER'])

    # render template with nothing chosen in browse form requires
    # initial initialization of variables in the start of function
    else:
        return render_template('browse.html',
                               not_selected=True,
                               review_ratings=review_ratings,
                               review_users=review_users,
                               review_games=review_games,
                               review_latest=review_latest,
                               all_reviews=all_reviews,
                               results=results,
                               users=users,
                               games=games,
                               pages=pages,
                               PAGE_NUMBER=session['PAGE_NUMBER'])