def admin_tab_users(): if session['admin']: users = DB_USERS.find().skip(session['SKIP']).limit(session['LIMIT']) pages = math.ceil(DB_USERS.find().count() / session['LIMIT']) results = DB_USERS.find().count() return render_template('admin_tab_users.html', users=users, pages=pages, results=results, PAGE_NUMBER=session['PAGE_NUMBER']) 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))
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'])