コード例 #1
0
ファイル: tests.py プロジェクト: pragacz/oioioi
 def test_simple_invalidate(self):
     contest = Contest.objects.get()
     contest.controller_name = \
         'oioioi.rankings.tests.MockRankingContestController'
     contest.save()
     ranking, _ = Ranking.objects.get_or_create(contest=contest, key='key',
         needs_recalculation=False)
     ranking.save()
     self.assertTrue(ranking.is_up_to_date())
     recalc = choose_for_recalculation()
     self.assertIsNone(recalc)
     Ranking.invalidate_contest(contest)
     ranking.refresh_from_db()
     self.assertFalse(ranking.is_up_to_date())
     recalc = choose_for_recalculation()
     self.assertIsNotNone(recalc)
コード例 #2
0
 def test_simple_invalidate(self):
     contest = Contest.objects.get()
     contest.controller_name = \
         'oioioi.rankings.tests.MockRankingContestController'
     contest.save()
     ranking, _ = Ranking.objects.get_or_create(contest=contest, key='key',
         needs_recalculation=False)
     ranking.save()
     self.assertTrue(ranking.is_up_to_date())
     recalc = choose_for_recalculation()
     self.assertIsNone(recalc)
     Ranking.invalidate_contest(contest)
     ranking.refresh_from_db()
     self.assertFalse(ranking.is_up_to_date())
     recalc = choose_for_recalculation()
     self.assertIsNotNone(recalc)
コード例 #3
0
 def update_user_results(self, user, problem_instance, *args, **kwargs):
     super(RankingMixinForContestController, self) \
         .update_user_results(user, problem_instance, *args, **kwargs)
     Ranking.invalidate_contest(problem_instance.round.contest)
コード例 #4
0
ファイル: controllers.py プロジェクト: cytadela8/oioioi
def update_rankings_with_user_callback(sender, **kwargs):
    user = sender.instance
    contests = Contest.objects.filter(probleminstance__submission__user=user)
    for contest in contests:
        Ranking.invalidate_contest(contest)
コード例 #5
0
def ranking_invalidate_view(request, key):
    rcontroller = request.contest.controller.ranking_controller()
    full_key = rcontroller.get_full_key(request, key)
    ranking = Ranking.objects.filter(key=full_key)
    Ranking.invalidate_queryset(ranking)
    return redirect('ranking', key=key)
コード例 #6
0
 def update_user_results(self, user, problem_instance, *args, **kwargs):
     super(RankingMixinForContestController, self) \
         .update_user_results(user, problem_instance, *args, **kwargs)
     Ranking.invalidate_contest(problem_instance.round.contest)
コード例 #7
0
ファイル: controllers.py プロジェクト: sio2project/oioioi
def update_rankings_with_user_callback(sender, **kwargs):
    user = sender.instance
    contests = Contest.objects.filter(probleminstance__submission__user=user)
    for contest in contests:
        Ranking.invalidate_contest(contest)