Esempio n. 1
0
    def get_table_by_team(self):
        round = self.get_round()
        tournament = self.get_tournament()
        teamscores = TeamScore.objects.filter(debate_team__debate__round=round,
                ballot_submission__confirmed=True).prefetch_related(
                'debate_team__team__speaker_set', 'debate_team__team__institution',
                'debate_team__debate__debateadjudicator_set__adjudicator')
        debates = [ts.debate_team.debate for ts in teamscores]

        populate_opponents([ts.debate_team for ts in teamscores])

        for pos in [DebateTeam.POSITION_AFFIRMATIVE, DebateTeam.POSITION_NEGATIVE]:
            debates_for_pos = [ts.debate_team.debate for ts in teamscores if ts.debate_team.position == pos]
            populate_confirmed_ballots(debates_for_pos, motions=True)

        table = TabbycatTableBuilder(view=self, sort_key="Team")
        table.add_team_columns([ts.debate_team.team for ts in teamscores])
        table.add_debate_result_by_team_columns(teamscores)
        table.add_debate_ballot_link_column(debates)
        table.add_debate_adjudicators_column(debates, show_splits=True)
        if tournament.pref('show_motions_in_results'):
            table.add_motion_column([debate.confirmed_ballot.motion
                if debate.confirmed_ballot else None for debate in debates])

        return table
Esempio n. 2
0
    def get_table_by_team(self):
        round = self.get_round()
        tournament = self.get_tournament()
        teamscores = TeamScore.objects.filter(debate_team__debate__round=round,
                ballot_submission__confirmed=True).prefetch_related(
                'debate_team__team__speaker_set', 'debate_team__team__institution',
                'debate_team__debate__debateadjudicator_set__adjudicator')
        debates = [ts.debate_team.debate for ts in teamscores]

        populate_opponents([ts.debate_team for ts in teamscores])

        for pos in [DebateTeam.POSITION_AFFIRMATIVE, DebateTeam.POSITION_NEGATIVE]:
            debates_for_pos = [ts.debate_team.debate for ts in teamscores if ts.debate_team.position == pos]
            populate_confirmed_ballots(debates_for_pos, motions=True)

        table = TabbycatTableBuilder(view=self, sort_key="Team")
        table.add_team_columns([ts.debate_team.team for ts in teamscores])
        table.add_debate_result_by_team_columns(teamscores)
        table.add_debate_ballot_link_column(debates)
        table.add_debate_adjudicators_column(debates, show_splits=True)
        if tournament.pref('show_motions_in_results'):
            table.add_motion_column([debate.confirmed_ballot.motion
                if debate.confirmed_ballot else None for debate in debates])

        return table
Esempio n. 3
0
    def get_table(self):
        """On adjudicator record pages, the table is the previous debates table."""
        tournament = self.get_tournament()
        debateadjs = DebateAdjudicator.objects.filter(adjudicator=self.object,
                debate__round__seq__lt=tournament.current_round.seq,
                debate__round__draw_status=Round.STATUS_RELEASED,
                debate__round__silent=False).select_related(
                'debate', 'debate__round').prefetch_related(
                'debate__debateadjudicator_set', 'debate__debateadjudicator_set__adjudicator')
        debates = [da.debate for da in debateadjs]
        populate_teams(debates)
        populate_wins(debates)
        populate_confirmed_ballots(debates, motions=True, ballotsets=True)

        table = TabbycatTableBuilder(view=self, title="Previous Rounds", sort_key="Round")
        table.add_round_column([debate.round for debate in debates])
        table.add_debate_results_columns(debates)
        table.add_debate_adjudicators_column(debates, show_splits=True, highlight_adj=self.object)

        if self.admin or tournament.pref('public_motions'):
            table.add_motion_column([debate.confirmed_ballot.motion
                if debate.confirmed_ballot else None for debate in debates])

        table.add_debate_ballot_link_column(debates)
        return table
Esempio n. 4
0
    def get_table(self):
        """On team record pages, the table is the results table."""
        tournament = self.get_tournament()
        teamscores = TeamScore.objects.filter(debate_team__team=self.object,
                ballot_submission__confirmed=True,
                debate_team__debate__round__seq__lt=tournament.current_round.seq,
                debate_team__debate__round__draw_status=Round.STATUS_RELEASED,
                debate_team__debate__round__silent=False).select_related(
                'debate_team__debate', 'debate_team__debate__round').prefetch_related(
                'debate_team__debate__debateadjudicator_set__adjudicator')
        debates = [ts.debate_team.debate for ts in teamscores]
        populate_opponents([ts.debate_team for ts in teamscores])
        populate_confirmed_ballots(debates, motions=True, ballotsets=True)

        table = TabbycatTableBuilder(view=self, title="Results", sort_key="Round")
        table.add_round_column([debate.round for debate in debates])
        table.add_debate_result_by_team_columns(teamscores)
        table.add_debate_adjudicators_column(debates, show_splits=True)

        if self.admin or tournament.pref('public_motions'):
            table.add_motion_column([debate.confirmed_ballot.motion
                if debate.confirmed_ballot else None for debate in debates])

        table.add_debate_ballot_link_column(debates)

        return table
Esempio n. 5
0
    def get_table(self):
        motions = motion_statistics.statistics(round=self.get_round())
        table = TabbycatTableBuilder(view=self, sort_key="Order")

        table.add_round_column([motion.round for motion in motions])
        table.add_motion_column(motions, show_order=True)
        table.add_column("Selected", [motion.chosen_in for motion in motions])
        if self.get_tournament().pref('motion_vetoes_enabled'):
            table.add_column("Aff Vetoes", [motion.aff_vetoes for motion in motions])
            table.add_column("Neg Vetoes", [motion.neg_vetoes for motion in motions])
        table.add_column("Aff Wins", [motion.aff_wins for motion in motions])
        table.add_column("Neg Wins", [motion.neg_wins for motion in motions])
        return table
Esempio n. 6
0
    def get_table_by_debate(self):
        round = self.get_round()
        tournament = self.get_tournament()
        debates = round.debate_set_with_prefetches(ballotsets=True, wins=True)

        table = TabbycatTableBuilder(view=self, sort_key="Venue")
        table.add_debate_venue_columns(debates)
        table.add_debate_results_columns(debates)
        table.add_debate_ballot_link_column(debates)
        table.add_debate_adjudicators_column(debates, show_splits=True)
        if tournament.pref('show_motions_in_results'):
            table.add_motion_column([d.confirmed_ballot.motion
                if d.confirmed_ballot else None for d in debates])

        return table
Esempio n. 7
0
    def get_table_by_debate(self):
        round = self.get_round()
        tournament = self.get_tournament()
        debates = round.debate_set_with_prefetches(ballotsets=True, wins=True)

        table = TabbycatTableBuilder(view=self, sort_key="Venue")
        table.add_debate_venue_columns(debates)
        table.add_debate_results_columns(debates)
        table.add_debate_ballot_link_column(debates)
        table.add_debate_adjudicators_column(debates, show_splits=True)
        if tournament.pref('show_motions_in_results'):
            table.add_motion_column([d.confirmed_ballot.motion
                if d.confirmed_ballot else None for d in debates])

        return table
Esempio n. 8
0
    def get_motions_table(self, t, rounds):
        motions = motion_statistics.statistics(tournament=t, rounds=rounds)
        table = TabbycatTableBuilder(view=self, sort_key="Order")

        table.add_round_column([motion.round for motion in motions])
        table.add_motion_column(motions, show_order=True)
        table.add_column("Selected", [motion.chosen_in for motion in motions])
        if self.get_tournament().pref('motion_vetoes_enabled'):
            table.add_column("Aff Vetoes",
                             [motion.aff_vetoes for motion in motions])
            table.add_column("Neg Vetoes",
                             [motion.neg_vetoes for motion in motions])
        table.add_column("Aff Wins", [motion.aff_wins for motion in motions])
        table.add_column("Neg Wins", [motion.neg_wins for motion in motions])
        return table
Esempio n. 9
0
    def get_table(self):
        """On adjudicator record pages, the table is the previous debates table."""
        tournament = self.get_tournament()
        debateadjs = DebateAdjudicator.objects.filter(
            adjudicator=self.object,
            debate__round__draw_status=Round.STATUS_RELEASED).select_related(
                'debate__round').prefetch_related(
                    Prefetch('debate__debateadjudicator_set',
                             queryset=DebateAdjudicator.objects.select_related(
                                 'adjudicator__institution')),
                    'debate__debateteam_set__team__speaker_set')
        if not tournament.pref('all_results_released'):
            debateadjs = debateadjs.filter(
                debate__round__silent=False,
                debate__round__seq__lt=tournament.current_round.seq,
            )
        debates = [da.debate for da in debateadjs]
        populate_wins(debates)
        populate_confirmed_ballots(debates, motions=True, ballotsets=True)

        table = TabbycatTableBuilder(view=self,
                                     title="Previous Rounds",
                                     sort_key="Round")
        table.add_round_column([debate.round for debate in debates])
        table.add_debate_results_columns(debates)
        table.add_debate_adjudicators_column(debates,
                                             show_splits=True,
                                             highlight_adj=self.object)

        if self.admin or tournament.pref('public_motions'):
            table.add_motion_column([
                debate.confirmed_ballot.motion
                if debate.confirmed_ballot else None for debate in debates
            ])

        table.add_debate_ballot_link_column(debates)
        return table
Esempio n. 10
0
    def get_table(self):
        """On team record pages, the table is the results table."""
        tournament = self.get_tournament()
        teamscores = TeamScore.objects.filter(
            debate_team__team=self.object,
            ballot_submission__confirmed=True,
            debate_team__debate__round__draw_status=Round.STATUS_RELEASED
        ).select_related('debate_team__debate__round').prefetch_related(
            Prefetch('debate_team__debate__debateadjudicator_set',
                     queryset=DebateAdjudicator.objects.select_related(
                         'adjudicator__institution')),
            'debate_team__debate__debateteam_set')
        if not tournament.pref('all_results_released'):
            teamscores = teamscores.filter(
                debate_team__debate__round__silent=False,
                debate_team__debate__round__seq__lt=tournament.current_round.
                seq)
        debates = [ts.debate_team.debate for ts in teamscores]
        populate_opponents([ts.debate_team for ts in teamscores])
        populate_confirmed_ballots(debates, motions=True, ballotsets=True)

        table = TabbycatTableBuilder(view=self,
                                     title="Results",
                                     sort_key="Round")
        table.add_round_column([debate.round for debate in debates])
        table.add_debate_result_by_team_columns(teamscores)
        table.add_debate_adjudicators_column(debates, show_splits=True)

        if self.admin or tournament.pref('public_motions'):
            table.add_motion_column([
                debate.confirmed_ballot.motion
                if debate.confirmed_ballot else None for debate in debates
            ])

        table.add_debate_ballot_link_column(debates)

        return table