def get_context_data(self, **kwargs): context = super(ArenaClientView, self).get_context_data(**kwargs) context['assigned_matches_list'] = Match.objects.filter(assigned_to=self.object, result__isnull=True).prefetch_related( Prefetch('matchparticipation_set', MatchParticipation.objects.all().prefetch_related('bot'), to_attr='participants')) results = Result.objects.filter(match__assigned_to=self.object).order_by('-created').prefetch_related( Prefetch('winner'), Prefetch('match__matchparticipation_set', MatchParticipation.objects.all().prefetch_related('bot'), to_attr='participants')) context['ac_match_count_1h'] = Result.objects.filter(match__assigned_to=self.object, created__gte=timezone.now() - timedelta(hours=1)).count() context['ac_match_count_24h'] = Result.objects.filter(match__assigned_to=self.object, created__gte=timezone.now() - timedelta(hours=24)).count() context['ac_match_count'] = results.count() # paginate the results page = self.request.GET.get('page', 1) paginator = Paginator(results, 30) try: results = paginator.page(page) except PageNotAnInteger: results = paginator.page(1) except EmptyPage: results = paginator.page(paginator.num_pages) context['result_list'] = results context['results_page_range'] = restrict_page_range(paginator.num_pages, results.number) return context
def get_context_data(self, **kwargs): context = super(BotDetail, self).get_context_data(**kwargs) results = RelativeResult.objects.select_related('match', 'me__bot', 'opponent__bot').defer("me__bot__bot_data")\ .filter(me__bot=self.object).order_by('-created') # paginate the results page = self.request.GET.get('page', 1) paginator = Paginator(results, 30) try: results = paginator.page(page) except PageNotAnInteger: results = paginator.page(1) except EmptyPage: results = paginator.page(paginator.num_pages) context['bot_trophies'] = Trophy.objects.filter(bot=self.object) context['rankings'] = self.object.seasonparticipation_set.all().order_by('-id') context['match_participations'] = MatchParticipation.objects.only("match")\ .filter(Q(match__requested_by__isnull=False)|Q(match__assigned_to__isnull=False), bot=self.object, match__result__isnull=True)\ .order_by(F('match__started').asc(nulls_last=True), F('match__id').asc())\ .prefetch_related( Prefetch('match__map'), Prefetch('match__matchparticipation_set', MatchParticipation.objects.all().prefetch_related('bot'), to_attr='participants')) context['result_list'] = results context['results_page_range'] = restrict_page_range(paginator.num_pages, results.number) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) # add the page ranges page_obj = context['page_obj'] context['page_range'] = restrict_page_range(page_obj.paginator.num_pages, page_obj.number) return context
def get_context_data(self, **kwargs): context = super(BotDetail, self).get_context_data(**kwargs) results = RelativeResult.objects.select_related('match', 'me__bot', 'opponent__bot').defer("me__bot__bot_data")\ .filter(me__bot=self.object).order_by('-created') # paginate the results page = self.request.GET.get('page', 1) paginator = Paginator(results, 30) try: results = paginator.page(page) except PageNotAnInteger: results = paginator.page(1) except EmptyPage: results = paginator.page(paginator.num_pages) context['bot_trophies'] = Trophy.objects.filter(bot=self.object) context['rankings'] = self.object.seasonparticipation_set.all().order_by('-id') context['result_list'] = results context['results_page_range'] = restrict_page_range(paginator.num_pages, results.number) return context