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()) })