示例#1
0
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})
示例#2
0
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})
示例#3
0
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)
示例#5
0
    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)
示例#6
0
 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)
示例#7
0
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})
示例#8
0
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
    })
示例#9
0
    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)
示例#10
0
    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)
示例#11
0
    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)
示例#12
0
    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)
示例#13
0
    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)
示例#14
0
    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)
示例#15
0
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})
示例#16
0
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)