Beispiel #1
0
 def results_with_ranking(self):
     if self.frozen_results is not None:
         return self.frozen_results
     results = self.results()
     results.sort(key=itemgetter('total'), reverse=True)
     results = utils.rank_results(results)
     return results
Beispiel #2
0
 def results(self, request, pk=None):
     series = self.get_object()
     if series.frozen_results is not None:
         return series.frozen_results
     results = self.series_results(series)
     results.sort(key=itemgetter('total'), reverse=True)
     results = utils.rank_results(results)
     return Response(results, status=status.HTTP_201_CREATED)
Beispiel #3
0
    def semester_results(semester):
        if semester.frozen_results is not None:
            return semester.frozen_results
        results = []
        for registration in semester.eventregistration_set.all():
            results.append(generate_result_row(registration, semester))

        results.sort(key=itemgetter('total'), reverse=True)
        results = utils.rank_results(results)
        return results
Beispiel #4
0
 def results(self, request, pk=None):
     series = self.get_object()
     if series.frozen_results is not None:
         return series.frozen_results
     results = []
     for registration in series.semester.eventregistration_set.all():
         results.append(
             generate_result_row(registration, only_series=series))
     results.sort(key=itemgetter('total'), reverse=True)
     results = utils.rank_results(results)
     return Response(results, status=status.HTTP_200_OK)
Beispiel #5
0
 def results_with_ranking(self, show_only_last_series_points=False):
     current_results = None
     curent_number_of_problems = 0
     for series in self.series_set.all():
         series_result = series.results()
         count = series.num_problems
         current_results = self._merge_results(current_results,
                                               series_result,
                                               curent_number_of_problems,
                                               count)
         curent_number_of_problems += count
     current_results.sort(key=itemgetter('total'), reverse=True)
     current_results = utils.rank_results(current_results)
     return current_results
Beispiel #6
0
 def semester_results(semester):
     if semester.frozen_results is not None:
         return semester.frozen_results
     current_results = None
     curent_number_of_problems = 0
     for series in semester.series_set.all():
         series_result = SeriesViewSet.series_results(series)
         count = series.num_problems
         current_results = utils.merge_results(
             current_results, series_result, curent_number_of_problems, count)
         curent_number_of_problems += count
     current_results.sort(key=itemgetter('total'), reverse=True)
     current_results = utils.rank_results(current_results)
     return current_results
Beispiel #7
0
 def results_with_ranking(self):
     if self.frozen_results is not None:
         return self.frozen_results
     current_results = None
     curent_number_of_problems = 0
     for series in self.series_set.all():
         series_result = series.results()
         count = series.num_problems
         current_results = self._merge_results(current_results,
                                               series_result,
                                               curent_number_of_problems,
                                               count)
         curent_number_of_problems += count
     current_results.sort(key=itemgetter('total'), reverse=True)
     current_results = utils.rank_results(current_results)
     return current_results
Beispiel #8
0
 def results_with_ranking(self):
     results = self.results()
     results.sort(key=itemgetter('total'), reverse=True)
     results = utils.rank_results(results)
     return results
Beispiel #9
0
 def results_with_ranking(self):
     results = self.results()
     results.sort(key=lambda x: x['total'], reverse=True)
     results = utils.rank_results(results)
     return results