Ejemplo n.º 1
0
class TeamStandingController:

    points_controller = None
    results_controller = None

    def __init__(self):
        self.points_controller = PointsController()
        self.results_controller = ResultsController()

    def team_standing_table_all_rounds(self):
        return self.team_standing_table(self.results_controller.max_round_with_results())

    def team_standing_table(self, max_round):
        rows = []
        teams = list(Team.objects.all())
        teams.sort(key=lambda team: (team.total_team_points, team.total_speaker_sum), reverse=True)
        for t in range(0, len(teams)):
            team = teams[t]
            if (team.total_speaker_sum == teams[t - 1].total_speaker_sum) and (
                team.total_team_points == teams[t - 1].total_team_points
            ):
                row = ["--", team]
            else:
                row = [t + 1, team]
            for r in range(1, max_round + 1):
                row.append(self.points_controller.team_points_for_team(team, r))
            row.append(team.total_speaker_sum)
            row.append(team.total_team_points)
            rows.append(row)
        return rows
Ejemplo n.º 2
0
    def get(self, request):

        team_standing_controller = TeamStandingController()
        results_controller = ResultsController()
        max_round = results_controller.max_round_with_results()

        template = loader.get_template('display/team_standing.html')
        context = RequestContext(request, {
            'table' : team_standing_controller.team_standing_table_all_rounds(),
            'max_round' : max_round,
            'all_rounds' : range(1, max_round+1)
        })
        return HttpResponse(template.render(context))