Exemplo n.º 1
0
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)
Exemplo n.º 2
0
Arquivo: views.py Projeto: dodo42/web
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)
Exemplo n.º 3
0
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,
    )
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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
    ]
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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
    ]