def get_page(request, items, count_per_page): paginator = Paginator(items, count_per_page) page = request.GET.get('page') try: paginator.object_list = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. paginator.object_list = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. paginator.object_list = paginator.page(paginator.num_pages) return paginator
def getStatusesPage(request,sTemplate,sFunction,sParams, myurl="/", page=1, count=None): ''' returns a paginated thing of statuses minus any tweets from a blocked user ''' if count: statuses = sFunction(sParams, count=count) else: statuses = sFunction(sParams) try: statuses = Paginator(statuses,20).page(page) except (EmptyPage,InvalidPage): statuses = Paginator(statuses,20).page(1) blockedusers = {} for bu in TwitterUser.objects.filter(username=hash(request.session['u']))[0].block_set.all(): blockedusers[bu.username] = True rubbishbin = [] for s in statuses.object_list: if blockedusers.get(s.user.screen_name,False): rubbishbin.append(s) for trash in rubbishbin: statuses.object_list.remove(trash) statuses.object_list = procstatuses(statuses.object_list) return render_to_response(sTemplate, locals(), RequestContext(request))
def get_context_data(self, **kwargs): context = super(ForumPostDetailView, self).get_context_data(**kwargs) thread_pk = self.kwargs['pk'] thread = MainTopic.objects.filter(id=thread_pk).first() comments = Comment.objects.all().filter(forum=thread.forum, thread_id=thread.id) replies = Reply.objects.all().filter(forum=thread.forum, thread_id=thread.id) comments = list(comments.all()) replies = list(replies.all()) messages_thread = sorted(comments + replies, key=attrgetter('datetime')) paginator = Paginator(messages_thread, 10) page = self.request.GET.get('page') posts_list = paginator.object_list for post in posts_list: post.page_number = page paginator.object_list = posts_list messages_thread = paginator.get_page(page) context = dict(forum_name=thread.forum, post=thread, messages_thread=messages_thread) return context
def get(self, request): if not request.user.is_authenticated(): return HttpResponseRedirect('/?login') name = request.GET.get('name', '') if name: site_user = SiteInstanceResource()._get(sitename=name) else: site_user = SiteInstanceResource()._get(user=request.user) new_site_user = [] for key in reversed(site_user): new_site_user.append(key) page_num = request.GET.get('page', '1') paginator = Paginator([], 6) paginator.object_list = new_site_user try: pageno = paginator.page(page_num) except: pageno = '' if request.is_ajax(): self.template_name = 'index_ajax.html' context = {'site_user': site_user, 'pageno': pageno} return self.render_to_response(context) site_count = SiteInstanceResource()._get(user=request.user).count() testsuc_list = [] testfail_list = [] mailsent_list = [] for items in site_user: testsuc_list.append(items.testsuc) testfail_list.append(items.testfail) mailsent_list.append(items.mailsent) context = { 'pageno': pageno, 'site_user': site_user, 'site_count': site_count, 'testsuc': sum(testsuc_list), 'testfail': sum(testfail_list), 'mailsent': sum(mailsent_list), 'request_path': request.path } return self.render_to_response(context)
def history_view(self, request, object_id, extra_context=None): model = self.model obj = self.get_object(request, unquote(object_id)) if obj is None: return self._get_obj_does_not_exist_redirect( request, model._meta, object_id) if not self.has_change_permission(request, obj): raise PermissionDenied opts = model._meta app_label = opts.app_label action_list = get_audit_qs(model._meta.model_name, object_id) page = request.GET.get('page', 1) page_obj = Paginator(action_list, self.list_per_page).page(page) page_obj.object_list = page_obj.object_list. \ values('transacted_on', 'transacted_by', 'transaction_type', 'field_name', 'current_val', 'current_val_type', 'previous_val', 'previous_val_type', 'xaction__display_text' ) context = dict( self.admin_site.each_context(request), title=_('Change History: %s' % force_text(obj)), action_list=page_obj, module_name=capfirst(force_text(opts.verbose_name_plural)), object=obj, opts=opts, preserved_filters=self.get_preserved_filters(request), ) context.update(extra_context or {}) request.current_app = self.admin_site.name return TemplateResponse(request, 'audit_trail/history.html', context)
def fetch_contents( context, page=1, page_size=20, order_by=None, public=True, deleted=False, clusters=None, includeTypes=None, excludeTypes=None, includeTags=None, excludeTags=None, # fetch decrypt keys from request decrypt=True, # provide default decrypt keys default_decryptkeys=None, authorization=None, ): result = get_cached_result(context.request, authset=authorization)["Content"].copy() if deleted is not None: result["objects"] = result["objects"].filter( markForDestruction__isnull=not deleted) if public is not None: # should only include public contents with public cluster # if no clusters are specified (e.g. root query) if public is True: if not clusters: result["objects"] = result["objects"].filter( state__in=constants.public_states, cluster__public=True) else: result["objects"] = result["objects"].filter( state__in=constants.public_states) else: result["objects"] = result["objects"].exclude( state__in=constants.public_states) else: # only private or public with cluster public result["objects"] = result["objects"].filter( ~Q(state__in=constants.public_states) | Q(cluster__public=True)) if clusters: result["objects"] = fetch_by_id( result["objects"], clusters.split(",") if isinstance(clusters, str) else clusters, prefix="cluster__", limit_ids=None, ) if order_by: result["objects"] = result["objects"].order_by(*order_by) result["objects"] = _fetch_contents( result["objects"], result["actions"], includeTypes=includeTypes.split(",") if isinstance(includeTypes, str) else includeTypes, excludeTypes=excludeTypes.split(",") if isinstance(excludeTypes, str) else excludeTypes, includeTags=includeTags.split(",") if isinstance(includeTags, str) else includeTags, excludeTags=excludeTags.split(",") if isinstance(excludeTags, str) else excludeTags, ) if decrypt or default_decryptkeys: decryptset = set() if decrypt: decryptset.update( context.request.headers.get("X-Key", "").replace(" ", "").split(",")) decryptset.update(context.request.GET.getlist("key")) if default_decryptkeys: decryptset.update( default_decryptkeys.split(",") if isinstance( default_decryptkeys, str) else default_decryptkeys) def gen(queryset): for content in iter_decrypt_contents( result, queryset=queryset, decryptset=decryptset, ): yield content page = Paginator(result["objects"], page_size).get_page(page) page.object_list = list( gen((result["objects"].filter( pk__in=Subquery(page.object_list.values("pk")))))) return page else: return Paginator(result["objects"], page_size).get_page(page)