Пример #1
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        ngo = kwargs.get("ngo", context.get("ngo"))

        if not ngo:
            return context
        donations_page = self.request.GET.get("donations_page")
        # Donations paginator.
        ngo_donations = ngo.get_funders()
        donations_paginator = paginator.Paginator(
            ngo_donations.order_by("-created"), DONATIONS_PER_PAGE)

        try:
            donations_page_obj = donations_paginator.page(donations_page)
        except (paginator.PageNotAnInteger, paginator.EmptyPage):
            donations_page_obj = donations_paginator.page(1)
        context["donations_page_obj"] = donations_page_obj

        report_item_page = self.request.GET.get("report_items_page")
        # Report items paginator.
        ngo_report_items = ngo.report_items.all()
        report_items_paginator = paginator.Paginator(
            ngo_report_items.order_by("-created"), DONATIONS_PER_PAGE)

        try:
            report_items_page_obj = report_items_paginator.page(
                report_item_page)
        except (paginator.PageNotAnInteger, paginator.EmptyPage):
            report_items_page_obj = report_items_paginator.page(1)
        context["report_items_page_obj"] = report_items_page_obj

        return context
Пример #2
0
def index(req):
    ctx = {
        'my_tools': [],
        'query': req.GET.get('q', ''),
    }
    if not req.user.is_anonymous():
        # TODO: do we need to paginate the user's tools too? Magnus has 60!
        ctx['my_tools'] = Tool.objects.filter(
            maintainer_ids__contains=req.user.ldap_dn).order_by('group_name')

    page = req.GET.get('p')
    if ctx['query'] == '':
        tool_list = Tool.objects.all()
    else:
        tool_list = Tool.objects.filter(group_name__icontains=ctx['query'])
    tool_list = tool_list.order_by('group_name')
    pager = paginator.Paginator(tool_list, 10)
    try:
        tools = pager.page(page)
    except paginator.PageNotAnInteger:
        tools = pager.page(1)
    except paginator.EmptyPage:
        tools = pager.page(pager.num_pages)
    ctx['all_tools'] = tools

    return shortcuts.render(req, 'tools/index.html', ctx)
Пример #3
0
def get_collection_response(conf,
                            querystring,
                            collection_serializer,
                            page_access_check=None):
    page = querystring.get("page")
    if page is None:
        data = collection_serializer.data
    else:
        if page_access_check and not page_access_check():
            raise exceptions.AuthenticationFailed(
                "You do not have access to this resource")
        try:
            page_number = int(page)
        except Exception:
            return response.Response({"page": ["Invalid page number"]},
                                     status=400)
        conf["page_size"] = preferences.get("federation__collection_page_size")
        p = paginator.Paginator(conf["items"], conf["page_size"])
        try:
            page = p.page(page_number)
            conf["page"] = page
            serializer = serializers.CollectionPageSerializer(conf)
            data = serializer.data
        except paginator.EmptyPage:
            return response.Response(status=404)

    return response.Response(data)
Пример #4
0
    def __process__(self):
        queryset = self._get_queryset()

        title = self.cleaned_data['title']
        message = self.cleaned_data['message']
        url = self.cleaned_data['url']

        icon_url = "https://www.portalgsti.com.br/static/images/favicon-96x96.png"
        icon_url = generate_url(icon_url, width=60, height=60)

        per_page = 25
        seconds = 0
        batch = 3
        paginated = paginator.Paginator(queryset, per_page)
        for index, page in enumerate(paginated.page_range):
            send_queryset = self._get_queryset()
            id_list = [item.id for item in paginated.page(page).object_list]
            send_queryset = send_queryset.filter(id__in=id_list)
            extra = {'click_action': url, "icon": icon_url}
            send_push_async.apply_async(
                args=[send_queryset, title, message, extra], countdown=seconds)
            if index % batch == 0:
                seconds += 1

        return queryset
Пример #5
0
def page_or_404(objects, page):
    try:
        return paginator.Paginator(objects, 50).page(page)
    except paginator.PageNotAnInteger:
        raise Http404
    except paginator.EmptyPage:
        raise Http404
Пример #6
0
    def get(self, request):
        # # 查询文章分类导航
        # cates = Category.objects.all()[:5]
        # # 热门推荐,根据推荐字典取R02
        # reco2_articals = Artical.objects.filter(recom__code='R02').order_by('-create_time')[:4]
        # # 所有标签
        # tags = Tag.objects.all()

        # 获取关键字
        keywords = request.GET.get('keywords', '')

        if keywords:
            search_articles = Artical.objects.filter(
                Q(title__icontains=keywords) | Q(body__icontains=keywords))
        else:
            search_articles = Artical.objects.order_by('-create_time')

        # 分页
        pn = paginator.Paginator(search_articles, 4)  # 实例化分页器对象
        page_num = request.GET.get('page')  # 获取当前页码
        try:
            page_list_obj = pn.page(page_num)  # 分页,返回数据列表
        except paginator.PageNotAnInteger:
            page_list_obj = pn.page(1)
        except paginator.InvalidPage:
            page_list_obj = pn.page(pn.num_pages)
        context = locals()
        context.update(get_globalvars(request))
        return render(request,
                      template_name='blogapp/search.html',
                      context=context)
Пример #7
0
    def get_context_data(self, **kwargs):
        context = super(BasePaginationListView, self).get_context_data(**kwargs)

        queryset = self.get_queryset()
        if not queryset.ordered:
            queryset = queryset.order_by("id")

        recordings_by_page = base_conf.ITEMS_BY_PAGE
        pager = paginator.Paginator(queryset, recordings_by_page)
        page = self.request.GET.get('page', 1)
        try:
            recordings = pager.page(page)

            start_index = max(1, recordings.number-3)
            end_index = min(recordings.number+3, (len(queryset)//recordings_by_page)+1)
            context['range'] = range(start_index, end_index+1)
            context[self.context_object_name] = recordings
        except paginator.PageNotAnInteger:
            context[self.context_object_name] = pager.page(1)
        except paginator.EmptyPage:
            context[self.context_object_name] = pager.page(pager.num_pages)

        if len(self.get_queryset()) > 0:
            context['model_name'] = self.get_queryset()[0]._meta.verbose_name.title()
            context['model_name_plural'] = self.get_queryset()[0]._meta.verbose_name_plural.title()

        return context
Пример #8
0
def list_handle(request,type,page,sort):
    # type 商品的类别
    # sort 商品排序的依据 1为默认,2为价格,3为点击量
    # page 商品列表的页码,每页10条数据
    goodslist = GoodsInfo.objects.filter(gtype=type)
    sort = int(sort)
    page = int(page)
    if sort == 1:
        goodslist = goodslist
    elif sort == 2:
        goodslist = goodslist.order_by('gprice')
    elif sort == 3:
        goodslist = goodslist.order_by('-gclick')

    # 新品推荐的两个商品
    newlist = goodslist.order_by('-id')[0:2]
    # 商品列表页的10个商品
    pagi = paginator.Paginator(goodslist, 10)
    pagelist = pagi.page(page)
    # 查询该用户购物车的商品类数量
    amount = models.CartInfo.objects.filter(user_id=request.session.get('user_id', '')).count()
    context = {'title':'商品列表','goods':'yes',
               'sort':sort,
               'pagelist':pagelist,
               'new':newlist,
               'page':page,
               'type':type,
               'status':amount,
               }
    return render(request, 'df_goods/list.html', context)
Пример #9
0
    def callback(user):
        # start from page 2
        query = utils.get_status_queryset(user=user)

        page = int(request.GET.get('page', 1))
        if query.count() > 1:
            int(request.GET.get('page', 2))

        paginate = paginator.Paginator(query, 10)

        try:
            query = paginate.page(page)
        except paginator.PageNotAnInteger:
            query = paginate.page(1)
        except paginator.EmptyPage:
            query = paginate.page(paginator.num_pages)

        BASE_URL = reverse('api-status:get-status')
        next_url = ''
        if query.has_next():
            next_url = BASE_URL + '?page={}'.format(query.next_page_number())

        previous_url = ''
        if query.has_previous():
            previous_url = BASE_URL + '?page={}'.format(
                query.previous_page_number())

        result = {
            'username': user.username,
            'result': [utils.serialize_status(st) for st in query],
            'next_page': next_url,
            'previous_page': previous_url,
        }

        return result
Пример #10
0
    def get(self, request, cid=1, num=1):
        cid = int(cid)
        num = int(num)
        # 查询当前类
        category = Category.objects.all().order_by('id')

        # 查询当前类别下的商品
        goodsList = Goods.objects.filter(category_id=cid).order_by('id')

        # 分页查询(每页8条记录)
        pager = paginator.Paginator(object_list=goodsList, per_page=8)
        goods_pageList = pager.page(num)

        # 页码数越界限制
        begin = (num - int(math.ceil(10.0/2)))
        if num < 1:
            begin = 1
        end = begin + 9
        if end > pager.num_pages:
            end = pager.num_pages

        if end <= 10:
            begin = 1
        else:
            begin = end - 9

        pageList = range(begin, end+1)

        return render(request, 'index.html', {'category': category, 'cur_Cateid': cid, 'goodsList': goods_pageList, 'pageList': pageList, 'cur_Page': num})
Пример #11
0
def my_task(request, index):
    user = request.session.get('user')
    print(user)
    print(type(user))
    user_tel = request.session.get('user_tel')
    if user_tel != '':
        if user != '':
            user_info = User.objects.get(username=user_tel)
            user_id = user_info.id

            demand2 = Demand.objects.filter(Q(personal_center__user_id=user_id) & Q(review=2)).\
                values('title','date','id','details','bounty','add_service','image')
            demand1 = Demand.objects.filter(Q(personal_center__user_id=user_id) & Q(review=1)). \
                values('title', 'date', 'id', 'details', 'bounty', 'add_service','image')
            demand3 = Demand.objects.filter(Q(personal_center__user_id=user_id) & Q(review=3)). \
                values('title', 'date', 'id', 'details', 'bounty', 'add_service','image')
            pag = paginator.Paginator(demand2, 4)
            if index == '':
                index = 1
            page = pag.page(index)
            context = {
                'user_tel': user_tel,
                'user': user,
                'demand1': demand1,
                'page': page,
                'demand3': demand3,
                's': 5,
            }
            return render(request, 'personal_center/task.html', context)
        else:
            return HttpResponse('请先设置个人信息!')
    else:
        return render(request, 'login.html')
Пример #12
0
def goods_list(request, type, page, sorted):
    # type为0时取出所有商品
    if type == '0':
        goods_list = Goods.gmanager.all()
        type_name = None
    else:
        # 取出对应类的所有商品
        type_name = TypeInfo.objects.get(pk=type).goods_type
        goods_list = Goods.gmanager.filter(gtype_id=type)
        result = ''

    # 对取出的商品进行排序
    if sorted == '1':
        # 排序为1就是按时间排序
        result = goods_list.order_by('id')
    if sorted == '2':
        # 排序为2就是按点击率排名
        result = goods_list.order_by('price')
    if sorted == '3':
        # 排序为3就是按点击率排名
        result = goods_list.order_by('gclick')

    # 推荐商品
    adv_list = result[: 2]
    # 将结果进行分页
    pages = paginator.Paginator(result, 14)
    goods_list = pages.page(page)
    context = {
                'type': type_name,
                'goods_list': goods_list,
                'adv_list': adv_list,
                'sorted': sorted,
                'type_id': type
               }
    return render(request, 'df_goods/list.html', context)
Пример #13
0
def paginate(request, queryset, per_page=20, count=None):
    """
    Get a Paginator, abstracting some common paging actions.

    If you pass ``count``, that value will be used instead of calling
    ``.count()`` on the queryset.  This can be good if the queryset would
    produce an expensive count query.
    """
    p = paginator.Paginator(queryset, per_page)

    if count is not None:
        p._count = count

    # Get the page from the request, make sure it's an int.
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1

    # Get a page of results, or the first page if there's a problem.
    try:
        paginated = p.page(page)
    except (paginator.EmptyPage, paginator.InvalidPage):
        paginated = p.page(1)

    base = request.build_absolute_uri(request.path)

    paginated.url = u'%s?%s' % (base, request.GET.urlencode())
    return paginated
Пример #14
0
def getproduct(request, index):
    context = {}
    # list = [['1','/static/images/pic13.jpg', 'a', 'aa', '100'], ['2','/static/images/pic13.jpg', 'b', 'bb', '200'], ['3','/static/images/pic13.jpg', 'b', 'bb', '200'], ['4','/static/images/pic13.jpg', 'b', 'bb', '200'], ['5','/static/images/pic13.jpg', 'b', 'bb', '200'], ['6','/static/images/pic13.jpg', 'b', 'bb', '200'], ['7','/static/images/pic13.jpg', 'b', 'bb', '200'], ['8','/static/images/pic13.jpg', 'b', 'bb', '200']]
    list = []
    username = request.session.get('username')
    aa = getalllist()
    print(request.session.get('username'))

    for a in aa:
        list2 = []
        list2.append(a.name)
        list2.append(a.key)
        list2.append(a.imgurl)
        if request.session.get('username') != None:
            list2.append(a.price)
        else:
            list2.append(a.price0)
        list2.append(a.id)
        list.append(list2)
    print(username)
    print(list2)
    count = len(list)

    pag = paginator.Paginator(list, 6)
    if index == '':
        index = 1
        # 返回指定(index)页的数据,用于呈现在指定页上
    page = pag.page(index)
    # 构造上下文,以便html文件中能调用对应页的数据
    context = {'page': page, 'count': count, "username": username}
    return render(request, 'product.html', context)
Пример #15
0
    def get(self, request, albums_id):
        album = models.Album.objects.get(id=albums_id)
        photos = album.photo_set.all()
        photo_sum = photos.count()

        # 分页
        page = int(request.GET.get('page', 1))
        per_page = int(request.GET.get('per_page', 9))
        paginater = paginator.Paginator(object_list=photos, per_page=per_page)
        try:
            page_obj = paginater.page(page)
        except paginator.PageNotAnInteger:
            page_obj = paginater.page(1)  # 首次进入给第一页
            page = 1
        except paginator.EmptyPage:
            page_obj = paginater.page(paginater.num_pages)  # 空页给最后一页
            page = paginater.num_pages
        start, end = utils.custom_paginator(current_page=int(page),
                                            total_pages=paginater.num_pages,
                                            max_page=10)

        context = {
            "page_obj": page_obj,
            "page": page,
            "page_range": range(int(start),
                                int(end) + 1),
            "per_page": per_page,
            "total": paginater.count,
            "is_paginated": page_obj.has_other_pages()
        }
        return render(request, "photo/album_detail.html", context=context)
Пример #16
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        context["current_kind"] = self.request.GET.get("kind")

        if not self.request.GET.get("q"):
            context["current_kind"] = context["current_kind"] or KIND.default()

        ngo = kwargs.get("ngo", context.get("ngo"))
        if not ngo:
            return context

        needs = ngo.needs.filter(resolved_on=None)
        if "need" in kwargs:
            needs = needs.exclude(pk=kwargs["need"].pk)
            context["current_need"] = kwargs["need"]

        for kind in KIND.to_list():
            kind_needs = needs.filter(kind=kind)
            needs_paginator = paginator.Paginator(kind_needs, NEEDS_PER_PAGE)
            page = self.request.GET.get(f"{kind}_page")

            # Catch invalid page numbers
            try:
                needs_page_obj = needs_paginator.page(page)
            except (paginator.PageNotAnInteger, paginator.EmptyPage):
                needs_page_obj = needs_paginator.page(1)

            context[f"{kind}_page_obj"] = needs_page_obj

        return context
Пример #17
0
    def view_posts_by_date(self, request, year, month=None, day=None):
        title = f"Posts for {year}"
        filtered_posts = self.get_posts().filter(date__year=year, )
        if month:
            title = f"Posts for {datetime.datetime.strptime(month, '%b').strftime('%B')} {year}"
            filtered_posts = filtered_posts.filter(
                date__month=datetime.datetime.strptime(month, "%b").month, )
        if day:
            title = f"Posts for {int(day)} {datetime.datetime.strptime(month, '%b').strftime('%B')} {year}"
            filtered_posts = filtered_posts.filter(
                date__month=datetime.datetime.strptime(month, "%b").month, )

        post_paginator = paginator.Paginator(filtered_posts, 5)
        posts_page = request.GET.get("page")
        try:
            posts = post_paginator.page(posts_page)
        except paginator.PageNotAnInteger:
            # If page is not an integer, deliver first page.
            posts = post_paginator.page(1)
        except paginator.EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            posts = post_paginator.page(post_paginator.num_pages)
        return self.render(request,
                           context_overrides={
                               "title": title,
                               "posts": posts,
                           })
Пример #18
0
    def get(self, request):
        # parsing query params from request
        search_query = request.GET.get("q")
        limit = request.GET.get("limit")
        offset = request.GET.get("offset")

        if search_query is None:
            return Response({
                "error": True,
                "query": "Null"
            },
                            status=status.HTTP_400_BAD_REQUEST)
        if limit is None:
            limit = 5
        if offset is None:
            offset = 1

        context = {"error": False}

        try:
            branches = Branches.objects.filter(
                branch_vector=str(search_query).lower()).order_by('ifsc')
            branches_limited = paginator.Paginator(branches, limit)
            branches_offsetted = branches_limited.get_page(offset)
            serializer = BranchSerializer(branches_offsetted, many=True)

            context["result"] = serializer.data
            return Response(context, status=status.HTTP_200_OK)
        except Exception as e:
            print(e)
            context["error"] = True
            context["result"] = []
            return Response(context,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #19
0
Файл: utils.py Проект: gerv/kuma
def paginate(request, queryset, per_page=20):
    """Get a Paginator, abstracting some common paging actions."""
    p = paginator.Paginator(queryset, per_page)

    # Get the page from the request, make sure it's an int.
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1

    # Get a page of results, or the first page if there's a problem.
    try:
        paginated = p.page(page)
    except (paginator.EmptyPage, paginator.InvalidPage):
        paginated = p.page(1)

    base = request.build_absolute_uri(request.path)

    items = [(k, v) for k in request.GET if k != 'page'
             for v in request.GET.getlist(k) if v]

    qsa = urlencode(items)

    paginated.url = u'%s?%s' % (base, qsa)
    return paginated
Пример #20
0
def topmovies(request):
    index = request.GET.get('index')
    sort_option = request.GET.get('sort')
    genres_option = request.GET.get('genres')
    if index is None:
        index = 1
    if sort_option is None:
        sort_option = '1'
    if genres_option is None:
        genres_option = '1'
    genres = utilities.get_genres_type(genres_option)
    if sort_option == '1':
        movie_list = models.Movie.objects.all().order_by('-rating').filter(rating_count__gt=20, genres__contains=genres)
    elif sort_option == '2':
        movie_list = models.Movie.objects.all().order_by('rating').filter(rating_count__gt=20, genres__contains=genres)
    elif sort_option == '3':
        movie_list = models.Movie.objects.all().order_by('-popularity').filter(rating_count__gt=20, genres__contains=genres)
    elif sort_option == '4':
        movie_list = models.Movie.objects.all().order_by('popularity').filter(rating_count__gt=20, genres__contains=genres)
    else:
        movie_list = models.Movie.objects.all().order_by('-rating').filter(rating_count__gt=20, genres__contains=genres)
    if len(movie_list) >= 250:
        movie_list = movie_list[0:250]
    else:
        movie_list = movie_list[0:len(movie_list)]
    pag = paginator.Paginator(movie_list, 20)
    if index == '':
        index = 1
    page = pag.page(index)
    context = {
        'page': page,
        'sort_selected': sort_option,
        'genres_selected': genres_option,
    }
    return render(request, 'topmovies.html', context)
Пример #21
0
    def get(self, request, tagcode):
        # # 查询文章分类导航
        # cates = Category.objects.all()[:5]
        # # 热门推荐,根据推荐字典取R02
        # reco2_articals = Artical.objects.filter(recom__code='R02').order_by('-create_time')[:4]
        # # 所有标签
        # tags = Tag.objects.all()

        # 根据标签查询文章列表
        tag_articals = Artical.objects.filter(
            tags__code=tagcode).order_by('-create_time')
        # 获取标签名
        tag_name = Tag.objects.get(code=tagcode)

        # 分页
        pn = paginator.Paginator(tag_articals, 2)  # 实例化分页器对象
        page_num = request.GET.get('page')  # 获取当前页码
        try:
            page_list_obj = pn.page(page_num)  # 进行分页,返回数据列表(将之传给模板)
        except paginator.PageNotAnInteger:
            page_list_obj = pn.page(1)
        except paginator.InvalidPage:
            page_list_obj = pn.page(pn.num_pages)
        context = locals()
        context.update(get_globalvars(request))
        return render(request=request,
                      template_name='blogapp/tags.html',
                      context=context)
Пример #22
0
    def get_context_data(self, **kwargs):
        context = super(BusquedaGrabacionFormView, self).get_context_data(
            **kwargs)
        listado_de_grabaciones = []

        if 'listado_de_grabaciones' in context:
            listado_de_grabaciones = context['listado_de_grabaciones']

        qs = listado_de_grabaciones
        # ----- <Paginate> -----
        page = self.kwargs['pagina']
        if context['pagina']:
            page = context['pagina']
        result_paginator = django_paginator.Paginator(qs, 40)
        try:
            qs = result_paginator.page(page)
        except django_paginator.PageNotAnInteger:
            qs = result_paginator.page(1)
        except django_paginator.EmptyPage:
            qs = result_paginator.page(result_paginator.num_pages)
        # ----- </Paginate> -----
        context['listado_de_grabaciones'] = qs

        context['calificaciones'] = self._get_calificaciones(qs)
        context['base_url'] = "%s://%s" % (self.request.scheme, self.request.get_host())
        return context
Пример #23
0
def get_posts_responding_to(url, current_page, post):
    post_objs = Post.objects.filter(url=url,
                                    responding_to=post).order_by('-created_on')

    count = len(post_objs)

    page_number = 1 if current_page <= 0 else current_page + 1

    post_objs_paginator = paginator.Paginator(post_objs, 10)

    number_of_pages = post_objs_paginator.num_pages

    post_objs = post_objs_paginator.get_page(page_number)

    posts_json = json.loads(serializers.serialize('json', post_objs))

    for post_json, post_obj in zip(posts_json, post_objs):
        set_post_properties(post_json, post_obj)

        replies = post_obj.comments
        replies_json = json.loads(serializers.serialize('json', replies))

        for reply_json, reply_obj in zip(replies_json, replies):
            set_post_properties(reply_json, reply_obj)

        post_json.setdefault('replies', replies_json)

    response = {
        'posts': posts_json,
        'count': count,
        'page_number': page_number,
        'number_of_pages': number_of_pages,
    }

    return response
Пример #24
0
 def get_context_data(self, *args, **kwargs) -> dict:
     context = super().get_context_data(*args, **kwargs)
     context['form'].initial = {
         'bio':
         self.request.user.profile.bio,
         'image_file':
         self.request.user.profile.image_file,
         'shop_web_address':
         self.request.user.profile.shop_web_address,
         'outlets':
         self.request.user.profile.outlets,
         'listed_member':
         self.request.user.profile.listed_member,
         'display_personal_page':
         self.request.user.profile.display_personal_page
     }
     context['avatar'] = (artisan_models.ArtisanForumProfile.objects.get(
         profile_user=self.request.user).avatar)
     queryset = (artisan_models.Post.objects.select_related(
         'author').select_related('author__profile').filter(
             author=self.request.user))
     paginator = pagination.Paginator(queryset, 6)
     page_number = self.request.GET.get('page')
     page_obj = paginator.get_page(page_number)
     context['page_obj'] = page_obj
     context['site_url'] = ('https' if self.request.is_secure() else
                            'http') + '://' + conf.settings.SITE_DOMAIN
     return context
Пример #25
0
    def get_context_data(self, **kwargs):
        context = super(ArticleDetail, self).get_context_data(**kwargs)
        context['prev_article'] = self.get_prev_object(self.queryset,
                                                       self.object)
        context['next_article'] = self.get_next_object(self.queryset,
                                                       self.object)
        # Custom
        original_slug = self.request.GET.get("original_slug", None)
        if not original_slug:
            original_slug = self.object.slug
        original = Article.objects.get(translations__slug=original_slug)
        similar_article_set = Article.objects.published().filter(
            categories__in=original.categories.all()).exclude(
                pk=original.pk).exclude(
                    categories__translations__slug='price-analysis').distinct(
                    ).order_by('-publishing_date')

        similar_page = self.request.GET.get("page")
        similar_paginator = paginator.Paginator(similar_article_set,
                                                self.related_paginate_by)
        try:
            similar_page_obj = similar_paginator.page(similar_page)
        except (paginator.PageNotAnInteger, paginator.EmptyPage):
            similar_page_obj = None

        context["similar_page_obj"] = similar_page_obj
        context["original_slug"] = original_slug
        return context
Пример #26
0
    def get_context_data(self, *args, **kwargs):
        context_data = super().get_context_data(*args, **kwargs)
        context_data['book'] = self.object
        context_data['action'] = 'Add'

        # paginate related objects  - param: ?ro_page=<x>
        ro_page = self.request.GET.get('ro_page')
        bookinstances = self.object.bookinstance_set.all()
        bookinstances_paginator = paginator.Paginator(
            bookinstances, self.bookinstances_paginate_by)

        # Catch invalid page numbers
        try:
            bookinstances_page_obj = bookinstances_paginator.page(ro_page)
        except (paginator.PageNotAnInteger, paginator.EmptyPage):
            bookinstances_page_obj = bookinstances_paginator.page(1)

        print(f"bookinstances_page_obj: {bookinstances_page_obj}")
        print(
            f"bookinstances_page_obj.has_other_pages: {bookinstances_page_obj.has_other_pages()}"
        )
        print(
            f"bookinstances_paginator.num_pages: {bookinstances_paginator.num_pages}"
        )

        context_data['related_page_obj'] = bookinstances_page_obj

        return context_data
Пример #27
0
def get_user_blogs(request):
    r_userid = request.META.get("HTTP_USERID")
    pageNum = 1
    if request.method == 'POST':
        pageNum = request.POST.get("page", '1')
    if request.method == 'GET':
        pageNum = request.GET.get("page", '1')
    if pageNum == 0:
        pageNum = 1
    qr = MicroBlog.objects.all().filter(authorId=r_userid).filter(isDeleted=0).order_by(
        "-createTime")
    pt = paginator.Paginator(qr, 50)
    try:
        pages = pt.page(pageNum)
        tmp_pride = Pride.objects.filter(authorId=r_userid)
        tmp_col = Collect.objects.filter(authorId=r_userid)
        for d in pages:
            if isinstance(d, MicroBlog):
                if len(tmp_pride.filter(blogId=d.blogId)) > 0:
                    d.isPrided = MicroBlog.HAVE
                if len(tmp_col.filter(itemId=d.blogId)) > 0:
                    d.isCollected = MicroBlog.HAVE
        return JsonResponse(common.build_model_list(pages), safe=False)
    except:
        return JsonResponse(common.build_result(CLIENT_ERROR, "没有更多数据"), safe=False)
Пример #28
0
    def get_context_data(self, **kwargs):
        context = super(AuditarCalificacionesFormView, self).get_context_data(
            **kwargs)

        listado_de_calificaciones = []
        if 'listado_de_calificaciones' in [key for key in context.keys()]:
            listado_de_calificaciones = context['listado_de_calificaciones']

        qs = listado_de_calificaciones.select_related('opcion_calificacion__campana', 'contacto')
        # ----- <Paginate> -----
        page = self.kwargs['pagina']
        if context.get('pagina', False):
            page = context.get('pagina', False)
        result_paginator = django_paginator.Paginator(qs, 40)
        try:
            qs = result_paginator.page(page)
        except django_paginator.PageNotAnInteger:
            qs = result_paginator.page(1)
        except django_paginator.EmptyPage:
            qs = result_paginator.page(result_paginator.num_pages)
        # ----- </Paginate> -----

        context['calificaciones'] = qs

        return context
Пример #29
0
    def get_channel_outbox_response(self, request, channel):
        conf = {
            "id":
            channel.actor.outbox_url,
            "actor":
            channel.actor,
            "items":
            channel.library.uploads.for_federation().order_by(
                "-creation_date").prefetch_related("library__channel__actor",
                                                   "track__artist"),
            "item_serializer":
            serializers.ChannelCreateUploadSerializer,
        }
        page = request.GET.get("page")
        if page is None:
            serializer = serializers.ChannelOutboxSerializer(channel)
            data = serializer.data
        else:
            try:
                page_number = int(page)
            except Exception:
                return response.Response({"page": ["Invalid page number"]},
                                         status=400)
            conf["page_size"] = preferences.get(
                "federation__collection_page_size")
            p = paginator.Paginator(conf["items"], conf["page_size"])
            try:
                page = p.page(page_number)
                conf["page"] = page
                serializer = serializers.CollectionPageSerializer(conf)
                data = serializer.data
            except paginator.EmptyPage:
                return response.Response(status=404)

        return response.Response(data)
Пример #30
0
def donationindex(request,event=None):
  event = viewutil.get_event(event)
  orderdict = {
    'amount' : ('amount', ),
    'time'   : ('timereceived', ),
  }
  page = request.GET.get('page', 1)
  sort = request.GET.get('sort', 'time')

  try:
    order = int(request.GET.get('order', -1))
  except ValueError:
    order = -1

  donations = Donation.objects.filter(transactionstate='COMPLETED')

  if event.id:
    donations = donations.filter(event=event)
  donations = views_common.fixorder(donations, orderdict, sort, order)

  agg = donations.aggregate(amount=Sum('amount'), count=Count('amount'), max=Max('amount'), avg=Avg('amount'))
  donations = donations.select_related('donor')
  pages = paginator.Paginator(donations,50)
  try:
    pageinfo = pages.page(page)
  except paginator.PageNotAnInteger:
    pageinfo = pages.page(1)
  except paginator.EmptyPage:
    pageinfo = pages.page(pages.num_pages)
    page = pages.num_pages
  donations = pageinfo.object_list

  return views_common.tracker_response(request, 'tracker/donationindex.html', { 'donations' : donations, 'pageinfo' :  pageinfo, 'page' : page, 'agg' : agg, 'sort' : sort, 'order' : order, 'event': event })