def progress_user(request): dir_name = os.path.dirname( os.path.abspath(__file__)) + "\\csv_uploads\\file.csv" params = request.GET with open(dir_name) as f: keys = f.readline().rstrip().split(";") achievements = Achievement.get_all_achievements() if request.method == 'POST': achievement_id = request.POST['achievement_id'] user_id = request.POST['user_id'] sort_by = request.POST['sort_by'] user_id_value = request.POST['user_id_value'] res_id_user = User.get_by_id(user_id, user_id_value) leaderboard = Achievement.get_leaderbord_by_user( achievement_id, res_id_user, sort_by) user = leaderboard['leaderboard'][leaderboard['user_position']] user_object = User.get_user(res_id_user) prog = Achievement.evaluate(user_object, achievement_id, achievement_date=None, execute_triggers=True) rewards = [] badges = [] current_level = prog['level'] all_rewards = AchievementReward.get_rewards(achievement_id, 6) all_badges = AchievementReward.get_rewards(achievement_id, 1) for i in range(0, len(all_rewards)): if all_rewards[i]['from_level'] <= current_level: rewards.append(all_rewards[i]['value']) for i in range(0, len(all_badges)): if all_badges[i]['from_level'] <= current_level: badges.append(all_badges[i]['value']) """ levels = prog['levels'] for key,value in levels.items(): if value['level'] <= current_level: for key,value in value['rewards'].items(): if value['name'] == 'badge': badges.append(value['value']) if value['name'] == 'reward': rewards.append(value['value']) """ header_user = [] for key, value in user['user']['additional_public_data'].items(): header_user.append(key) return { 'header_user': header_user, 'user': user, 'achievements': achievements, 'params': params, 'keys': keys, 'badges': badges, 'rewards': rewards, 'current_level': current_level } else: return {'achievements': achievements, 'params': params, 'keys': keys}
def increase_data(request): dir_name = os.path.dirname( os.path.abspath(__file__)) + "\\csv_uploads\\file.csv" params = request.GET if request.method == 'POST': if 'upload' in request.POST: dir_name = os.path.dirname( os.path.abspath(__file__)) + "\\csv_uploads\\values_data.csv" content = request.POST['file'].file content = content.read() content = content.decode('utf-8', 'ignore') my_dict = p.get_book(file_type="csv", file_content=content, delimiter=';') my_dict.save_as(dir_name, delimiter=';') with open(dir_name) as f: keys_data = f.readline().rstrip().split(";") params.update({'id': request.POST['achievement_id']}) return render_to_response( 'gengine.app:templates/index/increase_data.jinja2', { 'keys_data': keys_data, 'params': params }, request=request) elif 'value' in request.POST: user_id = request.POST["user_id"] variable = request.POST["variable"] value = request.POST["value"] user_id_value = request.POST["user_id_value"] achievement_id = request.POST['achievement_id'] res_id_user = User.get_by_id(user_id, user_id_value) Value.increaseByValue(variable, res_id_user, value) Achievement.update_user_value(achievement_id, res_id_user) return HTTPFound(request.route_url('increase_data', _query=params)) else: user_id = request.POST["user_id"] variable = request.POST["variable"] achievement_id = params["id"] Value.increase(achievement_id, variable, user_id, dir_name) return HTTPFound(request.route_url('leaderboard', _query=params)) else: with open(dir_name) as f: keys = f.readline().rstrip().split(";") achievements = Achievement.get_all_achievements() return {'achievements': achievements, 'params': params, 'keys': keys}