Exemplo n.º 1
0
def tournament_side_names(tournament, name_type):
    side_names = [
        get_position_name(tournament, 'aff', name_type),
        get_position_name(tournament, 'neg', name_type)
    ]
    print(side_names)
    return side_names
Exemplo n.º 2
0
    def add_sides_count(self, teams, round, team_type):
        sides_counts = get_side_counts(teams, DebateTeam.POSITION_AFFIRMATIVE,
                                       round.seq)

        # Translators: e.g. team would be "negative team" or "affirmative team",
        # affirmative would be "affirmative team".
        side_label = _("Number of times this %(team)s has been the "
                       "%(affirmative)s before") % {
                           'team': get_position_name(self.tournament,
                                                     team_type, "team"),
                           'affirmative': aff_team(self.tournament),
                       }

        # Translators: Abbreviation for "affirmative number of affirmatives".
        # side_abbr is e.g. "A"/"N"/"G"/"O" for affirmative/negative/government/opposition,
        # aff_abbr is "Aff"/"Gov" for affirmative/government, so "NAff" is the number of times
        # the negative team has affirmed, or equivalently "OGov".
        side_key = _("%(side_abbr)s%(aff_abbr)ss") % {
            'side_abbr': get_position_name(self.tournament, team_type,
                                           'initial'),
            'aff_abbr': aff_abbr(self.tournament),
        }

        sides_header = {
            'key': side_key,
            'tooltip': side_label,
        }
        sides_data = [{
            'text': str(sides_counts[t.id]),
        } for t in teams]
        self.add_column(sides_header, sides_data)
Exemplo n.º 3
0
    def _standings_headers(self, info_list, side=None):
        side_abbr = get_position_name(self.tournament, side,
                                      'initial') if side else ''
        side_possessive = get_position_name(self.tournament, side,
                                            'possessive') if side else ''
        headers = []
        for info in info_list:
            # Translators: Put these in the right order,
            # e.g. side_abbr = "A", metric_abbr = "TSS" -> "ATSS" for "Affirmative's Total Speaker Score"
            key = _("%(side_abbr)s%(metric_abbr)s") % {
                'side_abbr': side_abbr,
                'metric_abbr': info['abbr'],
            }

            # Translators: Put these in the right order,
            # e.g. side_possessive = "affirmative's", metric_name = "total speaker score" -> "affirmative's total speaker score"
            tooltip = _("%(side_possessive)s %(metric_name)s") % {
                'side_possessive': side_possessive,
                'metric_name': info['name'],
            }
            tooltip = tooltip.strip().capitalize()
            header = {
                'key': key,
                'tooltip': tooltip,
                'glyphicon': info['glyphicon']
            }
            headers.append(header)
        return headers
Exemplo n.º 4
0
 def get_position_name(self, tournament=None):
     """Should be used instead of get_position_display() on views.
     `tournament` can be passed in if known, for performance."""
     if self.position == DebateTeam.POSITION_AFFIRMATIVE:
         return get_position_name(tournament or self.debate.round.tournament, 'aff', 'full')
     elif self.position == DebateTeam.POSITION_NEGATIVE:
         return get_position_name(tournament or self.debate.round.tournament, 'neg', 'full')
     else:
         return self.get_position_display()
Exemplo n.º 5
0
    def get_context_data(self, **kwargs):
        motions = self.get_round().motion_set.order_by('seq')
        tournament = self.get_tournament()

        kwargs['motions'] = [{'seq': m.seq, 'text': m.text} for m in motions]
        kwargs['positions'] = [get_position_name(tournament, "aff", "full").title(),
                               get_position_name(tournament, "neg", "full").title()]
        kwargs['ballots'] = []

        draw = self.get_round().debate_set_with_prefetches(ordering=('venue__name',))
        show_emoji = tournament.pref('show_emoji')

        for debate in draw:
            debate_info = {
                'room': debate.venue.display_name if debate.venue else '',
                'aff': debate.aff_team.short_name,
                'affEmoji': debate.aff_team.emoji if debate.aff_team.emoji and show_emoji else '',
                'affSpeakers': [s.name for s in debate.aff_team.speakers],
                'neg': debate.neg_team.short_name,
                'negEmoji': debate.neg_team.emoji if debate.neg_team.emoji and show_emoji else '',
                'negSpeakers': [s.name for s in debate.neg_team.speakers],
                'panel': []
            }
            for adj, position in debate.adjudicators.with_positions():
                debate_info['panel'].append({
                    'name': adj.name,
                    'institution': adj.institution.code,
                    'position': position
                })

            if len(debate_info['panel']) is 0:
                ballot_data = {
                    'author': "_______________________________________________",
                    'authorInstitution': "",
                    'authorPosition': "",
                }
                ballot_data.update(debate_info)  # Extend with debateInfo keys
                kwargs['ballots'].append(ballot_data)
            else:
                for adj in (a for a in debate_info['panel'] if a['position'] != "t"):
                    ballot_data = {
                        'author': adj['name'],
                        'authorInstitution': adj['institution'],
                        'authorPosition': adj['position'],
                    }
                    ballot_data.update(debate_info)  # Extend with debateInfo keys
                    kwargs['ballots'].append(ballot_data)

        return super().get_context_data(**kwargs)
Exemplo n.º 6
0
 def _add_break_rank_columns(self, table, draw, category):
     tournament = self.get_tournament()
     for side in ('aff', 'neg'):
         # Translators: e.g. possessive might be "affirmative's" to get "affirmative's break rank"
         tooltip = _("%(possessive)s break rank" % {
             'possessive':
             get_position_name(tournament, side, 'possessive')
         })
         # Translators: e.g. initial might be "A" for affirmative to get "ABR"
         tooltip = tooltip.capitalize()
         key = _("%(initial)sBR") % {
             'initial': get_position_name(tournament, side, 'initial')
         }
         table.add_column({
             'tooltip': tooltip,
             'key': key
         }, [
             d.get_team(side).break_rank_for_category(category)
             for d in draw
         ])
Exemplo n.º 7
0
    def get_table(self):
        tournament = self.get_tournament()
        teams = tournament.team_set.all()
        rounds = tournament.prelim_rounds()

        tpas = dict()
        for tpa in TeamPositionAllocation.objects.filter(round__in=rounds):
            try:
                tpas[(tpa.team.id, tpa.round.seq)] = get_position_name(
                    tournament, self.TPA_MAP[tpa.position], 'abbr')
            except ValueError:
                pass

        table = TabbycatTableBuilder(view=self)
        table.add_team_columns(teams)

        headers = [round.abbreviation for round in rounds]
        data = [[tpas.get((team.id, round.id), "—") for round in rounds]
                for team in teams]
        table.add_columns(headers, data)

        return table