Exemple #1
0
    def _make_raw_brackets_from_divisions(self):
        """Returns an OrderedDict mapping bracket names (normally numbers)
        to lists."""
        brackets = OrderedDict()
        teams = list(self.teams)
        for team in teams:
            # Converting from bracket's name to a float (so it can pretend to be a Bracket)
            division = float(team.division.name)
            if division in brackets:
                brackets[division].append(team)
            else:
                brackets[division] = [team]

        print "------"

        # Assigning bye teams as needed
        for bracket in brackets.itervalues():
            if len(bracket) % 2 != 0:
                from debate.models import Institution,Team
                bye_tournament = bracket[0].tournament
                bye_institution, created = Institution.objects.get_or_create(
                    name="Byes"
                )
                bye_reference = "Bye %s" % bracket[0].division
                bye_division = bracket[0].division
                bye_team = Team(
                    institution = bye_institution,
                    reference = bye_reference,
                    short_reference = "Bye",
                    tournament= bye_tournament,
                    type = "B",
                    use_institution_prefix = False,
                    division = bye_division,
                    cannot_break = True
                )
                bye_team.aff_count = 0
                bye_team.neg_count = 0
                bye_team.save()
                bracket.append(bye_team)
                print "\t Created a bye team for divison %s" % bracket[0].division

        # Assigning subranks - fixed based on alphabetical
        for bracket in brackets.itervalues():
            bracket.sort(key=lambda x: x.short_name, reverse=False)
            for i, team in enumerate(bracket):
                i += 1
                team.subrank = i

        return brackets