コード例 #1
0
def create_new_result(request, league_slug):

    league = League.objects.get(slug=league_slug)
    success = False

    if request.method == 'POST':

        form = ResultForm(request.POST, league=league.id)

        if form.is_valid():

            victory_player = None
            loser_player = None

            new_result = form.save()

            is_tournament = False

            if new_result.mtype.id == 2:
                is_tournament = True

            changes = elo_adapted(new_result.challenging.ranking,
                                  new_result.rival.ranking,
                                  new_result.challenging_score,
                                  new_result.rival_score, is_tournament)

            if new_result.challenging_score > new_result.rival_score:
                victory_player = new_result.challenging
                loser_player = new_result.rival
            else:
                victory_player = new_result.rival
                loser_player = new_result.challenging

            new_result.challenging.ranking = new_result.challenging.ranking + changes[
                0]
            new_result.challenging.save()

            new_result.rival.ranking = new_result.rival.ranking + changes[1]
            new_result.rival.save()

            new_result.victory_player = victory_player
            new_result.loser_player = loser_player
            new_result.ranking_del_challenging = changes[0]
            new_result.ranking_del_rival = changes[1]
            new_result.save()

            victory_player.disabled = False
            victory_player.save()

            loser_player.disabled = False
            loser_player.save()

            success = True

    return JsonResponse({
        'success': success,
        'errors': dict(form.errors.items())
    })