def view_results(request, round_id, tag_key=DEFAULT_TAG_KEY): """Displays results for specified round_ids and category_id""" round = get_object_or_404( Round.objects.visible( request.user).select_related("semester__competition"). prefetch_related("semester__competition__required_user_props"), pk=round_id, ) scoreboards = get_scoreboards_for_rounds([round], request) context = { "round": round, "scoreboards": scoreboards, "single_round": scoreboards[0].scoreboard.is_single_round, "selected_tag": tag_key, "show_staff": is_true(request.GET.get("show_staff", False)), "is_susi_outdoor": round.semester.competition.id == SUSI_COMPETITION_ID and round.number == SUSI_OUTDOOR_ROUND_NUMBER, } return render(request, "trojsten/results/view_results.html", context)
def ajax_progressbar(request, round_id): round = get_object_or_404(Round.objects.visible(request.user), pk=round_id) template_data = { "round": round, "results": is_true(request.GET.get("results", False)) } return render(request, "trojsten/contests/ajax/progress.html", template_data)
def ajax_progressbar(request, round_id): round = get_object_or_404(Round.objects.visible(request.user), pk=round_id) template_data = { 'round': round, 'results': is_true(request.GET.get('results', False)), } return render( request, 'trojsten/contests/ajax/progress.html', template_data, )
def switch_contest_participation(request): user = request.user try: competition = get_object_or_404(Competition, pk=int(request.POST.get("competition", None))) except (TypeError, ValueError): return HttpResponseBadRequest() ignored = is_true(request.POST.get("value", "false")) if ignored: user.ignored_competitions.add(competition) else: user.ignored_competitions.remove(competition) return HttpResponse(status=204)
def get_scoreboards_for_rounds(rounds, request): single_round = is_true(request.GET.get("single_round", False)) ResultTableObject = namedtuple( "ResultTableObject", ["scoreboard", "tag_name", "competition_ignored", "user_valid"]) return [ ResultTableObject( get_results(result_tag.key, round, single_round), result_tag.name, request.user.is_anonymous or request.user.is_competition_ignored(round.semester.competition), request.user.is_anonymous or request.user.is_valid_for_competition( round.semester.competition), ) for round, result_tags in zip(rounds, get_results_tags_for_rounds(rounds)) for result_tag in result_tags ]
def view_latest_results(request): """Displays results for latest rounds for each competition""" rounds = [ round for competition in Competition.objects.current_site_only() for round in competition.rules.get_actual_result_rounds(competition). select_related("semester__competition").prefetch_related( "semester__competition__required_user_props") ] scoreboards = get_scoreboards_for_rounds(rounds, request) context = { "selected_tag": scoreboards[0].scoreboard.tag if scoreboards else None, "scoreboards": scoreboards, "show_staff": is_true(request.GET.get("show_staff", False)), } return render(request, "trojsten/results/view_latest_results.html", context)
def view_results(request, round_id, tag_key=DEFAULT_TAG_KEY): """Displays results for specified round_ids and category_id """ round = get_object_or_404( Round.objects.visible(request.user) .select_related("semester__competition") .prefetch_related("semester__competition__required_user_props"), pk=round_id, ) scoreboards = get_scoreboards_for_rounds([round], request) context = { "round": round, "scoreboards": scoreboards, "selected_tag": tag_key, "show_staff": is_true(request.GET.get("show_staff", False)), } return render(request, "trojsten/results/view_results.html", context)
def get_scoreboards_for_rounds(rounds, request): single_round = is_true(request.GET.get('single_round', False)) ResultTableObject = namedtuple( 'ResultTableObject', ['scoreboard', 'tag_name', 'competition_ignored', 'user_valid'] ) return [ ResultTableObject( get_results(result_tag.key, round, single_round), result_tag.name, request.user.is_anonymous() or request.user.is_competition_ignored( round.semester.competition ), request.user.is_anonymous() or request.user.is_valid_for_competition( round.semester.competition ), ) for round, result_tags in zip(rounds, get_results_tags_for_rounds(rounds)) for result_tag in result_tags ]