Example #1
0
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 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
Example #3
0
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))
Example #4
0
    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
Example #5
0
 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)
Example #6
0
    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)
Example #7
0
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)