def index(request, region=None): with connection.cursor() as cursor: if region is None: cursor.execute("SELECT * FROM teams") else: cursor.execute("SELECT * FROM teams WHERE region = %s", [region]) results = utils.dictfetchall(cursor) cursor.execute("SELECT DISTINCT region FROM teams") regions = [r["region"] for r in utils.dictfetchall(cursor)] return render(request, "teams/index.html", {"data": results, "regions": regions})
def index(request): with connection.cursor() as cursor: cursor.execute("SELECT * from tournaments") tournaments = utils.dictfetchall(cursor) return render(request, "tournaments/index.html", {"tournaments": tournaments})
def index(request): championlist = [] with connection.cursor() as cursor: cursor.execute("SELECT name, id " "FROM champions ") champions = utils.dictfetchall(cursor) for item in champions: context = dict({}) context.update({'name': item['name']}) context.update({'id': item['id']}) if 'Dr.' in item['name']: urlname = (item['name']).replace(".", "").replace(" ", "") context.update({'urlname': urlname}) elif 'Fiddle' in item['name']: context.update({'urlname': 'FiddleSticks'}) elif 'Jarvan' in item['name']: context.update({'urlname': 'JarvanIV'}) elif 'Wukong' in item['name']: context.update({'urlname': 'MonkeyKing'}) elif "Kog'Maw" in item['name']: context.update({'urlname': 'KogMaw'}) elif "Rek'Sai" in item['name']: context.update({'urlname': 'RekSai'}) else: context.update({ 'urlname': ((item['name'].lower().replace("'", "")).title()).replace( " ", "") }) championlist.append(context) contextlist = {'championlist': championlist} return render(request, 'champions/index.html', contextlist)
def get_nn_info(self, condition): """ search nn_info :return: """ try: # make query string (use raw query only when cate is too complicated) query_list = [] query_list.append("SELECT * ") query_list.append("FROM master_NN_DEF_LIST_INFO NL LEFT OUTER JOIN master_NN_VER_WFLIST_INFO WF ") query_list.append(" ON NL.nn_id = WF.nn_id_id AND WF.active_flag = 'Y' ") query_list.append(" LEFT OUTER JOIN master_NN_VER_BATCHLIST_INFO BT ") query_list.append(" ON wf.nn_id_id||'_'||wf.nn_wf_ver_id = substr(bt.nn_batch_ver_id,1,length(wf.nn_id_id||'_'||wf.nn_wf_ver_id)) ") if condition['nn_id'] == '%': query_list.append(" AND BT.eval_flag = 'Y' ") else: query_list.append(" AND BT.active_flag = 'Y' ") query_list.append("WHERE NL.nn_id like %s ") query_list.append(" AND NL.biz_cate like %s ") query_list.append(" AND NL.biz_sub_cate like %s ") query_list.append(" AND NL.use_flag = 'Y' ") # parm_list : set parm value as list parm_list = [] parm_list.append("%" + ('' if condition.get("nn_id") is None else condition.get("nn_id"))) parm_list.append("%" + ('' if condition.get("biz_cate") is None else condition.get("biz_cate"))) parm_list.append("%" + ('' if condition.get("biz_sub_cate") is None else condition.get("biz_sub_cate"))) with connection.cursor() as cursor: cursor.execute(''.join(query_list), parm_list) row = dictfetchall(cursor) return row except Exception as e: raise Exception(e)
def get_nn_wf_info(self, nn_id): """ search nn_wf_info :return: """ try: # make query string (use raw query only when cate is too complicated) query_list = [] query_list.append(" SELECT wf.nn_id_id nn_id ") query_list.append(" ,wf.nn_wf_ver_id ") query_list.append(" ,wf.active_flag ") query_list.append(" ,wf.nn_wf_ver_desc ") query_list.append(" ,wf.condition ") query_list.append(" ,btt.nn_batch_ver_id train_batch_ver_id ") query_list.append(" ,smt.acc_info train_acc_info ") query_list.append(" ,smt.loss_info train_loss_info ") query_list.append(" ,smrt.result_info t_result_info ") query_list.append(" ,btp.nn_batch_ver_id pred_batch_ver_id ") query_list.append(" ,smp.acc_info pred_acc_info ") query_list.append(" ,smp.loss_info pred_loss_info ") query_list.append(" ,smrp.result_info p_result_info ") query_list.append(" FROM master_NN_DEF_LIST_INFO nl ") query_list.append( " LEFT OUTER JOIN master_NN_VER_WFLIST_INFO wf ON nl.nn_id = wf.nn_id_id " ) query_list.append( " LEFT OUTER JOIN master_NN_VER_BATCHLIST_INFO btt ON wf.id = btt.nn_wf_ver_id_id and btt.eval_flag = 'Y' " ) query_list.append( " LEFT OUTER JOIN master_train_summary_accloss_info smt ON btt.nn_batch_ver_id = smt.nn_batch_ver_id_id " ) query_list.append( " LEFT OUTER JOIN master_train_summary_result_info smrt ON btt.nn_batch_ver_id = smrt.nn_batch_ver_id_id " ) query_list.append( " LEFT OUTER JOIN master_NN_VER_BATCHLIST_INFO btp ON wf.id = btp.nn_wf_ver_id_id and btp.active_flag = 'Y' " ) query_list.append( " LEFT OUTER JOIN master_train_summary_accloss_info smp ON btp.nn_batch_ver_id = smp.nn_batch_ver_id_id " ) query_list.append( " LEFT OUTER JOIN master_train_summary_result_info smrp ON btp.nn_batch_ver_id = smrp.nn_batch_ver_id_id " ) query_list.append("WHERE nn_id_id like %s ") query_list.append(" order by wf.nn_id_id, wf.nn_wf_ver_id ") # parm_list : set parm value as list parm_list = [] parm_list.append(nn_id) with connection.cursor() as cursor: cursor.execute(''.join(query_list), parm_list) row = dictfetchall(cursor) return row except Exception as e: raise Exception(e)
def get_with_sub_categories(): with connection.cursor() as cursor: cursor.execute(""" select o.name, array_agg(distinct op.name) as sub_categories from order_product p inner join order_product_sub_category opsc on p.id = opsc.product_id inner join order_productsubcategory op on op.id = opsc.productsubcategory_id inner join order_productcategory o on o.id = p.category_id group by p.category_id, o.name; """) return dictfetchall(cursor)
def detail(request, id): with connection.cursor() as cursor: cursor.execute("SELECT p.name, t.id " "FROM teams t, registers r, players p " "WHERE t.id = %s AND t.id = r.teamID AND r.player = p.name", [id]) results = utils.dictfetchall(cursor) cursor.execute("SELECT wins FROM wins WHERE teamID = %s", [id]) wins = utils.dictfetchone(cursor)["wins"] return render(request, "teams/detail.html", {"data": results, "wins": wins})
def detail(request, id): with connection.cursor() as cursor: cursor.execute( "SELECT c.seriesID AS series, c.teamID AS team, c.blueSide AS blueSide " "FROM competes c " "WHERE c.seriesID in (" "SELECT seriesID FROM organizes WHERE tournamentID = %s) " "ORDER BY c.seriesID", [id]) results = utils.dictfetchall(cursor) if not results: raise Http404("There are no games with id '{0}'".format(id)) all_series = {} for result in results: series = result["series"] team = result["team"] blue = result["blueSide"] if series not in all_series: all_series[series] = {} with connection.cursor() as cursor: cursor.execute( "SELECT s.seriesID series, s.teamID team, SUM(s.nexus) score " "FROM scores s JOIN matches m ON " "(s.seriesID = m.seriesID AND s.matchNumber = m.matchNumber) " "WHERE m.seriesID = %s AND s.teamID = %s" "GROUP BY s.seriesID, s.teamID", [series, team]) score = utils.dictfetchone(cursor) all_series[series]["blue" if blue == 1 else "purple"] = { "team": team, "score": score["score"] } with connection.cursor() as cursor: tournament = utils.dictfetchone( cursor.execute("SELECT name, year FROM tournaments WHERE id = %s", [id])) return render(request, "tournaments/detail.html", { "data": all_series, "tournament": tournament })
def get_nn_wf_info(self, nn_id): """ search nn_wf_info :return: """ try: # make query string (use raw query only when cate is too complicated) query_list = [] query_list.append(" SELECT wf.nn_id_id nn_id ") query_list.append(" ,wf.nn_wf_ver_id ") query_list.append(" ,wf.active_flag ") query_list.append(" ,wf.nn_wf_ver_desc ") query_list.append(" ,wf.condition ") query_list.append(" ,btt.nn_batch_ver_id train_batch_ver_id ") query_list.append(" ,smt.acc_info train_acc_info ") query_list.append(" ,smt.loss_info train_loss_info ") query_list.append(" ,smrt.result_info t_result_info ") query_list.append(" ,btp.nn_batch_ver_id pred_batch_ver_id ") query_list.append(" ,smp.acc_info pred_acc_info ") query_list.append(" ,smp.loss_info pred_loss_info ") query_list.append(" ,smrp.result_info p_result_info ") query_list.append(" FROM master_NN_DEF_LIST_INFO nl ") query_list.append(" LEFT OUTER JOIN master_NN_VER_WFLIST_INFO wf ON nl.nn_id = wf.nn_id_id ") query_list.append(" LEFT OUTER JOIN master_NN_VER_BATCHLIST_INFO btt ON wf.id = btt.nn_wf_ver_id_id and btt.eval_flag = 'Y' ") query_list.append(" LEFT OUTER JOIN master_train_summary_accloss_info smt ON btt.nn_batch_ver_id = smt.nn_batch_ver_id_id ") query_list.append(" LEFT OUTER JOIN master_train_summary_result_info smrt ON btt.nn_batch_ver_id = smrt.nn_batch_ver_id_id ") query_list.append(" LEFT OUTER JOIN master_NN_VER_BATCHLIST_INFO btp ON wf.id = btp.nn_wf_ver_id_id and btp.active_flag = 'Y' ") query_list.append(" LEFT OUTER JOIN master_train_summary_accloss_info smp ON btp.nn_batch_ver_id = smp.nn_batch_ver_id_id ") query_list.append(" LEFT OUTER JOIN master_train_summary_result_info smrp ON btp.nn_batch_ver_id = smrp.nn_batch_ver_id_id ") query_list.append("WHERE nn_id_id like %s ") query_list.append(" order by wf.nn_id_id, wf.nn_wf_ver_id ") # parm_list : set parm value as list parm_list = [] parm_list.append(nn_id) with connection.cursor() as cursor: cursor.execute(''.join(query_list), parm_list) row = dictfetchall(cursor) return row except Exception as e: raise Exception(e)
def get_nn_batch_info(self, nn_id, ver): """ search nn_batch_info :return: """ try: # make query string (use raw query only when cate is too complicated) query_list = [] query_list.append(" select wf.nn_id_id ") query_list.append(" ,wf.nn_wf_ver_id ") query_list.append(" ,bt.nn_batch_ver_id ") query_list.append(" ,bt.active_flag ") query_list.append(" ,bt.eval_flag ") query_list.append(" ,sm.acc_info ") query_list.append(" ,sm.loss_info ") query_list.append(" ,smr.result_info ") query_list.append(" from master_NN_VER_WFLIST_INFO wf ") query_list.append(" ,master_NN_VER_BATCHLIST_INFO bt ") query_list.append( " LEFT OUTER JOIN master_train_summary_accloss_info sm ") query_list.append( " ON bt.nn_batch_ver_id = sm.nn_batch_ver_id_id ") query_list.append( " LEFT OUTER JOIN master_train_summary_result_info smr ") query_list.append( " ON bt.nn_batch_ver_id = smr.nn_batch_ver_id_id ") query_list.append( " where wf.nn_id_id||'_'||wf.nn_wf_ver_id = substr(bt.nn_batch_ver_id,1,length(wf.nn_id_id||'_'||wf.nn_wf_ver_id)) " ) query_list.append(" and wf.nn_id_id = %s ") query_list.append(" and wf.nn_wf_ver_id = %s ") # parm_list : set parm value as list parm_list = [] parm_list.append(nn_id) parm_list.append(ver) with connection.cursor() as cursor: cursor.execute(''.join(query_list), parm_list) row = dictfetchall(cursor) return row except Exception as e: raise Exception(e)
def get_menu_info(self): """ get menu :return: """ try: query_list = [] query_list.append( " select wf_task_menu_id,wf_task_menu_name,wf_task_menu_desc ") query_list.append(" from master_wf_task_menu_rule menu ") # parm_list : set parm value as list parm_list = [] with connection.cursor() as cursor: cursor.execute(''.join(query_list), parm_list) row = dictfetchall(cursor) return row except Exception as e: raise Exception(e)
def get_nn_info(self, condition): """ search nn_info :return: """ try: # make query string (use raw query only when cate is too complicated) query_list = [] query_list.append("SELECT * ") query_list.append(",case when (select count(*) from master_NN_VER_WFLIST_INFO WFs ") query_list.append(" where NL.nn_id = WFs.nn_id_id ") query_list.append(" and wfs.condition in( '2' ) ") query_list.append(" ) in (0) then 'Close' ") query_list.append(" else 'Action' ") query_list.append(" end m_state ") query_list.append("FROM master_NN_DEF_LIST_INFO NL LEFT OUTER JOIN master_NN_VER_WFLIST_INFO WF ") query_list.append(" ON NL.nn_id = WF.nn_id_id AND WF.active_flag = 'Y' ") query_list.append(" LEFT OUTER JOIN master_NN_VER_BATCHLIST_INFO BT ") query_list.append(" ON wf.id = bt.nn_wf_ver_id_id ") if condition['nn_id'] == '%': query_list.append(" AND BT.eval_flag = 'Y' ") else: query_list.append(" AND BT.active_flag = 'Y' ") query_list.append("WHERE NL.nn_id like %s ") query_list.append(" AND NL.biz_cate like %s ") query_list.append(" AND NL.biz_sub_cate like %s ") query_list.append(" AND NL.use_flag = 'Y' ") # parm_list : set parm value as list parm_list = [] parm_list.append("%" + ('' if condition.get("nn_id") is None else condition.get("nn_id"))) parm_list.append("%" + ('' if condition.get("biz_cate") is None else condition.get("biz_cate"))) parm_list.append("%" + ('' if condition.get("biz_sub_cate") is None else condition.get("biz_sub_cate"))) with connection.cursor() as cursor: cursor.execute(''.join(query_list), parm_list) row = dictfetchall(cursor) return row except Exception as e: raise Exception(e)
def get_nn_batch_info(self, nn_id, ver): """ search nn_batch_info :return: """ try: # make query string (use raw query only when cate is too complicated) query_list = [] query_list.append(" select wf.nn_id_id ") query_list.append(" ,wf.nn_wf_ver_id ") query_list.append(" ,bt.nn_batch_ver_id ") query_list.append(" ,bt.active_flag ") query_list.append(" ,bt.eval_flag ") query_list.append(" ,sm.acc_info ") query_list.append(" ,sm.loss_info ") query_list.append(" ,smr.result_info ") query_list.append(" from master_NN_VER_WFLIST_INFO wf ") query_list.append(" ,master_NN_VER_BATCHLIST_INFO bt ") query_list.append(" LEFT OUTER JOIN master_train_summary_accloss_info sm ") query_list.append(" ON bt.nn_batch_ver_id = sm.nn_batch_ver_id_id ") query_list.append(" LEFT OUTER JOIN master_train_summary_result_info smr ") query_list.append(" ON bt.nn_batch_ver_id = smr.nn_batch_ver_id_id ") query_list.append(" where wf.id= bt.nn_wf_ver_id_id ") query_list.append(" and wf.nn_id_id = %s ") query_list.append(" and wf.nn_wf_ver_id = %s ") # parm_list : set parm value as list parm_list = [] parm_list.append(nn_id) parm_list.append(ver) with connection.cursor() as cursor: cursor.execute(''.join(query_list), parm_list) row = dictfetchall(cursor) return row except Exception as e: raise Exception(e)
def get_nn_wf_info(self, nn_id): """ search nn_wf_info :return: """ try: # make query string (use raw query only when cate is too complicated) query_list = [] query_list.append(" select nn_wf.nn_id_id nn_id ") query_list.append(" ,nn_wf.nn_wf_ver_id ") query_list.append(" ,nn_wf.wf_active_flag active_flag ") query_list.append( " ,nn_wf.nn_batch_ver_id train_batch_ver_id ") query_list.append(" ,nn_wf.train_acc_info ") query_list.append(" ,nn_wf.train_loss_info ") query_list.append(" ,btp.nn_batch_ver_id pred_batch_ver_id ") query_list.append(" ,smp.acc_info pred_acc_info ") query_list.append(" ,smp.loss_info pred_loss_info ") query_list.append(" ,smrt.result_info t_result_info ") query_list.append(" ,smrf.result_info f_result_info ") query_list.append(" from( ") query_list.append(" SELECT wf.nn_id_id ") query_list.append(" ,wf.nn_wf_ver_id ") query_list.append( " ,wf.nn_id_id||'_'||wf.nn_wf_ver_id as status_id ") query_list.append(" ,wf.active_flag wf_active_flag ") query_list.append(" ,btt.nn_batch_ver_id ") query_list.append(" ,btt.active_flag bt_active_flag ") query_list.append(" ,smt.acc_info train_acc_info ") query_list.append(" ,smt.loss_info train_loss_info ") query_list.append(" FROM master_NN_DEF_LIST_INFO nl ") query_list.append( " LEFT OUTER JOIN master_NN_VER_WFLIST_INFO wf ON nl.nn_id = wf.nn_id_id " ) query_list.append( " LEFT OUTER JOIN master_NN_VER_BATCHLIST_INFO btt ") query_list.append( " ON wf.nn_id_id||'_'||wf.nn_wf_ver_id = substr(btt.nn_batch_ver_id,1,length(wf.nn_id_id||'_'||wf.nn_wf_ver_id)) " ) query_list.append(" and btt.eval_flag = 'Y' ") query_list.append( " LEFT OUTER JOIN master_train_summary_accloss_info smt " ) query_list.append( " ON btt.nn_batch_ver_id = smt.nn_batch_ver_id_id ) nn_wf " ) query_list.append( " LEFT OUTER JOIN master_NN_VER_BATCHLIST_INFO btp ") query_list.append( " ON nn_wf.status_id = substr(btp.nn_batch_ver_id,1,length(nn_wf.status_id)) " ) query_list.append(" and btp.active_flag = 'Y' ") query_list.append( " LEFT OUTER JOIN master_train_summary_accloss_info smp " ) query_list.append( " ON btp.nn_batch_ver_id = smp.nn_batch_ver_id_id ") query_list.append( " LEFT OUTER JOIN master_train_summary_result_info smrt " ) query_list.append( " ON nn_wf.nn_batch_ver_id = smrt.nn_batch_ver_id_id " ) query_list.append( " LEFT OUTER JOIN master_train_summary_result_info smrf " ) query_list.append( " ON btp.nn_batch_ver_id = smrf.nn_batch_ver_id_id " ) query_list.append("WHERE nn_id_id like %s ") query_list.append(" order by nn_wf.nn_id_id, nn_wf.nn_wf_ver_id ") # parm_list : set parm value as list parm_list = [] parm_list.append(nn_id) with connection.cursor() as cursor: cursor.execute(''.join(query_list), parm_list) row = dictfetchall(cursor) return row except Exception as e: raise Exception(e)
def detail(request, id, stat=None): with connection.cursor() as cursor: cursor.execute("SELECT id, bestOfCount FROM series WHERE id = %s", [id]) series = utils.dictfetchone(cursor) series["matches"] = [] cursor.execute("SELECT teamID, blueSide " "FROM competes " "WHERE seriesID = %s", [id]) for result in utils.dictfetchall(cursor): series["blue" if result["blueSide"] == 1 else "purple"] = { "team": result["teamID"], "members": []} cursor.execute("SELECT seriesID, matchNumber, date(matchDate) matchDate " "FROM matches WHERE seriesID = %s ORDER BY matchNumber", [id]) matches = utils.dictfetchall(cursor) first_match = matches[0] cursor.execute("SELECT player FROM plays WHERE seriesID = %s AND matchNumber = %s", [id, first_match["matchNumber"]]) for result in utils.dictfetchall(cursor): name = result["player"] team = helpers.find_team(name, first_match["matchDate"]) series["blue" if team == series["blue"]["team"] else "purple"]["members"].append(name) for match in matches: match_number = match["matchNumber"] match_details = {"blue": {}, "purple": {}} cursor.execute("SELECT c.id id, c.name name, b.pickTurn " "FROM champions c, bans b " "WHERE b.seriesID = %s AND b.matchNumber = %s AND b.championID = c.id " "ORDER BY b.pickTurn", [id, match_number]) match_details["bans"] = [(result["id"], result["name"]) for result in utils.dictfetchall(cursor)] values = ["kills", "deaths", "assists"] if stat in helpers.STATISTICS: values = [stat] elif stat is not None: return redirect(reverse('series:detail', args=[id]), permanent=True) series["stats"] = values for color in ["blue", "purple"]: for member in series[color]["members"]: sql = "" for i, value in enumerate(values): if i == 0: sql += "p.{0} {0}".format(value) else: sql += ", p.{0} {0}".format(value) cursor.execute("SELECT " + sql + ", c.name name, c.id id " "FROM plays p, champions c WHERE p.seriesID = %s " "AND p.matchNumber = %s AND p.player = %s AND c.id = p.championID", [match["seriesID"], match_number, member]) result = utils.dictfetchone(cursor) match_details[color][member] = {"champion": { "name": result["name"], "id": result["id"] }} if len(values) == 1: match_details[color][member]['stat'] = result[value] else: for value in values: match_details[color][member][value] = result[value] series["matches"].append(match_details) series["available_stats"] = helpers.STATISTICS return render(request, "series/detail.html", {"data": series})
def playdetail(pname): with connection.cursor() as cursor: cursor.execute("SELECT name " "FROM players " "WHERE name = %s", [pname]) player = cursor.fetchall() cursor.execute( "SELECT AVG(ps.kills) AS avgk, AVG(ps.deaths) AS avgd, AVG(ps.assists) AS avga " "FROM players p, plays ps " "WHERE p.name = %s AND p.name = ps.player ", [pname]) avgkda = cursor.fetchall() cursor.execute( "SELECT MAX(ps.kills) AS maxk, MAX(ps.deaths) AS maxd, MAX(ps.assists) AS maxa " "FROM players p, plays ps " "WHERE p.name = %s AND p.name = ps.player ", [pname]) maxkda = cursor.fetchall() cursor.execute( "SELECT player, role, MAX(rolecount), avgw, avgg, avgwd, avgcs, avgtJungle, avgeJungle, avgdmg " "FROM " "(SELECT player, role, COUNT(*) AS rolecount, AVG(wardsPlaced) AS avgw, AVG(gold) AS avgg,AVG(wardsDestroyed) AS avgwd,AVG(cs) AS avgcs,AVG(teamJungleMinions) AS avgtJungle,AVG(enemyJungleMinions) AS avgeJungle,AVG(damageDealt) AS avgdmg " "FROM plays " "GROUP BY player, role)" "WHERE player = %s " "GROUP BY player", [pname]) role = utils.dictfetchall(cursor) cursor.execute( "SELECT player, role, MIN(rolecount) " "FROM " "(SELECT player, role, COUNT(*) AS rolecount, AVG(wardsPlaced) AS avgw, AVG(gold) AS avgg,AVG(wardsDestroyed) AS avgwd,AVG(cs) AS avgcs,AVG(teamJungleMinions) AS avgtJungle,AVG(enemyJungleMinions) AS avgeJungle,AVG(damageDealt) AS avgdmg " "FROM plays " "GROUP BY player, role)" "WHERE player = %s " "GROUP BY player", [pname]) minrole = utils.dictfetchall(cursor) cursor.execute( "SELECT DISTINCT seriesID " "FROM plays " "WHERE player = %s", [pname]) series = utils.dictfetchall(cursor) cursor.execute( "SELECT teamID " "FROM players p, registers r " "WHERE r.player = p.name AND p.name = %s ", [pname]) team = cursor.fetchone() if not player: return Context({ 'error': 'There is no such player with SummonerName: %s' % pname }) elif not role or not minrole: return Context({ 'error': 'The player: %s, has not played any game before' % pname }) else: rank = calcranking(avgkda[0][0], avgkda[0][1], avgkda[0][2], maxkda[0][0], maxkda[0][1], maxkda[0][2], role[0]['role'], role[0]['avgw'], role[0]['avgg'], role[0]['avgwd'], role[0]['avgcs'], role[0]['avgtJungle'], role[0]['avgeJungle'], role[0]['avgdmg']) context = { 'name': pname, 'averageK': avgkda[0][0], 'averageD': avgkda[0][1], 'averageA': avgkda[0][2], 'maxK': maxkda[0][0], 'maxD': maxkda[0][1], 'maxA': maxkda[0][2], 'role': role[0]['role'], 'avgw': role[0]['avgw'], 'avgg': role[0]['avgg'], 'avgwd': role[0]['avgwd'], 'avgcs': role[0]['avgcs'], 'avgtJungle': role[0]['avgtJungle'], 'avgeJungle': role[0]['avgeJungle'], 'avgdmg': role[0]['avgdmg'], 'minRole': minrole[0]['role'], 'rank': rank, 'team': team[0], 'series': series } return Context(context)